前のページ 次のページ 目次

5. ハードディスク

この節では MFM/RLL、ST-506、XT および IDE ディスクドライバ に関わる起動時引数を説明します。IDE と 汎用 ST-506 HD ドライバ はどちらも "hd=" オプションを受け付けます。

5.1 IDE ディスク/CD-ROM ドライバ引数

IDE ドライバはいくつかの引数を受け付けます。これらは 新しいコントローラやいかれたコントローラに対応するための もので、ディスクのジオメトリを指定します。以下が可能な 起動時引数のまとめです。完全な説明に関しては、 linux/Documentation ディレクトリにある ide.txt を参照するよう強く 勧めます。以下の まとめはこのファイルから抽出しました。



 "hdx=" は "hdc" の様に "x" が "a"から "h" である場合に受け付けられます。
 "idex=" は"ide1" の様に "x" が "0" から "3" である場合に受け付けられます。

 "hdx=noprobe"  : ドライブは存在するかもしれないが、検出しない。
 "hdx=none"  : ドライブは存在しない。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 と idex(x≠1)で動作が重ならないようにする。

以下は、ide0 にのみ適用されます。また、無指定時の base、ctl ポートを変更してはいけません。



 "ide0=dtc2278"  : DTC2278 インターフェースに対応し、検出する。
 "ide0=ht6560b"  : HT6560B インターフェースに対応し、検出する。
 "ide0=cmd640_vlb" : CMD640 チップを使用した VLB カードには*必須*
     (自動検出するので PCI には不要)
 "ide0=qd6580"  : qb6580 インターフェースに対応し、検出する。
 "ide0=ali14xx"  : ali14xx チップセット (ALI M1439/M1445) に対応し、検出する
。
 "ide0=umc8672"  : umc8672 チップセットに対応し、検出する。


これら以外は "BAD OPTION" メッセージを表示して排除します。

5.2 標準 ST-506 ディスクドライブ引数 (`hd=')

標準ディスクドライバは IDE ドライバ同様にディスクジオメトリ 引数を受け付けます。しかし、これは 3 つの値 (C/H/S) に限られる ことに注意して下さい。これ以上であったりこれ以下であるあると、 黙って無視します。また、"hd=" のみが受け付けられ、 "hda=" や "hdb=" は無視されます。形式は以下の通りです。


 hd=cyls,heads,sects

ディスクが2機ある場合、上の形式を2機めのジオメトリ で繰り返します。

5.3 XT ディスクドライバオプション (`xd=')

125kB/s などという、わっはっはな速度しか出ないような古い 8ビット カードを未だ使っている不運な人には、以下は朗報です。 検出コードは、BIOS が導入 されているか調べ、導入されていなければカードを検出しません。 また、BIOS のシグナチャー文字列が検出されない場合も、 カードを検出しません。これらの場合、起動時引数を 以下の形式で与える必要があります。


 xd=type,irq,iobase,dma_chan

type の値は、カードの製造者を与えます。値は次の一つです。 0=generic; 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


前のページ 次のページ 目次