bootparamのヘルプ・マニュアル
日本語 英語
bootparam --help
man bootparam
BOOTPARAM(7) Linux Programmer’s Manual BOOTPARAM(7)
名前
bootparam - Linux カーネル起動時パラメータの解説
説明
Linux カーネルは起動するときに「コマンドラインオプション」あるいは「起
動時パラメータ」を受け付ける。これは一般に、カーネルには決定できない ハ
ー ドウェアのパラメータをカーネルに渡したい場合や、カーネルが検出するで
あろう値を意図的に無効にしたり変更したりする場合に用いる。
カーネルが BIOS から直接起動されるとき (たとえば ’cp zImage /dev/fd0’
で フロッピーにコピーしたカーネルから起動するなど) は、パラメータを指定
する機会はない。ゆえに、この起動時パラメータ機能を利用するため に は 、
LILO や loadlin のようにパラメータを指定できるソフトウェアを使用しなけ
ればならない。いくつかのパラメータについては、 rdev を使ってカーネル イ
メージそのものを修正することもできる。詳細は rdev(8) を参照のこと。
Werner Almesberger による LILO (LInux LOader) プログラムは最も広く使用
されている。 LILO はいろいろなカーネルを選択してブートさせることがで き
、設定情報をテキストファイルに保持する (lilo(8) と lilo.conf(5) を参照)
。 LILO は DOS, OS/2, Linux, FreeBSD などを起動でき、非常に柔軟である。
ほかには loadLin もよく使われている Linux ローダである。これは DOS のプ
ログラムで、DOS プロンプトから (起動時引数とともに) Linux カーネルを 起
動できる (いくつかの特定のリソースが利用可能でなければならない)。 load-
lin は DOS から Linux を起動させたい人にあっている。
また loadlin は、DOS のドライバである状態に設定しなければならないハード
ウ ェアを使っている場合にも非常に便利である。よくある例は「SoundBlaster
互換」のサウンドカードで、これらの中には DOS のドライバを使っていくつか
秘 密のレジスタをいじってやらないと、本当の SB 互換モードにはならないよ
うなものがある。まずハードウェアについてきたドライバを組み込んで DOS を
起 動し、その後 loadlin を使用して Linux カーネルを読み込めば、リブート
によってカードの設定がリセットされるのを防げるわけだ。
引数リスト
カーネルのコマンドラインはスペースで区切られた文字列 (起動時引数: boot
arguments) のリストから成っている。ほとんどの起動時引数は次の書式に従う
。
name[=value_1][,value_2]...[,value_10]
ここで ’name’ は、それに対応する値がカーネルのどの部分に渡されるもの な
の かを識別するための、他と重ならないキーワードである。書式中の 10 とい
う制限は実際に存在する。現在のコードは、キーワードひとつあたり、コン マ
で 区切られたパラメータを 10 個までしか取り扱うことができない。 (しかし
、事情が非常に複雑な場合には、同じキーワードを再度利用して 10 個以上 の
パ ラメータを与えることができるかもしれない。対象となるハードウェアの設
定関数がそれをサポートしていれば、だが。)
カーネルコマンドラインの扱いはほとんど linux/init/main.c が行なっている
。 初 め に 、 カーネルは ’root=’, ’nfsroot=’, ’nfsaddrs=’, ’ro’, ’rw’,
’debug’, ’init’ といった特別な引数があるかをチェックする。これらの意 味
については後述する。
カ ーネルは次に設定関数のリスト (配列 bootsetups に含まれている) をスキ
ャンし、指定された引数文字列 (例えば ’foo’) が特定のデバイスやカーネ ル
の一部に対する設定関数 (’foo_setup()’) に関連付けられているかを調べる。
例えばカーネルに foo=3,4,5,6 のようなパラメータを与えたとすると、カーネ
ルは配列 bootsetups を調べて、 ’foo’ が登録されているか調べる。登録され
ていたら、’foo’ に対応する設定関数 (’foo_setup()’) をコールし、カーネル
コマンドラインに与えられた引数である 3, 4, 5, 6 を設定関数に渡す。
’foo=bar’ という形式の引数のうち、上記のように設定関数に受け入れられな
かったものは、環境変数と解釈されて設定される。 (あまり役に立たない?) 例
としては、’TERM=VT100’ がある。
カ ーネルによって処理されず、環境変数としても解釈されなかった残りの引数
は、プロセス 1 に渡されることになる。通常このプロセス 1 は init プロ グ
ラ ムである。プロセス 1 に渡される引数で最も良く使われるのは、 ’single’
というキーワードである。これを指定すると init はシングルユーザモード で
コ ンピュータを起動し、通常使われるデーモンは一切起動しない。システムに
インストールされている init がどんな引数を受け付けるかは、マニュアル ペ
ージで調べること。
一般的な、デバイス固有ではない起動時引き数
’init=...’
カーネルが実行する初期コマンドを設定する。この指定がなされなかっ
たり、指定したコマンドが見つからなかった場合には、カ ー ネ ル は
/sbin/init, /etc/init, /bin/init, /bin/sh の順で実行を試み、すべ
てに失敗したら panic を起こす。
’nfsaddrs=...’
nfs のブートアドレスを指定した文字列に設定する。このブートアドレ
スはネットワークブートの場合に用いられる。
’nfsroot=...’
nfs ルートの名前を設定する。この文字列の先頭が ’/’、’,’、数字の
いずれでもでないときは、 ’/tftpboot/’ が先頭に付加される。この名
前はネットワークブートの場合に用いられる。
’no387’
( カーネルのコンパイル時に CONFIG_BUGi386 が指定されたときのみ有
効。) 一部の i387 コプロセッサチップには、 32 ビットプロテクトモ
ードでの使用時に生じるバグがある。例えば初期の ULSI-387 チップは
、浮動小数点演算を行なうと確実にロックアップしてしまう。この起動
時引数 ’no387’ を指定すると、 Linux はコプロセッサがあってもそれ
を無視するようになる。なおもちろん、カーネルコンパイル時に浮動小
数 点演算をエミュレートする (kernel math emulation) 指定をしなけ
ればならない!
’no-hlt’
(カーネルのコンパイル時に CONFIG_BUGi386 が指定されたときのみ 有
効 。) 初期の i486DX-100 チップの一部では ’hlt’ 命令に問題があっ
て、この命令を使うとオペレーティングモードに正しく戻って来ない。
’no-hlt’ を 指 定 す れば、Linux はアイドリング時に CPU を停止
(halt) するかわりに無限ループを実行するようになる。これによっ て
、そのようなバグのあるチップでも Linux を使用できる。
’root=...’
起動時にルートファイルシステムとして使われるデバイスをカーネルに
指定する。デフォルトはコンパイル時に決定され、通常はカーネルを構
築したシステムのルートデバイスになる。この値を無効にして、例えば
2 番目のフロッピーディスクドライブをルートデバイスに指定する場合
は、 ’root=/dev/fd1’ とする。 (ルートデバイスは rdev(8) を用いて
も設定できる。)
ルートデバイスの指定にはシンボル形式と数値形式を用いることができ
る 。シンボル形式の場合は /dev/XXYN という書式で指定する。 XX に
はデバイスタイプを指定する。 Y にはドライブレターもしくはドラ イ
ブ 番号、 N には (フロッピーディスクを除く) ディスクのパーティシ
ョン番号を 10 進数の数値で指定する。 (ST-506 互換ハードディス ク
ではデバイスタイプが ’hd’ で Y の範囲は ’a’ から ’d’、 SCSI ディ
スクは ’sd’ で Y は ’a’ から ’e’、 Atari ACSI ディスクは ’ad’ で
Y は ’a’ から ’e’、 Syquest EZ135 パラレルポートリムーバブルディ
スクは ’ez’ で Y は ’a’ のみ、 XT ディスクは ’xt’ で Y は ’a’ か
’b’、フロッピーディスクは ’fd’ で Y にはドライブ番号を指定する。
fd0 は DOS の ’A:’、fd1 は ’B:’ に対応している。パーティションは
存 在しないので N は指定しない。) 最新のカーネルでは、他にも次の
ような多くのデバイスタイプを指定できる (ほとんどは CD-ROM だが):
nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd,
bpcd。 (nfs はネットワークブートに、ram は RAM ディスクを使用 す
る場合に用いる。)
なお、これらはファイルシステム上でのデバイスの指定方法とは全く関
係ない。 ’/dev/’ を用いるのは単に慣習に過ぎない。
扱いにくいし移植性も良くないが、上記のデバイスを major/minor 番
号 の 数 値 で指定してもよい。 (例えば /dev/sda3 は major 番号 8
、minor 番号 3 なので、 ’root=0x803’ と記述できる。)
’ro’ と ’rw’
’ro’ オプションは、ルートファイルシステムを「読み出し専用」で マ
ウントするようカーネルに指示し、 fsck プログラムがファイルシステ
ムの矛盾を検査できるようにする。ファイルシステムが「読み書き可能
」 として再マウントされる (つまり ’mount -w -n -o remount /’) ま
での間は、いかなるプロセスもこのファイルシステム上のファイルに書
き込むことはできない。 (mount(8) も参照せよ。)
rw オプションはルートファイルシステムを「読み書き可能」でマウン
トするようカーネルに指示する。こちらがデフォルトである。
省略時の指定を「読み出し専用」と「読み書き可能」とのどちらにする
かは、 rdev(8) によっても設定できる。
’reserve=...’
デ バイスの自動検出から I/O ポートを保護するために用いる。コマン
ドの形式は以下の通り。
reserve=iobase,extent[,iobase,extent]...
機種によっては、デバイスドライバによるデバイスの自動検出を、特定
の範囲に対しては禁止しなければならないことがある。ハードウェアが
検出動作によって深刻な問題を引き起こす場合や、誤認識される可能性
がある場合、また単にカーネルにハードウェアを初期化させたくない場
合などがありうるだろう。
この起動時引数 reserve は、自動検出の対象外とする I/O ポートの範
囲を指定する。デバイスドライバは、他の起動時引数によって明示的に
指定されない限り、予約された範囲に対して自動検出動作を行わない。
例えばブート時のコマンドラインに
reserve=0x300,32 blah=0x300
と指定すると、’blah’ を除くすべてのデバイスドライバは 0x300 から
0x31f の範囲を自動検出の対象外とする。
’mem=...’
搭載されているメモリの量を返す BIOS コールは PC の仕様で定義され
て いるが、これは最大 64MB までしか返すことができない。 Linux は
搭載メモリの量を調べるために、起動時にこの BIOS コールを使用する
。 もし 64MB 以上の RAM を搭載している場合は、この起動時引数を用
いて実際のメモリ容量を Linux に知らせることができる。値は 10 進
数または 16 進数 (先頭に 0x を付加) の数値で指定し、 1024 倍を表
す ’k’ または 1048576 倍を表す ’M’ を末尾に付加できる。 以 下 は
Linus による ’mem=’ パラメータの解説である。
カ ーネルは ’mem=xx’ パラメータとしてどんな値を指定してもそ
れをそのまま受け入れる。だからそれが嘘だとわかったら、遅 か
れ 早かれひどいクラッシュをするだろう。パラメータはアクセス
しうる最も高位の RAM アドレスを指示する。 だ か ら 例 え ば
’mem=0x1000000’ っていうのは 16MB のメモリがある、という意
味になる。 96MB のマシンなら ’mem=0x6000000’ だ。
注意 注意 注意: マシンによってはメモリの最上位の領域を BIOS
の キャッシュやら何やらのために使っていることがあるから、実
際には 96MB をフルにアドレスすることはできないかもしれな い
。 逆の場合もある。いくつかのチップセットでは、 BIOS 領域に
入っている物理メモリを最上位のメモリのさらに上にマップす る
。 よって最上位のメモリはたとえば 96MB + 384kB なんて値にな
るかもしれない。 linux に実際より多いメモリを教えてしまった
と したら、まずいことが起きるだろう。すぐにではないかもしれ
ないけど、ゆくゆくは確実にね。
また、起動時引数に ’mem=nopentium’ を指定すると、 pentium とそれ
以降の CPU を使った IA32 システム用に設定されたカーネルで 4MB の
ページテーブルを無効にすることができる。
’panic=N’
デフォルトでは、カーネルはパニックの後リブートしない。このオプシ
ョ ンを用いて (N を 0 より大きな値とすれば) N 秒後にリブートする
ようになる。この値は、起動後に "echo N > /proc/sys/kernel/panic"
として設定することもできる。
’reboot=[warm|cold][,[bios|hard]]’
( カーネルコンパイル時に CONFIG_BUGi386 が指定されたときのみ有効
。) カーネルバージョン 2.0.22 から、リブートのデフォルトはコール
ドブートになった。以前のデフォルトであるウォームブートをするには
’reboot=warm’ と指定しなければならない。 (ある種のハードウェアを
リセットするにはコールドブートが必要になるが、ディスクキャッシュ
にある書き込んでいないデータは破壊される。ウォームブートでは、よ
り素早くリブートできる。) デフォルトではリブートは ’hard’ で行わ
れる。すなわちリセットラインに low を出力するようキーボードコ ン
トローラに要求して、リブートを行う。しかし一部のマザーボードでは
これができない。 ’reboot=bios’ オプションを指定すると、代わり に
BIOS を経由するようになる。
’nosmp’ と ’maxcpus=N’
(カーネルのコンパイル時に __SMP__ が指定されたときのみ有効。) コ
マンドラインオプションに ’nosmp’ または ’maxcpus=0’ を指定すると
、 SMP (Symmetric Multi Processing) を完全に無効にする。 ’maxc-
pus=N’ オプションは、 SMP モードで有効にする CPU の最大数を N に
制限する。
カーネル開発者用の起動時引数
’debug’
カ ーネルが出力するメッセージはカーネルログデーモン klogd に渡さ
れ、ディスクに記録できるようになる。プラ イ オ リ テ ィ が con-
sole_loglevel のメッセージはコンソールにも表示される。 (これらの
レベルについては、 を参照。) デフォルトではこ の
変数は、デバッグメッセージよりも重要なあらゆるメッセージを記録す
るよう設定されている (デバッグメッセージは含まない)。この起動 時
引 数を指定すると、カーネルはプライオリティが DEBUG のメッセージ
も出力するようになる。 console_loglevel も klogd にオプション を
渡せば実行時に設定できる。 klogd(8) を見よ。
’profile=N’
カ ーネルがどこで CPU サイクルを消費しているか調べたい場合には、
カーネルのプロファイリング機能を有効にすればこれを実現できる。カ
ー ネルプロファイリングは、変数 prof_shift を 0 以外の値にセット
すると有効になる。この値はコンパイル時に CONFIG_PROFILE で指定す
る か、この ’prifile=N’ オプションで指定できる。 prof_shift の値
は N が指定されれば N となり、N が指定されなかった場 合 は CON-
FIG_PROFILE_SHIFT の値が用いられる。どちらも指定されなければデフ
ォルト値の 2 が用いられる。この変数が重要なのは、カーネルプロ フ
ァイリングの粒度を決定するところにある。すなわち、各クロックの割
込みごとに、システムがカーネルコードを実行していれば、以下のよう
にカウンタの値がインクリメントされる。
profile[address >> prof_shift]++;
生 のプロファイリング情報は、 /proc/profile から見ることができる
が、readprofile.c のような情報を加工するツールを使ったほうが良い
だ ろう。 /proc/profile に任意のデータを書込むと、カウンタはリセ
ットされる。
’swap=N1,N2,N3,N4,N5,N6,N7,N8’
カーネルのスワップアルゴリズムをコントロールする次の 8 つのパ ラ
メ ー タをセットする。 max_page_age, page_advance, page_decline,
page_initial_age, age_cluster_fract, age_cluster_min, page-
out_weight, bufferout_weight. これはカーネルをチューンする人の
ためのオプションである。
’buff=N1,N2,N3,N4,N5,N6’
カーネルのバッファメモリ管理をコントロールする次の 6 つのパラ メ
ー タ を セ ットする。 max_buff_age, buff_advance, buff_decline,
buff_initial_age, bufferout_weight, buffermem_grace. これはカー
ネルをチューンする人のためのオプションである。
RAM ディスク関連の起動時引数
(カーネルのコンパイル時に CONFIG_BLK_DEV_RAM オプションが指定されたとき
のみ有効。) 一般的には、Linux で RAM ディスクを使用するのはあまり良い考
え ではない。システムに任せておけばもっと効率的にメモリを使用する。しか
しブート時 (またはブートフロッピーの作成中) には、フロッピーの 内 容 を
RAM ディスクにロードすると便利かもしれない。メインディスクがアクセス可
能になる前に、 (ファイルシステムやハードウェアに関する) モジュールを い
くつかロードしなければならないシステムもあるだろう。
Linux のバージョン 1.3.48 において、 RAM ディスクの取り扱いが根底から変
化した。それ以前までは、メモリは静的に割り当てられ、 ’ramdisk=N’ パラメ
ー タ で そ の サイズを指定していた。 (この値はカーネルのコンパイル時や
rdev(8) によっても変更できた。) 現在は RAM ディスクはバッファキャッシュ
を使用しており、動的に成長する。さらに多くの情報 (たとえば rdev(8) が新
しい RAM ディスクの設定とどのように 関 係 す る か) に つ い て は 、
/usr/src/linux/Documentation/ramdisk.txt を参照。
4 つのパラメータがある。論理値をとるものが 2 つ、整数値をとるものが 2
つ。
’load_ramdisk=N’
N=1 なら RAM ディスクをロードする。N=0 ならロードしない (デフ ォ
ルト)。
’prompt_ramdisk=N’
N=1 ならフロッピー挿入を促すプロンプトを出す (デフォルト)。 N=0
ならプロンプトを出さない。 (従って、このパラメータを指定する必要
はまず無いであろう。)
’ramdisk_size=N’ もしくは (古い形式の) ’ramdisk=N’
ラ ムディスクの最大サイズを N kB (キロバイト) にセットする。省略
時は 4096 (4 MB)。
’ramdisk_start=N’
開始ブロック番号 (フロッピー先頭からのオフセットで指定し た RAM
デ ィスクの開始点) を N にセットする。これはカーネルイメージのあ
とに RAM ディスクイメージを置く場合に必要となる。
’noinitrd’
(カーネル の コ ン パ イ ル 時 に CONFIG_BLK_DEV_RAM と CON-
FIG_BLK_DEV_INITRD が指定されているときのみ有効。) 最近は initrd
を使用するようにカーネルをコンパイルできる。このオプションが指定
さ れると、ブートプロセスはカーネルと RAM ディスクをロードし、カ
ーネルは initrd を「普通の」 RAM ディスクに変換し、この RAM ディ
スクがルートデバイスとして「読み書き可能」でマウントされる。次に
/linuxrc が実行される。その後「真の」ルートファイルシステムが マ
ウ ントされ、 initrd ファイルシステムは /initrd に移される。最後
に通常のブートシーケンス (具体的には /sbin/init の呼び出し) が実
行される。
initrd に 関する詳細な解説は /usr/src/linux/Documentation/ini-
trd.txt を参照。
’noinitrd’ オプションを用いると、カーネルは (initrd 動作を行うよ
うにコンパイルされている場合でも) 上記の動作を行なわず、代わりに
initrd のデータを /dev/initrd に残す。 (このデバイスは一度しか使
えない。データは、そのデータを使った最後のプロセスが /dev/initrd
をクローズするとすぐに解放される。)
SCSI デバイス用の起動時引数
この節における用語:
iobase -- SCSI ホストアダプタが占有する I/O ポートの先頭アドレス 。 16
進表記で指定し、通常 0x200 から 0x3ff の範囲に位置する。
irq -- カードが利用するハードウェア割り込み。有効な値はカードによって異
なるが、通常は 5, 7, 9, 10, 11, 12, 15 である。これ以外の値は通常 、IDE
ハ ードディスク、フロッピー、シリアルポートといった一般的な周辺機器によ
って使用される。
scsi-id -- SCSI バス上のホストアダプタが自分自身を識別するために使用 す
る ID 番号。この値を変更できるホストアダプタもごく希に存在するが、ほと
んどはアダプタ内部で固定されている。よく使われるデフォルト値は 7 である
が、Seagate もしくは Future Domain 製の TMC-950 ボードでは 6 が使われる
。
parity -- SCSI ホストアダプタが取り付けられたデバイスとの通信に際してパ
リティ値を必要とするかどうか。 1 を指定するとパリティチェックが有効にな
り、 0 でパリティチェックが無効になる。しかし、すべてのデバイスがこの起
動時引数によるパリティの選択をサポートするわけではない。
’max_scsi_luns=...’
SCSI デバイスは複数の「サブデバイス」を自分自身の内部に持つこと
ができる。最もよくある例として、一時に 1 枚以上のディスクを扱 う
ことができる (チェンジャー機能付の) SCSI CD-ROM がある。それぞれ
の CD はそのデバイスの「論理ユニット番号 (LUN)」によって特定され
る。しかしほとんどのデバイス (例えばハードディスクやテープドライ
ブ) は、 LUN 番号 0 が割り当てられた、ただひとつのデバイスからな
る。
設計が不十分な SCSI デバイスでは 0 以外の LUN 番号への自動検出を
扱えないことがある。し た が っ て 、 コ ン パ イ ル 時 に CON-
FIG_SCSI_MULTI_LUN オプションが指定されていないと、最近のカーネ
ルではデフォルトでは LUN 番号 0 のみを検出する。
起動時に調べる LUN 番号を指定する場合 、 起 動 時 引 数 と し て
’max_scsi_luns=n’ を指定する。n は 1 から 8 の間で指定する。 n=1
以上の値を使用しないようにすれば、このようないかれた機械にひどい
目にあわされずにすむだろう。
SCSI テープドライブの設定
SCSI テープドライバの起動時設定の一部は以下のようにして行なうこ
とができる。
st=buf_size[,write_threshold[,max_bufs]]
最初の 2 つの数字は kB 単位で指定する。 buf_size のデフォルト は
32kB である。上限は 16384kB まで指定できる。 write_threshold は
データ書き出しの閾値で、バッファのデータのサイズがこの値を越える
とデータはテープに書き出される。デフォルト値は 30kB である。バッ
ファ数の最大値 (max_bufs) は検出されたドライブの数によって変化す
るが、デフォルトは 2 である。使用例を以下に示す。
st=32,30,2
詳細はカーネルソース内の Documentation/scsi/st.txt (古いカーネル
の場合は drivers/scsi/README.st) に書かれている。
Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI の設定
aha に続く番号はカードを表し、 aic に続く番号はカードに搭載さ れ
ている実際のチップを表す (Soundblaster-16 SCSI も後者に含まれる)
。
SCSI ホストの検出コードは、インストールされている BIOS を探す 。
見つからないと、カードは検出できない。この場合は以下のように起動
時引数を指定することになる。
aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]
もしドライバのコンパイル時にデバッグオプションを指定していた場合
は、 6 番目の値でデバッグレベルを指定できる。
すべてのパラメータは、このセクションの最初で説明した通りである。
reconnect に 0 以外の値を指定すると、デバイスを切断したり接続 し
たりできる。以下に例を示す。
aha152x=0x340,11,7,1
パラメータは必ず上記の順番どおりに指定されなければならない。例え
ば、パリティ (parity) を設定したい場合には、 iobase, irq, scsi-
id, reconnect も同時に指定する必要がある。
Adaptec aha154x の設定
aha1542 シリーズのカードは i82077 フロッピーディスクコントローラ
をボードに搭載している。一方 aha1540 シリーズのカードは搭載し て
いない。これらは共にバスマスタカードであり、他のデバイスとバスを
共有する際に、どのくらい「フェアに」振る舞うかを指定するパラメー
タがある。起動時引数は以下のようにして指定する。
aha1542=iobase[,buson,busoff[,dmaspeed]]
有 効 な iobase の 値は次の通り。 0x130, 0x134, 0x230, 0x234,
0x330, 0x334。クローンカードの中には他の値を指定できるものもある
。
buson, busoff 値はカードがISA バスを占有する時間をマイクロ秒単位
で指定する。省略時はそれぞれ 11us on と 4us off になっているので
、他のカード (例えば ISA LANCE イーサネットカード) も ISA バスに
アクセスできる。
dmaspeed 値は DMA (Direct Memory Access) 転送速度を MB/s 単位 で
設 定する。省略時は 5MB/s である。新しいリビジョンのカードでは、
この値を使ったソフトウェアによる設定ができる。古いカードはジャン
パ設定を必要とする。マザーボードが対応していれば最大 10MB/s まで
指定可能である。 5MB/s 以上の値を使う場合は注意して実験してか ら
にすること。
Adaptec aha274x, aha284x, aic7xxx の設定
これらのボードは以下の形式で指定する。
aic7xxx=extended,no_reset
extended 値が 0 以外の時は、大容量ディスク用の拡張変換が有効にな
る。 no_reset 値を 0 以外の値にすると、ホストアダプタの検出時 に
、ドライバによる SCSI バスの初期化を行わない。
AdvanSys SCSI ホストアダプタの設定 (’advansys=’)
AdvanSys ドライバはカードの検出先として 4 つの I/O アドレスを受
け付ける。 EISA や PCI カードではこれらを指定しても全く効果が 無
い。 ISA 及び VLB カードの検出に対してのみ用いられる。さらに、デ
バッグオプション付きでドライバがコンパイルされている場合、デバッ
グ情報の出力レベルとして 0xdeb[0-f] パラメータを追加できる。 0-f
によりデバッグメッセージの情報のレベルを 16 段階で指定する。
AM53C974
AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset
BusLogic SCSI ホストアダプタの設定 (’BusLogic=’)
BusLogic=N1,N2,N3,N4,N5,S1,S2,...
Buslogic のコマンドラインパラメータに 関 す る 詳 細 な 議 論 は
/usr/src/linux/drivers/scsi/BusLogic.c (著者がいま見ているカーネ
ルでは 4350-4497 行目) を参照すること。以下はこれを非常におお ざ
っぱに要約したものである。
パラメータ N1 から N5 までは整数である。パラメータ S1 以降は文字
列である。 N1 はホストアダプタが存在する I/O アドレス。 N2 は タ
グキューイングをサポートするデバイスに対して使用するキューの深さ
。 N3 はバス安定時間 (BST) を秒単位で指定する。これはホストア ダ
プタのハードリセットにより SCSI バスをリセットしてから SCSI コマ
ンドの発行を開始するまでの待ち時間である。 N4 はローカルオプショ
ン (ひとつのホストアダプタ用)。 N5 はグローバルオプション (すべ
てのホストアダプタ用)。
文字列オプションは以下の動作を制御する: タ グ キ ュ ー イ ン グ
(TQ:Default, TQ:Enable, TQ:Disable, TQ:)、エラ
ー復帰 (ER:Default, ER:HardReset, ER:BusDeviceReset, ER:None,
ER:) 、 ホ ス ト ア ダ プ タ の 検 出 (NoProbe,
NoProbeISA, NoSortPCI)。
EATA/DMA の設定
検出対象にする I/O ポートのリストを以下のようにして変更できる。
eata=iobase,iobase,....
Future Domain TMC-16x0 の設定
fdomain=iobase,irq[,adapter_id]
Great Valley Products (GVP) SCSI コントローラの設定
gvp11=dma_transfer_bitmask
Future Domain 製 TMC-8xx, TMC-950 の設定
tmc8xx=mem_base,irq
mem_base にはカードが使用するメモリマップ I/O の領域を指定する。
通 常 は 次 の 値 のどれかが使われる: 0xc8000, 0xca000, 0xcc000,
0xce000, 0xdc000, 0xde000。
IN2000 の設定
in2000=S
S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指 定
す る 。指定できるキーワードは以下の通り。 ioport:addr, noreset,
nosync:x, period:ns, disconnect:x, debug:x, proc:x。これらのパラ
メータの機能については /usr/src/linux/drivers/scsi/in2000.c を参
照。
NCR5380 および NCR53C400 の設定
この起動時引数は以下の書式で指定する。
ncr5380=iobase,irq,dma
または
ncr53c400=iobase,irq
カードが IRQ を使用しない場合は、 255 (0xff) を指定すれば無効 に
できる。 IRQ に 254 を指定すると自動検出する。詳細はカーネルソー
ス内の Documentation/scsi/g_NCR5380.txt (古いカーネルの 場 合 は
drivers/scsi/README.g_NCR5380) に書かれている。
NCR53C8xx の設定
ncr53c8xx=S
S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定
する。指定できるキーワードは以下の通り。 mpar (master_parity),
spar (scsi_parity), disc (disconnection), specf (special_fea-
tures), ultra (ultra_scsi), fsn (force_sync_nego), tags
(default_tags), sync (default_sync), verb (verbose), debug
(debug), burst (burst_max)。これらのオプションの機能につい て は
/usr/src/linux/drivers/scsi/README.ncr53c8xx を参照すること。
NCR53c406a の設定
ncr53c406a=iobase[,irq[,fastpio]]
割 り 込み無しで動作するモードには irq に 0 を指定する。高速 PIO
モードは fastpio に 1 を指定し、低速モードは 0 を指定する。
Pro Audio Spectrum の設定
PAS16 は NC5380 SCSI チップを使用しており、最近のモデルはジャ ン
パレスの設定をサポートしている。起動時引数の書式は以下の通り。
pas16=iobase,irq
唯一の違いとして、 IRQ に 255 を指定すれば割り込みを使用しないよ
うドライバに指示できる (パフォーマンスは低下する)。通 常 iobase
は 0x388 である。
Seagate 製 ST-0x の設定
カードが起動時に認識されない場合は以下のような指定が必要になるだ
ろう。
st0x=mem_base,irq
mem_base にはカードが使用するメモリマップ I/O の領域を指定する。
通 常 は次のどれか: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000,
0xde000。 TP Trantor 製 T128 の設定このカードも NCR5380 チップを
利用しており、以下のオプションを受け付ける。
t128=mem_base,irq
有効な mem_base の値は次の通りである: 0xcc000, 0xc8000, 0xdc000,
0xd8000。
UltraStor 製 14F/34F の設定
自動検出を試みる I/O ポートのリストは以下のようにして変更でき る
。
eata=iobase,iobase,....
WD7000 の設定
wd7000=irq,dma,iobase
Commodore Amiga 製 A2091/590 SCSI コントローラの設定
wd33c93=S
S はコンマ区切りの文字列で、各項目は keyword[:value] 形式で指定
する。認識されるオプション は 以 下 の 通 り 。 nosync:bitmask,
nodma:x, period:ns, disconnect:x, debug:x, clock:x, next。詳細は
/usr/src/linux/drivers/scsi/wd33c93.c を参照せよ。
ハードディスク
IDE Disk/CD-ROM ドライバのパラメータ
IDE ドライバは、ディスクのジオメトリ指定からバグのあるコントロー
ラチップのサポートまで、数多くのパラメータを受け付ける。ドライブ
を特定するには ’hdX=’ を使う。ここで X には ’a’ から ’h’ の文 字
を指定する。
あるドライブに特有なものではないオプションは、hd= を前に付けて指
定する。ドライブ特有でないオプションに対 し て ド ラ イ ブ 指 定
(’hdX=’) を前置しても問題はない。そのオプションは期待通りそのド
ライブに適用される。
’hd=’ は、(a, ..., h) のシーケンスにおいて、まだ指定されていない
次のドライブを指すためにも使える。これ以降では簡単のために ’hd=’
を使って説明する。さらに詳しい情報を得るには、カーネルソース内の
Documentation/ide.txt ( 古 い カ ー ネ ル の 場 合 は
drivers/block/README.ide) を参照のこと。
’hd=cyls,heads,sects[,wpcom[,irq]]’ オプション
これらのオプションはディスクの物理的なジオメトリを指定するために
使 う 。最初の 3 つの値以降は省略できる。シリンダ (cyls)、ヘッド
(heads)、セクタ (sects) の各値は fdisk で用いられるものと同じ で
ある。書き込み補正 (wpcom) 値は IDE ディスクでは無視される。 IRQ
値には、そのドライブが接続されているインターフェースが用いる IRQ
を 指 定する (本来の意味では「ドライブに特有」のパラメータではな
い)。
’hd=serialize’ オプション
デュアル IDE インターフェースである CMD-640 チップには設計上の問
題があって、セカンダリインターフェース上のドライブとプライマリイ
ンターフェース上のドライブを同時に使用するとデータが破壊されるこ
とがある。このオプションを使用すると、ドライバは両方のインターフ
ェースが同時に使用されることが絶対にないようにする。
’hd=dtc2278’ オプション
このオプションは、DTC-2278D IDE インターフェースが使われているこ
とをドライバに伝える。するとドライバは、DTC 特有の機能 (2 番目の
インターフェースと高速転送モード) を使用可能にするよう試みる。
’hd=noprobe’ オプション
このドライブの自動検出をしない。例えば
hdb=noprobe hdb=1166,7,17
とすると自動検出が無効になる。しかしドライブのジオメトリを指定し
ているので、このドライブは正しいブロックデバイスとして登録され、
使用可能になる。
’hd=nowerr’ オプション
ドライブによっては、書き込みエラー (WRERR_STAT) ビットがクリアで
きなくなることがある。このオプションを指定すると、このような壊れ
たデバイスに対する回避機能が有効になる。
’hd=cdrom’ オプション
このオプションは、通常の IDE ハードディスクの代わりに、 ATAPI 互
換の CDROM が続されていることを IDE ドライバに伝える。 CD-ROM は
たいてい自動的に認識されるが、うまく行かない場合に試してみると良
い。
スタンダード ST-506 ディスクドライバのオプション (’hd=’)
ス タンダードディスクドライバは IDE ドライバと同様のジオメトリ指
定を引数にとることができる。ただし受け付ける値はちょうど 3 つ
(C/H/S) に限られる。それ以上の値やそれ以下の値を指定すると、ドラ
イバは黙ってその指定を無視する。また引数として受け入れられるのは
’hd=’ の形式だけである。つまり ’hda=’ のような指定はここでは正し
くない。書式は次の通り。
hd=cyls,heads,sects
2 台のディスクが接続されてい場合は、 2 番目のディスクに対して も
上記のジオメトリが設定される。
XT ディスクドライバのオプション (’xd=’)
こ れらの古い 8 bit カード (125kB/s の転送速度しかない!) を使わ
なければならない不幸な人のためのオプションである。カードが認識さ
れない場合は以下の書式で起動時引数を指定する必要があるだろう。
xd=type,irq,iobase,dma_chan
type 値にはカードのメーカーを指定し、これは自動検知より優先され
る。指定すべき type の値については、使っているカーネルのソースフ
ァ イル drivers/block/xd.c を調べてほしい。type はリスト xd_sigs
のインデックスで、歴史と共に追加されたり削除されたりしてきた。リ
ス トの途中での追加・削除も行われたので、その場合はすべての type
番号が変更された。今日 (Linux 2.5.0) に お け る type は 、
0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital;
6,7,8=Seagate; 9=Omti; 10=XEBEC である。ここではいくつかの type
に同じ指定が与えられているが、それらは等価である。
0= ノ ー ブ ラ ンド、1=DTC、2,3,4=Western Digital、5,6,7=Seagate
、8=OMTI 同じメーカーに複数の値があるのは検出に使用され る BIOS
文字列の違いである。 BIOS 文字列は type が指定された場合には使用
されない。
xd_setup() 関数は引数をチェックせず、 4 つの値がすべて指定される
こ とを想定している。引数を省略してはならない。例として、BIOS が
無効にされた (あるいは削除された) WD1002 コントローラの場合を 示
す (パラメータには XT コントローラの「デフォルト」の値を使ってい
る)。
xd=2,5,0x320,3
Syquest 製 EZ* リムーバブルディスク
ez=iobase[,irq[,rep[,nybble]]]
IBM MCA バス上のデバイス
/usr/src/linux/Documentation/mca.txt も参照せよ。
PS/2 ESDI ハードディスク
望むジオメトリを起動時に指定できる。
ed=cyls,heads,sectors.
ThinkPad-720 を使用する場合は以下のオプションを追加すること。
tp720=1
IBM Microchannel SCSI サブシステムの設定
ibmmcascsi=N
N はサブシステムの pun (SCSI ID) を表す。
Aztech インターフェース
このタイプのカードの構文は以下の通り。
aztcd=iobase[,magic_number]
magic_number に 0x79 をセットすると、ドライバはファームウェア の
バージョンが分からない場合でも、とにかく実行を試みる。その他の値
はすべて無視される。
パラレルポート CD-ROM ドライブ
書式:
pcd.driveN=port,pro,uni,mod,slv,dly
pcd.nice=nice
ここで ’port’ はベースアドレス、’pro’ はプロトコル番号、’uni’ は
ユ ニットセレクタ (チェインデバイス用)、’mod’ はモード (あるいは
自動的に最適のものを選ばせるには -1)、’slv’ はスレーブにしたい場
合に 1、’dly’ はポートアクセスを遅くしたい場合に小さな整数を与え
る。’nice’ パラメータは、ドライバのアイドル CPU 時間の使い方を制
御する。ただし速度はある程度低下する。
Sony 製 CDU-31A と CDU-33A のインターフェース
この CD-ROM インターフェースは、 Pro Audio Spectrum サウンドカー
ドの一部やソニーが供給するインターフェースカードで使われている。
構文は以下の通り。
cdu31a=iobase,[irq[,is_pas_card]]
IRQ に 0 を指定すると、ハードウェア割り込みがサポートされていな
いことをドライバに伝える (PAS カードにはそのようなものがある) 。
使 用 するカードが割り込みをサポートしているなら、ドライバによる
CPU の負荷を減らすためにも割り込みを使用すべきである。
is_pas_card には、Pro Audio Spectrum カードを使用しているとき に
は ’PAS’ を指定し、そうでないときにはなにも指定しない。
Sony 製 CDU-535 インターフェース
この CD-ROM インターフェースの構文は以下の通り。
sonycd535=iobase[,irq]
IRQ の値だけを指定したい場合には、 iobase 値を 0 とすれば単なる
穴埋めと解釈される。
GoldStar インターフェース
この CD-ROM インターフェースの構文は以下の通り。
gscd=iobase
ISP16 CD-ROM インターフェース
書式:
isp16=[iobase[,irq[,dma[,type]]]]
(整数値 3 つと文字列 1 つ。) type に ’noisp16’ を指定すると、 イ
ン タ ー フ ェ ー ス の 設定は行なわれない。 type にはこの他にも
’Sanyo’, ’Sony’, ’Panasonic’, ’Mitsumi’ が指定できる。
Mitsumi 標準インターフェース
このCD-ROM インターフェースの構文は以下の通り。
mcd=iobase,[irq[,wait_value]]
wait_value はドライブに問題がある場合に、ドライバ内部のタイム ア
ウ トの指定に用いる。コンパイル時の #define によって実装されるか
されないかが決まる。 Mitsumi FX400 は IDE/ATAPI CD-ROM プレイ ヤ
ーであり、この mcd ドライバは使用しない。
Mitsumi XA/マルチセッションインターフェース
これは上記と同じハードウェアだが、拡張機能がある。構文は以下の通
り。
mcdx=iobase[,irq]
Optics ストレージインターフェース
このカードの構文は以下の通り。
optcd=iobase
Phillips CM206 インターフェース
このカードの構文は以下の通り。
cm206=[iobase][,irq]
ドライバは IRQ 値として 3 から 11 まで、 I/O ポートアドレスの 値
として 0x300 から 0x370 を想定している。いずれか一方、あるいは両
方を指定できる。順番も問わない。 ’cm206=auto’ とすることにより自
動検出もできる。
Sanyo インターフェース
このカードの構文は以下の通り。
sjcd=iobase[,irq[,dma_channel]]
SoundBlaster Pro インターフェース
このカードの構文は以下の通り。
sbpcd=iobase,type
type 値には ’SoundBlaster’, ’LaserMate’, ’SPEA’ のうちひとつを指
定できる (大文字小文字が区別される)。 iobase は CD-ROM インタ ー
フェースの値である。カードのサウンド部の値と間違えないこと。
イーサネットデバイス
ド ライバが異なると用いるパラメータも異なるが、すべてのドライバは、少な
くとも割り込み番号 (irq)、 I/O ポートのベースアドレス (iobase) 、 名 前
(name) を持つ。最も一般的な形式は以下の通り。
ether=irq,iobase[,param_1[,...param_8]],name
最 初の数字でない値は名前として使用される。 param_n の値はカード
(ドライバ) ごとに異なる意味を持つ。よくある目的は、共有メモリ ア
ドレスの指定、インターフェースの選択、 DMA チャネルなどである。
こ のパラメータの最もよくある利用法は、 2 番目の Ethernet カード
を強制的に検出させる場合である (デフォルトでは 1 枚しか検出し な
い)。これは簡単で、次のようにすればよい。
ether=0,0,eth1
こ の例で IRQ と I/O ベースアドレスに 0 を指定しているのは、ドラ
イバに自動検出をするよう伝えているのである。
Ethernet-HOWTO では、複数のカードを使うやり方や、カードやドラ イ
バ に特有の param_n 値の意味について、ずっと詳細に解説されている
。興味を持った読者は、この文書にあたり、自分のカードに関して書か
れているセクションを参照すると良い。
フロッピーディスクドライバ
フロッピードライバのオプションは多数あり、カーネルソース内の Documenta-
tion/floppy.txt (古いカーネルの場合は drivers/block/README.fd) にすべて
記載されている。以下の情報はこのファイルからとったものである。
floppy=mask,allowed_drive_mask
使ってよいドライブにかけるビットマスクを設定する。デフォルトでは
、ユニット 0 と 1 のフロッピーコントローラだけが許可されている。
これは、標準でないハードウェア (例えば ASUS の PCIマザーボードな
ど) でユニット 2 や 3 にアクセスすると、キーボードがおかしくなっ
てしまうからである。 cmos オプション (後述) の導入によって、この
オプションはあまり使われなくなった。
floppy=all_drives
許可するドライブを示すビットマスクを、「すべてのドライブ」にする
。 1 つのフロッピーコントローラに 2 台以上のドライブを接続する場
合に用いる。
floppy=asus_pci
ユニット 0 と 1 のみを許可するようビットマスクを設定する。 (デフ
ォルト)。
floppy=daring
正しく振る舞うフロッピーコントローラを使っていることをドライバに
伝える。このオプションを使うと動作はより効率的かつスムースになる
が、コントローラによっては動作に失敗することがある。これを指定す
るとある種の動作が高速になる。
floppy=0,daring
注意して扱わなければならないフロッピーコントローラであることをド
ライバに伝える。
floppy=one_fdc
フロッピーコントローラがひとつしかないことをドライバに伝える (デ
フォルト)。
floppy=two_fdc または floppy=address,two_fdc
フロッピーコントローラがふたつあることをドライバに伝える。 2 番
目 の コントローラの I/O アドレスは address で指定する。 address
が指定されない場合は 0x370 が使われる。
floppy=thinkpad
Thinkpad を使っていることをフロッピードライバに伝える。 Thinkpad
はディスク取出の検出信号を反転して使っている。
floppy=0,thinkpad
Thinkpad を使っていないことをドライバに伝える。
floppy=drive,type,cmos
ドライブの cmos タイプを type に設定する。さらにビットマスクを変
更し、このドライブの使用を許可する。この指定が便利なのは、フロッ
ピードライブが 2 台以上ある場合 (物理 cmos に記述できるのは 2 台
まで) や、 BIOS が標準的でない CMOS タイプを使っている場合である
。最初の 2 台のドライブの CMOS に 0 を指定する (デフォルト) と、
フロッピードライバはこれらのドライブの物理 cmos を参照する。
floppy=unexpected_interrupts
予期しない割り込みを受けた時に警告メッセージを表示する (デフォル
ト)。
floppy=no_unexpected_interrupts または floppy=L40SX
予期しない割り込みを受けた時でも警告メッセージを表示しない。これ
は IBM L40SX ラップトップコンピュータを特定のビデオモードで使 用
する時に必要となる。 (ビデオとフロッピーとの間で何らかの相互作用
があるようだ。予期しない割り込みは性能だけに影響し、無視しても安
全である。)
サウンドドライバ
サ ウンドドライバも起動時引数を受け付け、コンパイル時に指定された値を変
更できる。これはやや面倒なため、あまりお薦めできない。詳細は、カーネ ル
ソ ー ス 内 の Documentation/sound/oss/README.OSS (古いカーネルの場合は
drivers/sound/Readme.linux) に記載されている。引数の形式は以下の通り。
sound=device1[,device2[,device3...[,device10]]]
各 deviceN はそれぞれ 0xTaaaId という形式で指定する。各バイト の
意味は以下の通り。
T - デ バ イ ス のタイプ: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401,
6=SB16, 7=SB16-MPU401
aaa - I/O ポートアドレス (16進値)
I - 割り込み番号 (16 進値。例: 10=a, 11=b, ...)
d - DMA チャネル
上記の通り、かなり扱いにくい形式となっており、コンパイル時に自分
に あ っ た 値 を 指 定 する方が良いだろう。なお起動時引数として
’sound=0’ を指定すると、サウンドドライバを完全に無効にする。
ISDN ドライバ
ICN ISDN ドライバ
構文は以下の通り。
icn=iobase,membase,icn_id1,icn_id2
icn_id1,icn_id2 はカードを識別するための 2 つの文字列である。 カ
ーネルメッセージで用いられる。
PCBIT ISDN ドライバ
構文は以下の通り。
pcbit=membase1,irq1[,membase2,irq2]
membaseN は N 番目のカードの共有メモリのベースアドレスであり、
irqN は N 番目のカードの割り込み設定である。無指定時には IRQ =
5, membase = 0xD0000 となる。
Teles ISDN ドライバ
構文は以下の通り。
teles=iobase,irq,membase,protocol,teles_id
iobase はカードの I/O ポートアドレス、 membase はカードの共有メ
モリのベースアドレス、そして irq はカードが使用する割り込みチ ャ
ネルである。 teles_id はアスキー文字列による識別文字列である (他
と重ならないようにする)。
シリアルポートドライバ
RISCom/8 マルチポートシリアルドライバ (’riscom8=’)
構文は以下の通り。
riscom=iobase1[,iobase2[,iobase3[,iobase4]]]
詳細は /usr/src/linux/Documentation/riscom8.txt を参照のこと。
DigiBoard ドライバ (’digi=’)
このオプションを使う場合は、 6 つちょうどのパラメータを与えな け
ればならない。構文は以下の通り。
digi=status,type,altpin,numports,iobase,membase
パ ラ メ ー タは整数値か文字列で与える。文字列で指定する場合は、
iobase と membase は 16 進値でなければならない。整数値で指定する
場 合はパラメータの個数は少なくても良く、順に: status このカード
の動作を指定する (Enable(1) または Disable(0)), type カードの タ
イ プ (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), altpin ピン配
置を反転させる (Enable(1) or Disable(0)), numports カードのポ ー
ト番号, iobase このカードの I/O ポート (文字列指定の場合は 16 進
表記), membase メモリウィンドウのベースアドレス (文字列指定の 場
合 は 16 進表記)。したがって以下のふたつの起動時引数は同じ意味を
持つ。
digi=E,PC/Xi,D,16,200,D0000
digi=1,0,0,16,0x200,851968
詳細は /usr/src/linux/Documentation/digiboard.txt を参照せよ。
Baycom シリアル・パラレル ラジオモデム
構文は以下の通り。
baycom=iobase,irq,modem
ちょうど 3 つのパラメータを与える。複数のカードが あ る 場 合 は
、’baycom=’ コマンドも複数記述する。 modem パラメータは文字列で
、 ser12, ser12*, par96, par96* の中からひとつを選ぶ。 * をつ け
る と ソフトウェア DCD を使用する。モデムの種類に応じて ser12 か
par96 かを選択する。詳細はカーネルソース内の Documentation/net-
working/baycom.txt (古いカーネルの場合は drivers/net/README.bay-
com) を参照。
サウンドカードラジオモデムドライバ
構文は以下の通り。
soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode
最後のパラメータを除くすべてのパラメータは整数である。ダミーの 0
があるのは、設定プログラムのバグのせいである。 mode パラメータは
文字列で、hw:modem という書式で指定する。 hw は sbc, wss, wssfdx
のうちひとつ、 modem は afsk1200, fsk9600 のどちらかを選択して記
述する。
ラインプリンタドライバ
’lp=’ 書式:
lp=0
lp=auto
lp=reset
lp=port[,port...]
プリンタドライバには、どのポートを使うか、どのポートを使ってはい
けないかを伝えることができる。後者は、利用可能なあらゆるパラレル
ポートをプリンタドライバが要求しないようにして、他の ド ラ イ バ
(PLIP や PPA など) からそれらを使えるようにしたい場合に便利であ
る。
引数の書式は、複数のポート名である。例えば lp=none,parport0 とす
ると、最初のパラレルポートを lp1 として使い、 lp0 は無効にする。
プリンタードライバを完全に無効にするには lp=0 とすればよい。
WDT500/501 ドライバ
構文は以下の通り。
wdt=io,irq
マウスドライバ
’bmouse=irq’
バスマウスドライバはパラメータをひとつだけとり、ハードウェア IRQ
を指定できる。
’msmouse=irq’
msmouse ドライバでもこの事情はまったく同じである。
ATARI マウスの設定
atamouse=threshold[,y-threshold]
パ ラ メ ー タがひとつだけ与えられた場合には、 x-threshold と y-
threshold を両方に用いられる。ふたつ与えられた場合は、最初の値が
x-threshold として用いられ、 2 番目の値が y-threshold として用い
られる。値は 1 から 20 までの数値で指定する。デフォルトは 2。
ビデオ機器
’no-scroll’
このオプションは、コンソールドライバに、ハードウェアスクロールを
用いないよう伝える (ここで言うハードウェアスクロールとは、ビデオ
メモリ上のデータを移動させることによってスクリーン表示領域をスク
ロ ールさせることを指す)。特定の点字マシンではこの指定が必要とな
る。
関連項目
lilo.conf(5), klogd(8), lilo(8), mount(8), rdev(8)
このマニュアルページの大部分は Paul Gortmaker に よ る Boot Parameter
HOWTO (version 1.0.1) を基にしている。この (あるいは最新の) HOWTO をあ
たれば、さらに多くの情報が入手で き る だ ろ う 。 最 新 の 情 報 源 は
/usr/src/linux/Documentation/kernel-parameters.txt である。
( 訳注) Boot Parameter HOWTO は現在 BootPrompt-HOWTO としてメンテナンス
さ れ て い ま す 。 堀 江 誠 一 さ ん に よ る 日 本 語 版 は 、
http://www.linux.or.jp/JF/JFdocs/BootPrompt-HOWTO.html にあります。英語
版オリジナルは、 http://linuxdoc.org/HOWTO/BootPrompt-HOWTO.html にあり
ます。が、いずれも May 1999 までのものなのでやや古いです。
Linux 2007-12-16 BOOTPARAM(7)
BOOTPARAM(7) Linux Programmer’s Manual BOOTPARAM(7)
NAME
bootparam - Introduction to boot time parameters of the Linux kernel
DESCRIPTION
The Linux kernel accepts certain ’command-line options’ or ’boot time
parameters’ at the moment it is started. In general this is used to
supply the kernel with information about hardware parameters that the
kernel would not be able to determine on its own, or to avoid/override
the values that the kernel would otherwise detect.
When the kernel is booted directly by the BIOS (say from a floppy to
which you copied a kernel using ’cp zImage /dev/fd0’), you have no
opportunity to specify any parameters. So, in order to take advantage
of this possibility you have to use software that is able to pass
parameters, like LILO or loadlin. For a few parameters one can also
modify the kernel image itself, using rdev, see rdev(8) for further
details.
The LILO program (LInux LOader) written by Werner Almesberger is the
most commonly used. It has the ability to boot various kernels, and
stores the configuration information in a plain text file. (See
lilo(8) and lilo.conf(5).) LILO can boot DOS, OS/2, Linux, FreeBSD,
UnixWare, etc., and is quite flexible.
The other commonly used Linux loader is ’LoadLin’ which is a DOS pro-
gram that has the capability to launch a Linux kernel from the DOS
prompt (with boot-args) assuming that certain resources are available.
This is good for people that want to launch Linux from DOS.
It is also very useful if you have certain hardware which relies on the
supplied DOS driver to put the hardware into a known state. A common
example is ’SoundBlaster Compatible’ sound cards that require the DOS
driver to twiddle a few mystical registers to put the card into a SB
compatible mode. Booting DOS with the supplied driver, and then load-
ing Linux from the DOS prompt with loadlin avoids the reset of the card
that happens if one rebooted instead.
The Argument List
The kernel command line is parsed into a list of strings (boot argu-
ments) separated by spaces. Most of the boot args take the form of:
name[=value_1][,value_2]...[,value_10]
where ’name’ is a unique keyword that is used to identify what part of
the kernel the associated values (if any) are to be given to. Note the
limit of 10 is real, as the present code only handles 10 comma sepa-
rated parameters per keyword. (However, you can re-use the same key-
word with up to an additional 10 parameters in unusually complicated
situations, assuming the setup function supports it.)
Most of the sorting goes on in linux/init/main.c. First, the kernel
checks to see if the argument is any of the special arguments ’root=’,
’nfsroot=’, ’nfsaddrs=’, ’ro’, ’rw’, ’debug’ or ’init’. The meaning of
these special arguments is described below.
Then it walks a list of setup functions (contained in the bootsetups
array) to see if the specified argument string (such as ’foo’) has been
associated with a setup function (’foo_setup()’) for a particular
device or part of the kernel. If you passed the kernel the line
foo=3,4,5,6 then the kernel would search the bootsetups array to see if
’foo’ was registered. If it was, then it would call the setup function
associated with ’foo’ (foo_setup()) and hand it the arguments 3, 4, 5
and 6 as given on the kernel command line.
Anything of the form ’foo=bar’ that is not accepted as a setup function
as described above is then interpreted as an environment variable to be
set. A (useless?) example would be to use ’TERM=vt100’ as a boot argu-
ment.
Any remaining arguments that were not picked up by the kernel and were
not interpreted as environment variables are then passed onto process
one, which is usually the init program. The most common argument that
is passed to the init process is the word ’single’ which instructs init
to boot the computer in single user mode, and not launch all the usual
daemons. Check the manual page for the version of init installed on
your system to see what arguments it accepts.
General Non-device Specific Boot Arguments
’init=...’
This sets the initial command to be executed by the kernel. If
this is not set, or cannot be found, the kernel will try
/sbin/init, then /etc/init, then /bin/init, then /bin/sh and
panic if all of this fails.
’nfsaddrs=...’
This sets the nfs boot address to the given string. This boot
address is used in case of a net boot.
’nfsroot=...’
This sets the nfs root name to the given string. If this string
does not begin with ’/’ or ’,’ or a digit, then it is prefixed
by ’/tftpboot/’. This root name is used in case of a net boot.
’no387’
(Only when CONFIG_BUGi386 is defined.) Some i387 coprocessor
chips have bugs that show up when used in 32 bit protected mode.
For example, some of the early ULSI-387 chips would cause solid
lockups while performing floating-point calculations. Using the
’no387’ boot arg causes Linux to ignore the maths coprocessor
even if you have one. Of course you must then have your kernel
compiled with math emulation support!
’no-hlt’
(Only when CONFIG_BUGi386 is defined.) Some of the early
i486DX-100 chips have a problem with the ’hlt’ instruction, in
that they can’t reliably return to operating mode after this
instruction is used. Using the ’no-hlt’ instruction tells Linux
to just run an infinite loop when there is nothing else to do,
and to not halt the CPU. This allows people with these broken
chips to use Linux.
’root=...’
This argument tells the kernel what device is to be used as the
root file system while booting. The default of this setting is
determined at compile time, and usually is the value of the root
device of the system that the kernel was built on. To override
this value, and select the second floppy drive as the root
device, one would use ’root=/dev/fd1’. (The root device can
also be set using rdev(8).)
The root device can be specified symbolically or numerically. A
symbolic specification has the form /dev/XXYN, where XX desig-
nates the device type (’hd’ for ST-506 compatible hard disk,
with Y in ’a’-’d’; ’sd’ for SCSI compatible disk, with Y in
’a’-’e’; ’ad’ for Atari ACSI disk, with Y in ’a’-’e’, ’ez’ for a
Syquest EZ135 parallel port removable drive, with Y=’a’, ’xd’
for XT compatible disk, with Y either ’a’ or ’b’; ’fd’ for
floppy disk, with Y the floppy drive number — fd0 would be the
DOS ’A:’ drive, and fd1 would be ’B:’), Y the driver letter or
number, and N the number (in decimal) of the partition on this
device (absent in the case of floppies). Recent kernels allow
many other types, mostly for CD-ROMs: nfs, ram, scd, mcd,
cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd. (The type
nfs specifies a net boot; ram refers to a ram disk.)
Note that this has nothing to do with the designation of these
devices on your file system. The ’/dev/’ part is purely conven-
tional.
The more awkward and less portable numeric specification of the
above possible root devices in major/minor format is also
accepted. (E.g., /dev/sda3 is major 8, minor 3, so you could
use ’root=0x803’ as an alternative.)
’ro’ and ’rw’
The ’ro’ option tells the kernel to mount the root file system
as ’read-only’ so that file system consistency check programs
(fsck) can do their work on a quiescent file system. No pro-
cesses can write to files on the file system in question until
it is ’remounted’ as read/write capable, for example, by ’mount
-w -n -o remount /’. (See also mount(8).)
The ’rw’ option tells the kernel to mount the root file system
read/write. This is the default.
The choice between read-only and read/write can also be set
using rdev(8).
’reserve=...’
This is used to protect I/O port regions from probes. The form
of the command is:
reserve=iobase,extent[,iobase,extent]...
In some machines it may be necessary to prevent device drivers
from checking for devices (auto-probing) in a specific region.
This may be because of hardware that reacts badly to the prob-
ing, or hardware that would be mistakenly identified, or merely
hardware you don’t want the kernel to initialize.
The reserve boot-time argument specifies an I/O port region that
shouldn’t be probed. A device driver will not probe a reserved
region, unless another boot argument explicitly specifies that
it do so.
For example, the boot line
reserve=0x300,32 blah=0x300
keeps all device drivers except the driver for ’blah’ from prob-
ing 0x300-0x31f.
’mem=...’
The BIOS call defined in the PC specification that returns the
amount of installed memory was only designed to be able to
report up to 64MB. Linux uses this BIOS call at boot to deter-
mine how much memory is installed. If you have more than 64MB
of RAM installed, you can use this boot arg to tell Linux how
much memory you have. The value is in decimal or hexadecimal
(prefix 0x), and the suffixes ’k’ (times 1024) or ’M’ (times
1048576) can be used. Here is a quote from Linus on usage of
the ’mem=’ parameter.
The kernel will accept any ’mem=xx’ parameter you give it,
and if it turns out that you lied to it, it will crash hor-
ribly sooner or later. The parameter indicates the highest
addressable RAM address, so ’mem=0x1000000’ means you have
16MB of memory, for example. For a 96MB machine this would
be ’mem=0x6000000’.
NOTE NOTE NOTE: some machines might use the top of memory
for BIOS caching or whatever, so you might not actually
have up to the full 96MB addressable. The reverse is also
true: some chipsets will map the physical memory that is
covered by the BIOS area into the area just past the top of
memory, so the top-of-mem might actually be 96MB + 384kB
for example. If you tell linux that it has more memory
than it actually does have, bad things will happen: maybe
not at once, but surely eventually.
You can also use the boot argument ’mem=nopentium’ to turn off 4
MB page tables on kernels configured for IA32 systems with a
pentium or newer CPU.
’panic=N’
By default the kernel will not reboot after a panic, but this
option will cause a kernel reboot after N seconds (if N is
greater than zero). This panic timeout can also be set by "echo
N > /proc/sys/kernel/panic".
’reboot=[warm|cold][,[bios|hard]]’
(Only when CONFIG_BUGi386 is defined.) Since 2.0.22 a reboot is
by default a cold reboot. One asks for the old default with
’reboot=warm’. (A cold reboot may be required to reset certain
hardware, but might destroy not yet written data in a disk
cache. A warm reboot may be faster.) By default a reboot is
hard, by asking the keyboard controller to pulse the reset line
low, but there is at least one type of motherboard where that
doesn’t work. The option ’reboot=bios’ will instead jump
through the BIOS.
’nosmp’ and ’maxcpus=N’
(Only when __SMP__ is defined.) A command-line option of
’nosmp’ or ’maxcpus=0’ will disable SMP activation entirely; an
option ’maxcpus=N’ limits the maximum number of CPUs activated
in SMP mode to N.
Boot Arguments for Use by Kernel Developers
’debug’
Kernel messages are handed off to the kernel log daemon klogd so
that they may be logged to disk. Messages with a priority above
console_loglevel are also printed on the console. (For these
levels, see .) By default this variable is set
to log anything more important than debug messages. This boot
argument will cause the kernel to also print the messages of
DEBUG priority. The console loglevel can also be set at run
time via an option to klogd. See klogd(8).
’profile=N’
It is possible to enable a kernel profiling function, if one
wishes to find out where the kernel is spending its CPU cycles.
Profiling is enabled by setting the variable prof_shift to a
non-zero value. This is done either by specifying CONFIG_PRO-
FILE at compile time, or by giving the ’profile=’ option. Now
the value that prof_shift gets will be N, when given, or CON-
FIG_PROFILE_SHIFT, when that is given, or 2, the default. The
significance of this variable is that it gives the granularity
of the profiling: each clock tick, if the system was executing
kernel code, a counter is incremented:
profile[address >> prof_shift]++;
The raw profiling information can be read from /proc/profile.
Probably you’ll want to use a tool such as readprofile.c to
digest it. Writing to /proc/profile will clear the counters.
’swap=N1,N2,N3,N4,N5,N6,N7,N8’
Set the eight parameters max_page_age, page_advance,
page_decline, page_initial_age, age_cluster_fract, age_clus-
ter_min, pageout_weight, bufferout_weight that control the ker-
nel swap algorithm. For kernel tuners only.
’buff=N1,N2,N3,N4,N5,N6’
Set the six parameters max_buff_age, buff_advance, buff_decline,
buff_initial_age, bufferout_weight, buffermem_grace that control
kernel buffer memory management. For kernel tuners only.
Boot Arguments for Ramdisk Use
(Only if the kernel was compiled with CONFIG_BLK_DEV_RAM.) In general
it is a bad idea to use a ramdisk under Linux — the system will use
available memory more efficiently itself. But while booting (or while
constructing boot floppies) it is often useful to load the floppy con-
tents into a ramdisk. One might also have a system in which first some
modules (for file system or hardware) must be loaded before the main
disk can be accessed.
In Linux 1.3.48, ramdisk handling was changed drastically. Earlier,
the memory was allocated statically, and there was a ’ramdisk=N’ param-
eter to tell its size. (This could also be set in the kernel image at
compile time, or by use of rdev(8).) These days ram disks use the
buffer cache, and grow dynamically. For a lot of information (e.g.,
how to use rdev(8) in conjunction with the new ramdisk setup), see
/usr/src/linux/Documentation/ramdisk.txt.
There are four parameters, two boolean and two integral.
’load_ramdisk=N’
If N=1, do load a ramdisk. If N=0, do not load a ramdisk.
(This is the default.)
’prompt_ramdisk=N’
If N=1, do prompt for insertion of the floppy. (This is the
default.) If N=0, do not prompt. (Thus, this parameter is
never needed.)
’ramdisk_size=N’ or (obsolete) ’ramdisk=N’
Set the maximal size of the ramdisk(s) to N kB. The default is
4096 (4 MB).
’ramdisk_start=N’
Sets the starting block number (the offset on the floppy where
the ramdisk starts) to N. This is needed in case the ramdisk
follows a kernel image.
’noinitrd’
(Only if the kernel was compiled with CONFIG_BLK_DEV_RAM and
CONFIG_BLK_DEV_INITRD.) These days it is possible to compile
the kernel to use initrd. When this feature is enabled, the
boot process will load the kernel and an initial ramdisk; then
the kernel converts initrd into a "normal" ramdisk, which is
mounted read-write as root device; then /linuxrc is executed;
afterwards the "real" root file system is mounted, and the ini-
trd file system is moved over to /initrd; finally the usual boot
sequence (e.g., invocation of /sbin/init) is performed.
For a detailed description of the initrd feature, see
/usr/src/linux/Documentation/initrd.txt.
The ’noinitrd’ option tells the kernel that although it was com-
piled for operation with initrd, it should not go through the
above steps, but leave the initrd data under /dev/initrd. (This
device can be used only once: the data is freed as soon as the
last process that used it has closed /dev/initrd.)
Boot Arguments for SCSI Devices
General notation for this section:
iobase -- the first I/O port that the SCSI host occupies. These are
specified in hexadecimal notation, and usually lie in the range from
0x200 to 0x3ff.
irq -- the hardware interrupt that the card is configured to use.
Valid values will be dependent on the card in question, but will usu-
ally be 5, 7, 9, 10, 11, 12, and 15. The other values are usually used
for common peripherals like IDE hard disks, floppies, serial ports,
etc.
scsi-id -- the ID that the host adapter uses to identify itself on the
SCSI bus. Only some host adapters allow you to change this value, as
most have it permanently specified internally. The usual default value
is 7, but the Seagate and Future Domain TMC-950 boards use 6.
parity -- whether the SCSI host adapter expects the attached devices to
supply a parity value with all information exchanges. Specifying a one
indicates parity checking is enabled, and a zero disables parity check-
ing. Again, not all adapters will support selection of parity behavior
as a boot argument.
’max_scsi_luns=...’
A SCSI device can have a number of ’sub-devices’ contained
within itself. The most common example is one of the new SCSI
CD-ROMs that handle more than one disk at a time. Each CD is
addressed as a ’Logical Unit Number’ (LUN) of that particular
device. But most devices, such as hard disks, tape drives and
such are only one device, and will be assigned to LUN zero.
Some poorly designed SCSI devices cannot handle being probed for
LUNs not equal to zero. Therefore, if the compile-time flag
CONFIG_SCSI_MULTI_LUN is not set, newer kernels will by default
only probe LUN zero.
To specify the number of probed LUNs at boot, one enters
’max_scsi_luns=n’ as a boot arg, where n is a number between one
and eight. To avoid problems as described above, one would use
n=1 to avoid upsetting such broken devices.
SCSI tape configuration
Some boot time configuration of the SCSI tape driver can be
achieved by using the following:
st=buf_size[,write_threshold[,max_bufs]]
The first two numbers are specified in units of kB. The default
buf_size is 32kB, and the maximum size that can be specified is
a ridiculous 16384kB. The write_threshold is the value at which
the buffer is committed to tape, with a default value of 30kB.
The maximum number of buffers varies with the number of drives
detected, and has a default of two. An example usage would be:
st=32,30,2
Full details can be found in the file Documentation/scsi/st.txt
(or drivers/scsi/README.st for older kernels) in the kernel
source.
Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI configuration
The aha numbers refer to cards and the aic numbers refer to the
actual SCSI chip on these type of cards, including the Sound-
blaster-16 SCSI.
The probe code for these SCSI hosts looks for an installed BIOS,
and if none is present, the probe will not find your card. Then
you will have to use a boot arg of the form:
aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]
If the driver was compiled with debugging enabled, a sixth value
can be specified to set the debug level.
All the parameters are as described at the top of this section,
and the reconnect value will allow device disconnect/reconnect
if a non-zero value is used. An example usage is as follows:
aha152x=0x340,11,7,1
Note that the parameters must be specified in order, meaning
that if you want to specify a parity setting, then you will have
to specify an iobase, irq, scsi-id and reconnect value as well.
Adaptec aha154x configuration
The aha1542 series cards have an i82077 floppy controller
onboard, while the aha1540 series cards do not. These are bus-
mastering cards, and have parameters to set the "fairness" that
is used to share the bus with other devices. The boot arg looks
like the following.
aha1542=iobase[,buson,busoff[,dmaspeed]]
Valid iobase values are usually one of: 0x130, 0x134, 0x230,
0x234, 0x330, 0x334. Clone cards may permit other values.
The buson, busoff values refer to the number of microseconds
that the card dominates the ISA bus. The defaults are 11us on,
and 4us off, so that other cards (such as an ISA LANCE Ethernet
card) have a chance to get access to the ISA bus.
The dmaspeed value refers to the rate (in MB/s) at which the DMA
(Direct Memory Access) transfers proceed. The default is 5MB/s.
Newer revision cards allow you to select this value as part of
the soft-configuration, older cards use jumpers. You can use
values up to 10MB/s assuming that your motherboard is capable of
handling it. Experiment with caution if using values over
5MB/s.
Adaptec aha274x, aha284x, aic7xxx configuration
These boards can accept an argument of the form:
aic7xxx=extended,no_reset
The extended value, if non-zero, indicates that extended trans-
lation for large disks is enabled. The no_reset value, if non-
zero, tells the driver not to reset the SCSI bus when setting up
the host adapter at boot.
AdvanSys SCSI Hosts configuration (’advansys=’)
The AdvanSys driver can accept up to four i/o addresses that
will be probed for an AdvanSys SCSI card. Note that these val-
ues (if used) do not effect EISA or PCI probing in any way.
They are only used for probing ISA and VLB cards. In addition,
if the driver has been compiled with debugging enabled, the
level of debugging output can be set by adding an 0xdeb[0-f]
parameter. The 0-f allows setting the level of the debugging
messages to any of 16 levels of verbosity.
AM53C974
AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset
BusLogic SCSI Hosts configuration (’BusLogic=’)
BusLogic=N1,N2,N3,N4,N5,S1,S2,...
For an extensive discussion of the BusLogic command line parame-
ters, see /usr/src/linux/drivers/scsi/BusLogic.c (lines
3149-3270 in the kernel version I am looking at). The text
below is a very much abbreviated extract.
The parameters N1-N5 are integers. The parameters S1,... are
strings. N1 is the I/O Address at which the Host Adapter is
located. N2 is the Tagged Queue Depth to use for Target Devices
that support Tagged Queuing. N3 is the Bus Settle Time in sec-
onds. This is the amount of time to wait between a Host Adapter
Hard Reset which initiates a SCSI Bus Reset and issuing any SCSI
Commands. N4 is the Local Options (for one Host Adapter). N5
is the Global Options (for all Host Adapters).
The string options are used to provide control over Tagged Queu-
ing (TQ:Default, TQ:Enable, TQ:Disable, TQ:),
over Error Recovery (ER:Default, ER:HardReset, ER:BusDeviceRe-
set, ER:None, ER:), and over Host Adapter Prob-
ing (NoProbe, NoProbeISA, NoSortPCI).
EATA/DMA configuration
The default list of i/o ports to be probed can be changed by
eata=iobase,iobase,....
Future Domain TMC-16x0 configuration
fdomain=iobase,irq[,adapter_id]
Great Valley Products (GVP) SCSI controller configuration
gvp11=dma_transfer_bitmask
Future Domain TMC-8xx, TMC-950 configuration
tmc8xx=mem_base,irq
The mem_base value is the value of the memory mapped I/O region
that the card uses. This will usually be one of the following
values: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
IN2000 configuration
in2000=S
where S is a comma-separated string of items keyword[:value].
Recognized keywords (possibly with value) are: ioport:addr,
noreset, nosync:x, period:ns, disconnect:x, debug:x, proc:x.
For the function of these parameters, see
/usr/src/linux/drivers/scsi/in2000.c.
NCR5380 and NCR53C400 configuration
The boot arg is of the form
ncr5380=iobase,irq,dma
or
ncr53c400=iobase,irq
If the card doesn’t use interrupts, then an IRQ value of 255
(0xff) will disable interrupts. An IRQ value of 254 means to
autoprobe. More details can be found in the file Documenta-
tion/scsi/g_NCR5380.txt (or drivers/scsi/README.g_NCR5380 for
older kernels) in the kernel source.
NCR53C8xx configuration
ncr53c8xx=S
where S is a comma-separated string of items keyword:value.
Recognized keywords are: mpar (master_parity), spar (scsi_par-
ity), disc (disconnection), specf (special_features), ultra
(ultra_scsi), fsn (force_sync_nego), tags (default_tags), sync
(default_sync), verb (verbose), debug (debug), burst
(burst_max). For the function of the assigned values, see
/usr/src/linux/drivers/scsi/ncr53c8xx.c.
NCR53c406a configuration
ncr53c406a=iobase[,irq[,fastpio]]
Specify irq = 0 for non-interrupt driven mode. Set fastpio = 1
for fast pio mode, 0 for slow mode.
Pro Audio Spectrum configuration
The PAS16 uses a NC5380 SCSI chip, and newer models support
jumperless configuration. The boot arg is of the form:
pas16=iobase,irq
The only difference is that you can specify an IRQ value of 255,
which will tell the driver to work without using interrupts,
albeit at a performance loss. The iobase is usually 0x388.
Seagate ST-0x configuration
If your card is not detected at boot time, you will then have to
use a boot arg of the form:
st0x=mem_base,irq
The mem_base value is the value of the memory mapped I/O region
that the card uses. This will usually be one of the following
values: 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000.
Trantor T128 configuration
These cards are also based on the NCR5380 chip, and accept the
following options:
t128=mem_base,irq
The valid values for mem_base are as follows: 0xcc000, 0xc8000,
0xdc000, 0xd8000.
UltraStor 14F/34F configuration
The default list of i/o ports to be probed can be changed by
eata=iobase,iobase,....
WD7000 configuration
wd7000=irq,dma,iobase
Commodore Amiga A2091/590 SCSI controller configuration
wd33c93=S
where S is a comma-separated string of options. Recognized
options are nosync:bitmask, nodma:x, period:ns, disconnect:x,
debug:x, clock:x, next. For details, see
/usr/src/linux/drivers/scsi/wd33c93.c.
Hard Disks
IDE Disk/CD-ROM Driver Parameters
The IDE driver accepts a number of parameters, which range from
disk geometry specifications, to support for broken controller
chips. Drive-specific options are specified by using ’hdX=’
with X in ’a’-’h’.
Non-drive-specific options are specified with the prefix ’hd=’.
Note that using a drive-specific prefix for a non-drive-specific
option will still work, and the option will just be applied as
expected.
Also note that ’hd=’ can be used to refer to the next unspeci-
fied drive in the (a, ..., h) sequence. For the following dis-
cussions, the ’hd=’ option will be cited for brevity. See the
file Documentation/ide.txt (or drivers/block/README.ide for
older kernels) in the kernel source for more details.
The ’hd=cyls,heads,sects[,wpcom[,irq]]’ options
These options are used to specify the physical geometry of the
disk. Only the first three values are required. The cylin-
der/head/sectors values will be those used by fdisk. The write
precompensation value is ignored for IDE disks. The IRQ value
specified will be the IRQ used for the interface that the drive
resides on, and is not really a drive-specific parameter.
The ’hd=serialize’ option
The dual IDE interface CMD-640 chip is broken as designed such
that when drives on the secondary interface are used at the same
time as drives on the primary interface, it will corrupt your
data. Using this option tells the driver to make sure that both
interfaces are never used at the same time.
The ’hd=dtc2278’ option
This option tells the driver that you have a DTC-2278D IDE
interface. The driver then tries to do DTC-specific operations
to enable the second interface and to enable faster transfer
modes.
The ’hd=noprobe’ option
Do not probe for this drive. For example,
hdb=noprobe hdb=1166,7,17
would disable the probe, but still specify the drive geometry so
that it would be registered as a valid block device, and hence
usable.
The ’hd=nowerr’ option
Some drives apparently have the WRERR_STAT bit stuck on perma-
nently. This enables a work-around for these broken devices.
The ’hd=cdrom’ option
This tells the IDE driver that there is an ATAPI compatible CD-
ROM attached in place of a normal IDE hard disk. In most cases
the CD-ROM is identified automatically, but if it isn’t then
this may help.
Standard ST-506 Disk Driver Options (’hd=’)
The standard disk driver can accept geometry arguments for the
disks similar to the IDE driver. Note however that it only
expects three values (C/H/S); any more or any less and it will
silently ignore you. Also, it only accepts ’hd=’ as an argu-
ment, that is, ’hda=’ and so on are not valid here. The format
is as follows:
hd=cyls,heads,sects
If there are two disks installed, the above is repeated with the
geometry parameters of the second disk.
XT Disk Driver Options (’xd=’)
If you are unfortunate enough to be using one of these old 8 bit
cards that move data at a whopping 125kB/s then here is the
scoop. If the card is not recognized, you will have to use a
boot arg of the form:
xd=type,irq,iobase,dma_chan
The type value specifies the particular manufacturer of the
card, overriding autodetection. For the types to use, consult
the drivers/block/xd.c source file of the kernel you are using.
The type is an index in the list xd_sigs and in the course of
time types have been added to or deleted from the middle of the
list, changing all type numbers. Today (Linux 2.5.0) the types
are 0=generic; 1=DTC 5150cx; 2,3=DTC 5150x; 4,5=Western Digital;
6,7,8=Seagate; 9=Omti; 10=XEBEC, and where here several types
are given with the same designation, they are equivalent.
The xd_setup() function does no checking on the values, and
assumes that you entered all four values. Don’t disappoint it.
Here is an example usage for a WD1002 controller with the BIOS
disabled/removed, using the ’default’ XT controller parameters:
xd=2,5,0x320,3
Syquest’s EZ* removable disks
ez=iobase[,irq[,rep[,nybble]]]
IBM MCA Bus Devices
See also /usr/src/linux/Documentation/mca.txt.
PS/2 ESDI hard disks
It is possible to specify the desired geometry at boot time:
ed=cyls,heads,sectors.
For a ThinkPad-720, add the option
tp720=1.
IBM Microchannel SCSI Subsystem configuration
ibmmcascsi=N
where N is the pun (SCSI ID) of the subsystem.
The Aztech Interface
The syntax for this type of card is:
aztcd=iobase[,magic_number]
If you set the magic_number to 0x79 then the driver will try and
run anyway in the event of an unknown firmware version. All
other values are ignored.
Parallel port CD-ROM drives
Syntax:
pcd.driveN=prt,pro,uni,mod,slv,dly
pcd.nice=nice
where ’port’ is the base address, ’pro’ is the protocol number,
’uni’ is the unit selector (for chained devices), ’mod’ is the
mode (or -1 to choose the best automatically), ’slv’ is 1 if it
should be a slave, and ’dly’ is a small integer for slowing down
port accesses. The ’nice’ parameter controls the driver’s use
of idle CPU time, at the expense of some speed.
The CDU-31A and CDU-33A Sony Interface
This CD-ROM interface is found on some of the Pro Audio Spectrum
sound cards, and other Sony supplied interface cards. The syn-
tax is as follows:
cdu31a=iobase,[irq[,is_pas_card]]
Specifying an IRQ value of zero tells the driver that hardware
interrupts aren’t supported (as on some PAS cards). If your
card supports interrupts, you should use them as it cuts down on
the CPU usage of the driver.
The is_pas_card should be entered as ’PAS’ if using a Pro Audio
Spectrum card, and otherwise it should not be specified at all.
The CDU-535 Sony Interface
The syntax for this CD-ROM interface is:
sonycd535=iobase[,irq]
A zero can be used for the I/O base as a ’placeholder’ if one
wishes to specify an IRQ value.
The GoldStar Interface
The syntax for this CD-ROM interface is:
gscd=iobase
The ISP16 CD-ROM Interface
Syntax:
isp16=[iobase[,irq[,dma[,type]]]]
(three integers and a string). If the type is given as
’noisp16’, the interface will not be configured. Other recog-
nized types are: ’Sanyo", ’Sony’, ’Panasonic’ and ’Mitsumi’.
The Mitsumi Standard Interface
The syntax for this CD-ROM interface is:
mcd=iobase,[irq[,wait_value]]
The wait_value is used as an internal timeout value for people
who are having problems with their drive, and may or may not be
implemented depending on a compile-time #define. The Mitsumi
FX400 is an IDE/ATAPI CD-ROM player and does not use the mcd
driver.
The Mitsumi XA/MultiSession Interface
This is for the same hardware as above, but the driver has
extended features. Syntax:
mcdx=iobase[,irq]
The Optics Storage Interface
The syntax for this type of card is:
optcd=iobase
The Phillips CM206 Interface
The syntax for this type of card is:
cm206=[iobase][,irq]
The driver assumes numbers between 3 and 11 are IRQ values, and
numbers between 0x300 and 0x370 are I/O ports, so you can spec-
ify one, or both numbers, in any order. It also accepts
’cm206=auto’ to enable autoprobing.
The Sanyo Interface
The syntax for this type of card is:
sjcd=iobase[,irq[,dma_channel]]
The SoundBlaster Pro Interface
The syntax for this type of card is:
sbpcd=iobase,type
where type is one of the following (case sensitive) strings:
’SoundBlaster’, ’LaserMate’, or ’SPEA’. The I/O base is that of
the CD-ROM interface, and not that of the sound portion of the
card.
Ethernet Devices
Different drivers make use of different parameters, but they all at
least share having an IRQ, an I/O port base value, and a name. In its
most generic form, it looks something like this:
ether=irq,iobase[,param_1[,...param_8]],name
The first non-numeric argument is taken as the name. The
param_n values (if applicable) usually have different meanings
for each different card/driver. Typical param_n values are used
to specify things like shared memory address, interface selec-
tion, DMA channel and the like.
The most common use of this parameter is to force probing for a
second ethercard, as the default is to only probe for one. This
can be accomplished with a simple:
ether=0,0,eth1
Note that the values of zero for the IRQ and I/O base in the
above example tell the driver(s) to autoprobe.
The Ethernet-HowTo has extensive documentation on using multiple
cards and on the card/driver-specific implementation of the
param_n values where used. Interested readers should refer to
the section in that document on their particular card.
The Floppy Disk Driver
There are many floppy driver options, and they are all listed in Docu-
mentation/floppy.txt (or drivers/block/README.fd for older kernels) in
the kernel source. This information is taken directly from that file.
floppy=mask,allowed_drive_mask
Sets the bit mask of allowed drives to mask. By default, only
units 0 and 1 of each floppy controller are allowed. This is
done because certain non-standard hardware (ASUS PCI mother-
boards) mess up the keyboard when accessing units 2 or 3. This
option is somewhat obsoleted by the cmos option.
floppy=all_drives
Sets the bit mask of allowed drives to all drives. Use this if
you have more than two drives connected to a floppy controller.
floppy=asus_pci
Sets the bit mask to allow only units 0 and 1. (The default)
floppy=daring
Tells the floppy driver that you have a well behaved floppy con-
troller. This allows more efficient and smoother operation, but
may fail on certain controllers. This may speed up certain
operations.
floppy=0,daring
Tells the floppy driver that your floppy controller should be
used with caution.
floppy=one_fdc
Tells the floppy driver that you have only floppy controller
(default)
floppy=two_fdc or floppy=address,two_fdc
Tells the floppy driver that you have two floppy controllers.
The second floppy controller is assumed to be at address. If
address is not given, 0x370 is assumed.
floppy=thinkpad
Tells the floppy driver that you have a Thinkpad. Thinkpads use
an inverted convention for the disk change line.
floppy=0,thinkpad
Tells the floppy driver that you don’t have a Thinkpad.
floppy=drive,type,cmos
Sets the cmos type of drive to type. Additionally, this drive
is allowed in the bit mask. This is useful if you have more
than two floppy drives (only two can be described in the physi-
cal cmos), or if your BIOS uses non-standard CMOS types. Set-
ting the CMOS to 0 for the first two drives (default) makes the
floppy driver read the physical cmos for those drives.
floppy=unexpected_interrupts
Print a warning message when an unexpected interrupt is received
(default behavior)
floppy=no_unexpected_interrupts or floppy=L40SX
Don’t print a message when an unexpected interrupt is received.
This is needed on IBM L40SX laptops in certain video modes.
(There seems to be an interaction between video and floppy. The
unexpected interrupts only affect performance, and can safely be
ignored.)
The Sound Driver
The sound driver can also accept boot args to override the compiled in
values. This is not recommended, as it is rather complex. It is
described in the kernel source file Documentation/sound/oss/README.OSS
(drivers/sound/Readme.linux in older kernel versions). It accepts a
boot arg of the form:
sound=device1[,device2[,device3...[,device10]]]
where each deviceN value is of the following format 0xTaaaId and
the bytes are used as follows:
T - device type: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16,
7=SB16-MPU401
aaa - I/O address in hex.
I - interrupt line in hex (i.e 10=a, 11=b, ...)
d - DMA channel.
As you can see it gets pretty messy, and you are better off to
compile in your own personal values as recommended. Using a
boot arg of ’sound=0’ will disable the sound driver entirely.
ISDN Drivers
The ICN ISDN driver
Syntax:
icn=iobase,membase,icn_id1,icn_id2
where icn_id1,icn_id2 are two strings used to identify the card
in kernel messages.
The PCBIT ISDN driver
Syntax:
pcbit=membase1,irq1[,membase2,irq2]
where membaseN is the shared memory base of the N’th card, and
irqN is the interrupt setting of the N’th card. The default is
IRQ 5 and membase 0xD0000.
The Teles ISDN driver
Syntax:
teles=iobase,irq,membase,protocol,teles_id
where iobase is the i/o port address of the card, membase is the
shared memory base address of the card, irq is the interrupt
channel the card uses, and teles_id is the unique ASCII string
identifier.
Serial Port Drivers
The RISCom/8 Multiport Serial Driver (’riscom8=’)
Syntax:
riscom=iobase1[,iobase2[,iobase3[,iobase4]]]
More details can be found in /usr/src/linux/Documenta-
tion/riscom8.txt.
The DigiBoard Driver (’digi=’)
If this option is used, it should have precisely six parameters.
Syntax:
digi=status,type,altpin,numports,iobase,membase
The parameters maybe given as integers, or as strings. If
strings are used, then iobase and membase should be given in
hexadecimal. The integer arguments (fewer may be given) are in
order: status (Enable(1) or Disable(0) this card), type
(PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), altpin (Enable(1)
or Disable(0) alternate pin arrangement), numports (number of
ports on this card), iobase (I/O Port where card is configured
(in HEX)), membase (base of memory window (in HEX)). Thus, the
following two boot prompt arguments are equivalent:
digi=E,PC/Xi,D,16,200,D0000
digi=1,0,0,16,0x200,851968
More details can be found in /usr/src/linux/Documentation/digi-
board.txt.
The Baycom Serial/Parallel Radio Modem
Syntax:
baycom=iobase,irq,modem
There are precisely 3 parameters; for several cards, give sev-
eral ’baycom=’ commands. The modem parameter is a string that
can take one of the values ser12, ser12*, par96, par96*. Here
the * denotes that software DCD is to be used, and ser12/par96
chooses between the supported modem types. For more details,
see the file Documentation/networking/baycom.txt (or
drivers/net/README.baycom for older kernels) in the kernel
source.
Soundcard radio modem driver
Syntax:
soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode
All parameters except the last are integers; the dummy 0 is
required because of a bug in the setup code. The mode parameter
is a string with syntax hw:modem, where hw is one of sbc, wss,
wssfdx and modem is one of afsk1200, fsk9600.
The Line Printer Driver
’lp=’ Syntax:
lp=0
lp=auto
lp=reset
lp=port[,port...]
You can tell the printer driver what ports to use and what ports
not to use. The latter comes in handy if you don’t want the
printer driver to claim all available parallel ports, so that
other drivers (e.g., PLIP, PPA) can use them instead.
The format of the argument is multiple port names. For example,
lp=none,parport0 would use the first parallel port for lp1, and
disable lp0. To disable the printer driver entirely, one can
use lp=0.
WDT500/501 driver
Syntax:
wdt=io,irq
Mouse Drivers
’bmouse=irq’
The busmouse driver only accepts one parameter, that being the
hardware IRQ value to be used.
’msmouse=irq’
And precisely the same is true for the msmouse driver.
ATARI mouse setup
atamouse=threshold[,y-threshold]
If only one argument is given, it is used for both x-threshold
and y-threshold. Otherwise, the first argument is the x-thresh-
old, and the second the y-threshold. These values must lie
between 1 and 20 (inclusive); the default is 2.
Video Hardware
’no-scroll’
This option tells the console driver not to use hardware scroll
(where a scroll is effected by moving the screen origin in video
memory, instead of moving the data). It is required by certain
Braille machines.
SEE ALSO
lilo.conf(5), klogd(8), lilo(8), mount(8), rdev(8)
Large parts of this man page have been derived from the Boot Parameter
HOWTO (version 1.0.1) written by Paul Gortmaker. More information may
be found in this (or a more recent) HOWTO. An up-to-date source of
information is /usr/src/linux/Documentation/kernel-parameters.txt.
COLOPHON
This page is part of release 3.22 of the Linux man-pages project. A
description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2007-12-16 BOOTPARAM(7)