この節では標準の MFM/RLL, ST-506, XT, IDE ディスクドライブデバイス に関わる起動時引数を説明します。IDE と 汎用 ST-506 HD ドライバ はどちらも "hd=" オプションを受け付けます。
IDE ドライバはたくさんの引数を受け付けます。引数はディスクのジオメトリ
指定のためのものから、先進的な制御チップや不具合のある制御チップに対応
するためのものまであります。以下に利用可能な起動時引数をまとめました。
完全な説明に関しては、 linux/Documentation ディレクトリにある
ide.txt を参照するよう強く勧めます。以下の
まとめはこのファイルから抽出しました。
"hdx=" は "x" が "a"から "h" である場合に受け付けられます(例: "hdc")。
"idex=" は "x" が "0" から "3" である場合に受け付けられます(例: "ide1")。
"hdx=noprobe" : ドライブは存在するかもしれないが、検出しない。
"hdx=none" : ドライブは<em/存在しない/。CMOS を無視し、検出もしない。
"hdx=nowerr" : このドライブの WRERR_STAT ビットを無視する。
"hdx=cdrom" : ドライブは存在し、これは CDROM ドライブである。
"hdx=cyl,head,sect" : ディスクドライブは存在し、指定するジオメトリを持っている。
"hdx=autotune" : ドライバはこのドライブでそれが可能であれば、
一番速い PIO モードを使用するようインターフェース速度を調整する。
これはすべてのチップセットで対応しているわけではなく、
古い/変な仕様の IDE ドライブではよく問題を起こす。
"idex=noprobe" : このインターフェースにアクセス/使用しないようにする。
"idex=base" : インターフェースを指定されたアドレスで検出する。
ここで、"base" は普通 0x1f0 か 0x170 で、
"ctl" は "base"+0x206 であると仮定される。
"idex=base,ctl" : base と ctl の両者を指定する。
"idex=base,ctl,irq" : base 値, ctl 値、割り込み番号を指定する。
"idex=autotune" : ドライバはこのドライブでそれが可能であれば、
一番速い PIO モードを使用するようインターフェース速度を調整する。
これはすべてのチップセットで対応しているわけではなく、
古い/変な仕様の IDE ドライブではよく問題を起こす。
"idex=noautotune" : ドライバはインターフェース速度を調整しない。
これはほとんどのチップセットのデフォルト動作であるが、cm640 は例外
である。
"idex=serialize" : idex と idey(y≠1)で動作が重ならないようにする。
以下は、ide0 にのみ適用されます。また、デフォルトの base、ctl ポートを変更してはいけません。
"ide0=dtc2278" : DTC2278 インタフェースを検出・サポートする。
"ide0=ht6560b" : HT6560B インタフェースを検出・サポートする。
"ide0=cmd640_vlb" : CMD640 チップを使用した VLB カードには<em/*必須*/
(PCI では自動検出されるので不要)
"ide0=qd6580" : qb6580 インタフェースを検出・サポートする。
"ide0=ali14xx" : ali14xx チップセット(ALI M1439/M1445)を検出・サポートする。
"ide0=umc8672" : umc8672 チップセットを検出・サポートする。
これら以外は全て、"BAD OPTION" メッセージを表示して排除します。
標準ディスクドライバは IDE ドライバ同様にディスクジオメトリ 引数を受け付けます。しかし、これは 3 つの値(C/H/S)を期待することに注意 してください。3 より多かったり少なかったりすると黙って無視します。また、 引数としては `hd=' のみが受け付けられ、`hda=' や `hdb=' は無視されます。 形式は以下の通りです:
hd=cyls,heads,sects
ディスクが 2 台ある場合、上の形式で 2台目のジオメトリを繰り返し記述し ます。
125kB/s といった笑ってしまうような速度しか出ない古い 8 ビットカードを 未だ使っている不運な人には、以下の話は朗報です。 これらのカード用の検出コードは、BIOS がインストールされているかを調べ、 インストールされていなければカードを検出しません。 また、BIOS のシグネチャ文字列を認識できない場合もカードを検出しません。 これらの場合、起動時引数を以下の形式で与える必要があります:
xd=type,irq,iobase,dma_chan
type の値はカードの製造者を示します。この値は以下のいずれかです:
0=一般; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI。
一つの製造者に複数の異なるタイプがある場合の違いは、検出に使われる
BIOS 文字列です。タイプが与えられなければこれは使われません。
xd_setup() 関数は値の検証を行わず、4 つの値が全て与えられたものと
仮定します。決してこの予測を裏切らないでください。WD1002 コントローラ
で BIOS を無効化/削除している場合の使用例を挙げます。引数には
XT の「デフォルト」値を使っています。
xd=2,5,0x320,3