この節では標準の 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