The Linux Ultra-DMA Mini-Howto Brion Vibber, brion@pobox.com v1.45, 6 July 1998 中野 正剛 訳, sx3m-nkn@asahi-net.or.jp v1.45J, 12 July 1998 この文書では、Ultra-ATA, Ultra33 とも呼ばれる Ultra-DMA 対応のハード ディスクドライブおよびコントローラを Linux 上で使うための方法を説明し ています。この mini-HOWTO の最新版は、以下の場所から HTML フォーマット のものを入手することができます。 http://pobox.com/~brion/linux/Ultra- DMA.html ______________________________________________________________________ 目次 1. まえがき 1.1 免責事項 1.2 クレジット 1.3 文書の履歴 1.4 著作権について 2. Ultra-DMA って何? なぜそんなものを使うの? 2.1 IDE と EIDE、そして ATAPI 2.2 バスマスタ DMA 2.3 Ultra-DMA、またの名を Ultra-ATA、またの名を Ultra33、 またの名を... 3. UDMA ハードディスクを EIDE コントローラと組み合わせて使用する 4. ハードディスクを UDMA コントローラと組み合わせて使用する 5. Promise Ultra33 IDE 5.1 Promise を使って Linux をインストールする 5.2 Promise を使わずに Linux をインストールする 5.3 Promise 用のパッチを当てる 6. Intel TX オンボード UDMA コントローラ 7. VIA VP2 とそのファミリーのチップセット 8. UDMA 汎用 9. それでも動かないとき 10. このmini-HOWTOに書かれていないUDMAについての情報を持っている。 ______________________________________________________________________ 1. まえがき この文書の目的は、Ultra-ATA, Ultra33 とも呼ばれる Ultra-DMA 対応のハー ドディスクドライブおよびコントローラを Linux 上で使うための方法を説明 することです。特に意識しなくてもこれらのデバイスは動いてしまうケースも あります。しかし、その場合も少し手を加えることで、より一層性能を上げる ことが可能です。また、場合によっては、ハードディスクにアクセスできるよ うにするだけでも途方も無く長い道のりになってしまうこともあるのです。 1.1. 免責事項 この文書に書かれている情報は (私の知る限りにおいて) 正確で、きちんと動 作するはずです。しかし、綴りのまちがいもあるかも知れませんし、文書の転 送中に謎のエラーが起きてしまうかも知れません。また、あなたのシステム上 に互換性の問題がある可能性もあります。これらの理由から、ここに書かれた 方法ではうまく動作しないかもしれません。そういうわけですので、ハード ディスクをいじり始める前に、大事なデータは必ずバックアップをとっておい てください。もしまだバックアップをとる習慣がないのでしたら、これからは とるようにしましょう。あなた自身のためです。 1.2. クレジット Brion Vibber (brion@pobox.com) - この文書を書きました。 Gadi Oxman (gadio@netvision.net.il) - Promise 用 Ultra33 パッチと設定 に必要な値を読み出す方法を見つけてくれました。 John G. (prefect@ipass.net) - VIA VP2 用パッチと情報を提供してくれまし た。 Giovanni (giovanni@sudfr.com) - UDMAを有効にする VIA 関連のパッチと情 報を提供してくれました。 Martin Gaitan - Promise で ide0/ide1 に設定するやり方を教えてくれまし た。 Norman Jacobowitz - Bugged me to add info on the VP3 - VP3 の情報を付 け加えるように忠告してくれました。 Andre Balsa (andrebalsa@altern.org) - いくつかの一般的な UDMA に関する 情報と Intel TX, SiS, VP1 用の汎用の UDMA 用パッチを作成してくれまし た。 Masayoshi Nakano - 日本語に翻訳しました。 Maxime Baudin - フランス語に翻訳しました。 1.3. 文書の履歴 v1.45, 6 July 1998: 若干のアップデート。 Promise Ultra33 のための Red Hat 5.1 と 2.0.34 カーネル用パッチに関する情報の追加。 v1.41, 3 May 1998: タイプミスの修正、翻訳者をクレジットに追加。 v1.4, 28 April 1998: UDMA用汎用パッチ、その他一般的な情報、著作権につ いての章を追加。 v1.3, 5 March 1998: VIA VP3 の情報を追加、パッチの当て方の説明を改善、 Promise 用パッチの場所を最新のものに変更。 v1.2, 27 January 1998: Promise に関する情報の追加。 v1.1, 21 January 1998: VIA チップセットに関する新しい情報の追加、 Promise Ultra 33 を使わないインストール方法を追加、バスマスタと UDMA 転送モードを有効にするための情報の追加。 v1.0, 19 January 1998: SGML フォーマットで仕上げた最初のバージョン。 1.4. 著作権について (訳注: この章は原文を併記します。内容については原文が優先されます) This document may be freely copied and distributed for informational purposes. It may not be modified, except for reformatting, without the permission of the author. If you wish to translate this document into another language you may do so, however you should contact the author first so that updated versions of this document can be sent out to translators as well as directly to the Linux Documentation Project. 情報を提供するという目的で使用される限り、この文書を自由に複製し、配布 して頂いてかまいません。フォーマットを変換することも問題ありませんが、 著者の承諾無しに内容を書き換えることはしないでください。もし他の言語に 翻訳したいということであればしていただいてかまいません。ただし、その際 は前もって著者に連絡をしてください。そうしていただければ、今後、この文 書をアップデートした際に、 Linux Documentation Project に送るのと一緒 に訳者の方にもお送りすることもできるようになりますので。 2. Ultra-DMA って何? なぜそんなものを使うの? ここでは IDE 関連の技術について簡単に説明します。 2.1. IDE と EIDE、そして ATAPI これらはドライブに関する古い技術です。現在、店で売っていたり実際に使わ れていたりするドライブのうち、SCSI でないもののほとんどが EIDE です。 その中でも、現在入手できる大容量ドライブの多くは UDMA (Ultra-DMA) をサ ポートしています。 2.2. バスマスタ DMA バスマスタ DMA は、ハードディスクの転送速度を上げるための技術です。こ の機能を使うためには、マザーボード、BIOS そしてドライブがサポートして いなくてはなりません。 この技術についてもっとお知りになりたい方は、下記のページを参照してくだ さい。 http://developer.intel.com/design/pcisets/busmastr/FAQs.htm 2.3. Ultra-DMA、またの名を Ultra-ATA、またの名を Ultra33、 またの名 を... Ultra-DMA はいろいろな呼び方で呼ばれますが、ここでは単に、UDMA と呼ぶ ことにします。 UDMA は、最大 33.3 MB/秒 (EIDE の 2倍) というこれまで以上の転送速度を 持ちながら、 SCSI に比べてはるかに低価格が実現できるという先進的な技術 です。最近のコンピュータには、UDMA 対応のドライブとコントローラが搭載 されていますし、UDMA をサポートしていない既存のシステムでも、 (例えば Promise Ultra33 のような) UDMA コントローラカードを増設することで、ス ピードアップをはかることが可能です。こういったカードの増設は UDMA をサ ポートしない古いドライブのパフォーマンスの向上にも有効です。 UDMA の概略については、下記の場所に非常に良い情報があります。 http://www.quantum.com/src/whitepapers/ultraata/ ここで注意しないといけないのは、UDMA は通常の単なる DMA と比べてケーブ ルの長さ制限が厳しいということです。できるだけケーブルの全長は 30cm 以 下になるようにしてください。 3. UDMA ハードディスクを EIDE コントローラと組み合わせて使用する これは簡単です。全ての UDMA ドライブは EIDE と完全に互換性があるので、 EIDE コントローラに接続した場合は、従来のタイプのドライブと同じように 動作します。 Linux からも何の問題もなく認識され、そのまま使用すること ができます。しかし、この場合の転送速度の最大値は、EIDE の限界である 16.7 MB/秒に制限されてしまいます。 4. ハードディスクを UDMA コントローラと組み合わせて使用する この組み合わせについては、うれしい情報とうれしくない情報があります。う れしい情報とは、UDMA コントローラには UDMA 対応ドライブだけでなく従来 の EIDE ドライブも接続することができ、さらには EIDE コントローラに接続 したときよりもずっと大きな転送速度を出せる可能性があるということです。 うれしくない情報とは、現行の安定版の Linux カーネルでは (少なくとも 2.0.34 では) UDMA のサポートは十分とは言えず、PCI UDMA カードについて は全くサポートされていません。より良い UDMA サポートの機能を得たいのな ら開発版のカーネル (現在は 2.2.108) を使用するか、次にリリースされる安 定版の 2.0.35 を待たなくてはなりません。しかし、この点については現行の カーネル用の UDMA サポート用パッチがいくつも公開されています。 また、マザーボードに組み込まれるよりアダプターカードに載っていることの ほうが多いような、ある種の UDMA コントローラについては、使用するために パッチを当てるか多少の技を使うかしなければなりません。 だからこそこの文書が存在しているのです。パッチの入手方法やちょっとした テクニックを説明するために。 5. Promise Ultra33 IDE これは 2つの UDMA チャネルを持っていて、4台までのドライブをサポートす る PCI カードです。仕様、価格等の情報は以下の場所で調べてください。 http://www.promise.com このカードは Gateway 2000 の初期の Pentium II システムに搭載されていま した。最近のモデルはどうだか分かりません。 最近の開発版のカーネル (現在は 2.1.108) には PCI IDE コントローラをサ ポートするための汎用のコードが入っていて、Promise Ultra33 は自動的に認 識されるはずです。しかし、安定版のカーネル (現在は 2.0.34) では、パッ チが必要になります。そのため、Linux のインストールをするのが少し難しく なっています。 5.1. Promise を使って Linux をインストールする Promise コントローラ用のパッチは存在します。しかし、あなたが Linux を インストールしたことがないのであれば、パッチを当ててカーネルを再構築す るのは「すごく簡単」とは言えません。この章ではインストールの手順を紹介 します。なお、以下に示した、インターフェースの設定を読み出す方法を教え てくれた Gadi Oxman に感謝します。 インストールディスクを使用してコンソールが使えるようにできるなら、 cat /proc/pci とタイプすることで Promise のインターフェースの設定を 表示させることができます。以下に例を示します。 RAID bus controller: Promise Technology Unknown device (rev 1). Vendor id=105a. Device id=4d33. Medium devsel. IRQ 12. Master Capable. Latency=32. I/O at 0xe000. (a) I/O at 0xd804. (b) I/O at 0xd400. (c) I/O at 0xd004. (d) I/O at 0xc800. (e) この読み出した値を使って、コマンドラインのパラメータとして ide2=a,b+2 ide3=c,d+2 をカーネルに渡してやればよいのです。 (訳注: a,b,c,d には、それぞれのI/Oポートアドレスを代入してください。上 の例であれば、(b) = 0xd804 なので、b+2 の部分には 0xd804+2 つまり 0xd806 が入ります) 注意しないといけないのは、上に出てきた数字は必ずしもあなたのマシンでの ものとは一致しないということです。 (訳注: BIOS やハードウェアの構成で変わります) たとえば、上の例では、具体的にセットするべきパラメータは ide2=0xe000,0xd806 ide3=0xd400,0xd006になります。もしかすると IRQの値 を入れないとうまく動かないかもしれません。上の例では、IRQ 情報を入れる と、 ide2=0xe000,0xd806,12 ide3=0xd400,0xd006,12のようになります。 1番 目のチャネルしか使用しないのなら (たとえば、Promise にドライブを 1つし か接続しないとか、2つのドライブをマスタ/スレーブで接続する場合)、 ide3 のパラメータは必ずしも必要ではありません。 Red Hat 5.1 の場合: まず、ブートディスク (boot diskette) を使って立ち 上げ、プロンプトで Enter キーを押します。カーネルがロードされ、続いて 言語やキーボードのタイプ、インストール方法について質問が現われますので それらに答えてください。やがてどこからインストールするのか (source media) を聞いてくる画面が表示されます。これはあなたの環境に合ったもの であればどれを選んでもかまいません。次にインストール先の選択 (Select Installation Path) の画面が現れますので、ここで Alt-F2 を押してコマン ドプロンプトを表示させます。 cat /proc/pci を実行し、表示された上記の 各数字を書きとめ、再びブートディスクから起動します。今度は最初のプロン プトの画面で linux ide2= (ここに上記の数字が入ります。カッコは入れない で) ide3=(ここも同じく) と入力してください。ここまでで、後は問題なくハー ドディスクへのインストールができるはずです。 (訳注: パラメータ部分の「カッコ」は入力しないように :-)。また、それぞ れの内容はコマンドパラメータのときと同じものです。また、ide3 以降のパ ラメータは、前にも書かれているように、1チャネルしか使用しないのであれ ば省略可能と思われます(未確認ですが)) ただし LILO のインストールはこれだけではうまく行きません。 LILO とカー ネルにパッチを当てるまでは(詳細は後述)、ブートフロッピーを用いて先ほど と同じパラメータをブートのたびに手で入力して立ち上げてください。 Red Hat 5.0 での具体的な手順は以下のようになります。まず、インストール 用ブートフロッピー (Installation boot floppy) を使って立ち上げ、ブート プロンプトで rescue と入力します。いくつかのファイルをロードした後、サ プルメンタルディスク (supplemental disk) を入れるようとの指示やらモニ ターやキーボードについての質問に答えていくと、最後にコマンドプロンプト の画面になります。 cat /proc/pci と入力し、先に述べた、設定に必要な数 字を書きとめます。それからマシンをリブートし、再びブートフロッピーから 立ち上げます。今度は、ブートプロンプトで linux ide2=(先に示したパラ メータと同じ数字) ide3=(ここにも) と入力します。 (訳注: RedHat 5.1 の場合の訳注を参照してください。) これで LILO 以外は問題無くハードディスクにインストールできるようになり ます。後述のように LILO とカーネルにパッチを当てるまでは、インストール に使用したブートフロッピーを使用してブートのたびに先ほどと同じパラメー タを入力し、立ち上げなければなりません。 Slackware 3.4 での具体的な手順もほぼ同様です。まず、あなたのシステムに あったブートディスクを使い、ブートプロンプトで何も入力せずに Enter だ け押します。カーネルがロードされ、ルートディスクを入れるようにとの指示 が現れます。ルートディスクを入れ、ロードされるのを待ちます。root でロ グインし、 cat /proc/pci と入力し、先に示した数字を書きとめます。それ からマシンをリブートし、再度ブートフロッピーから立ち上げます。今度は、 ブートプロンプトで ramdisk ide2=(先に示したパラメータと同じ数字) ide3=(ここにも) と入力します。 (訳注: カッコそのものは入力しないように :-)。それぞれの内容はコマンド パラメータと同じものです。また、ide3 以降のパラメータは、前にも書かれ ているように、1チャネルしか使用しないのであれば省略可能と思われます ( 未確認ですが)) これで LILO 以外は問題無くハードディスクにインストールできるようになり ます。後述のように LILO とカーネルにパッチを当てるまでは、起動用にブー トフロッピーを作成してブートのたびに先ほどと同じパラメータを入力して立 ち上げてやる必要があります。 その他の Linux ディストリビューションの場合は、それぞれに応じて若干変 わってくるものと思います。ただ、その場合でも基本的なやり方は先に述べた ものと変わらないはずです。 重要: パッチ (これについては ``Promise 用のパッチを当てる'' の章で述べ ます) が入っていない状態では、カーネルがハードディスクにアクセスするた めには、先に示したようなブートパラメータが必要です。そのため、LILO を 設定する際にも (ハードディスクにインストールする場合でもフロッピーの場 合でも) インストール時と全く同じパラメータを指定するということがとても 重要になります。きちんと設定されていないとシステムはブートしません。毎 回ブート時に LILO にパラメータを入力して (たとえば、ブートする度に Shift キーを押して linux ide2=..... と入力して) 立ち上げることは可能で す。しかし、そのためには必要なパラメータを覚えていなければいけません。 おすすめなのは、できるだけ早くカーネルにパッチを当ててしまうということ です。パッチ入りのカーネルをブートできるようにしてしまえば、もうブート パラメータなど気にしなくてもよくなるのです。それに、私の知る限りで は、(make zdisk で作ったような) 純粋なカーネルブートフロッピーにブート パラメータを渡す手段はありません。ブートパラメータを渡すためには、LILO やその他のローダ (例えば loadlin) を使わなければなりません。 パッチの当たっていないカーネルやインストールプログラムでは、正常にドラ イブを検出しているにもかかわらず ide2, ide3 をうまく扱えない場合があり ます。この問題は、Slackware 3.4, RedHat 5.0 で発生することが確認されて います。見たところ RedHat 5.1 では改善されているようです。先に挙げた方 法で Linux がうまくインストールできない場合は、 ide2, ide3 の代わり に、ide0, ide1 を使ってみてください。 (このテクニックを教えてくれた Martin Gaitan に感謝します)。この方法の原理は、カーネルに Promise Ultra33 のことをオンボードコントローラだと思わせてしまうというもので す。(すでにオンボードコントローラがあった場合はそれらはカーネルからは 見えなくなります)。この方法を使うと、実際にドライブの結線を変えてし まったときと同様に次章で紹介する手順でインストールすることができます。 注意しないといけないのは、インストールのための IDE CD-ROM をオンボード コントローラに接続しているのなら、その CD-ROM のつながっているコント ローラを置き換えないようにしなければいけないということです。そうしない と インストールができなくなってしまいます。CD が hda もしくは hdb であ るなら、ハードディスクには ide1 を使うようにし、CD が hdc もしくは hdd であるなら、ハードディスクには ide0 を使うようにしてください。 5.2. Promise を使わずに Linux をインストールする ソフトウェア的な細工をする方法ができないのなら、少し野蛮な手段をとらな くてはいけません。ここで紹介する方法がそれで、このやり方でもうまくいく はずです。ただし、このやり方では、コンピュータの箱を開けて中をいじらな ければなりません。注意: もし IDE ドライブをつないだり外したりするのに あまり詳しくなければ、コンピュータやハードディスク、Promise Ultra33 に ついてきたマニュアルを作業の前に読んでおいてください。もしどこかで失敗 して、そこでどうすればいいのか分からなくなってしまったら、申し訳ないで すが、そこでお手上げになってしまうかもしれません。 やるべきことはとても単純です。最近のマザーボードにはたいてい EIDE コン トローラが組み込まれています。ハードディスクを Ultra33 から外し、マ ザーボード上のコントローラのコネクタにつなぎかえます。 CD-ROM やテープ ドライブ、Zip ドライブがすでにマザーボード上のコントローラに接続されて いたのなら、未使用の側のチャネル(例えばプライマリの代わりにセカンダリ) に接続するか、とりあえず必要でないデバイス(たとえば Zip やテープドライ ブ)は、一時的に外してしまうというのが簡単でよいでしょう。そして Linux をインストールします。それから Promise 用の UDMA パッチをダウンロード し、カーネルにこのパッチを当てます。(次の章を参照してください。) これでドライブをPromiseにつなぎ直す準備が *ほぼ* できました。安全のた めに、カーネルイメージ・ブートフロッピーを作成します (cd /usr/src/linux ; make zdisk と入力します)。このフロッピーは、LILO が動 かなかったときにシステムをブートさせるのに使用します。安全のために、フ ロッピーは 2 つ作って、 1 つはとっておきましょう。 さて、ここで少し頭を使いましょう。たとえば、ハードディスクが 1 台きり しかなくて、それを Promise に接続する場合を考えます。多くの場合、この ハードディスクは /dev/hde になります。 (プライマリのオンボード (マザーボード上の) コントローラが hda, hdb に、セカンダリのオンボードコントローラが hdc, hdd になります)ハード ディスクの台数を増やしたい場合は、Promiseの最初のチャネルが /dev/hdf、2 番目のチャネルのマスタが /dev/hdg、2 番目のチャネルのス レーブが /dev/hdh になります。 (訳注: ATA (IDE, EIDE..) の規格では、コントローラ 1 チャネルにつき 2 台までのドライブが接続できます (それぞれマスタ、スレーブと呼ばれま す)。最近のマザーボードの多くは 2 チャネルのコントローラをオンボードで 持っているので、上に書かれているようになります。) /etc/fstab を編集してハードディスクのパーティションに関する全ての記述 を書き換えます。今は、インストールのため一時的にオンボードに接続されて いたときのデバイスに設定されている (/dev/hda, hdb 等々) ので、これを Promise に接続し直した (戻した) ときの設定 (/dev/hde, hdf 等々) に変更 します。また、インストール時に接続を変えたデバイス (例えば CD-ROM や Zip 等) があって、それらをオンボードの元の位置に接続しなおすのであれ ば、ハードディスクと同様に設定を変更します。 次に例を示します。 CD-ROM が元々プライマリチャネルのマスタ (/dev/hda) に設定されていたとします。この場合、インストールのためにハードディスク をプライマリマスタにするためには、この CD-ROM をスレーブ (/dev/hdb) ま たはセカンダリチャネル (のマスタ) (/dev/hdc) にしなければなりません。 そして、インストールが終ったら、この CD-ROM の接続を元に戻すのに伴って fstab 内の CD-ROM のデバイスの記述を /dev/hda に変更します。 LILOをお使いであれば、LILOを設定し直してドライブ指定を変更後のものにし てやらなければいけません。 (LILOの設定についてはこの文書では触れませ ん。具体的な手順が知りたい方は、 LILO mini-HOWTO を参照してください) (訳注: 日本語訳がJFのここ にあります) これを忘れると、ハードディスクからブートできなくなってしまい、先ほど 作っておいたブートフロッピーを使わざるを得なくなってしまいます。この 際、新しいパーティションからブートできるように設定してしましょう。これ には rdev コマンドを使用します。フロッピーをドライブに入れ、 rdev /dev/fd0 /dev/hde1 と入力します。もちろん、これはルートパーティション が最初の UDMA ドライブの最初のパーティションにある場合の例です。もしこ れと条件が違う場合 (たとえば、私の場合は /dev/hde7 です) は、それぞれ の場合に応じた正しいパーティション番号を使わなくてはなりません。 リブートします。これであとはうまく動作するはずです。 5.3. Promise 用のパッチを当てる Promise Ultra33 のためのカーネルパッチが存在します。これは、Gadi Oxman (gadio@netvision.net.il) が作成したものです。 2.0.34 カーネル用のパッチはここ で入手できます。このパッ チは 2.0.35 (この文書を書いている時点でまだプレリリース版 (最終でな い、評価用)ですが) もしくはそれ以降のカーネルでは必要ありません。もし 古いカーネルをまだお使いでしたらアップグレードすることをお勧めします。 古いカーネルにはセキュリティー上の穴などいくつものバグを持っています。 (訳注: 新しいカーネルは「古いカーネルには無かった」バグが新たに入り込 んでいる可能性があります。アップグレードする前には十分に情報収集をし て、自分の責任で行いましょう) RedHat ユーザーは、次のことに注意してください。 RedHat 5.1 のパッケー ジに含まれている 2.0.34 カーネルはプレリリース版です。アップグレードす ることをお勧めします。 パッチを当てるために、手の加わっていないカーネルを入手したいのであれ ば、 ftp.kernel.org から入手してください。 カーネルへのパッチの当て方、再構築の手順については、 Kernel HOWTO. を 参照してください。 (訳注: JF に日本語訳があります。) 一度パッチを当ててしまえば、以下に書いたようにすれば DMA 転送が使える ようになります。 カーネルパッチの優位な点のひとつは、Triton (*) ドライバをカーネルに組 み込みさえすれば、バスマスタ DMA 転送 ("hdparm -d1 /dev/hdx") が使用 できるようになるということです。 (訳注: Intel Triton chipset のこと。カーネルを再構築する際のオプション で選択できるようになっています。カーネルの再構築に関する詳細は、JF に も日本語訳のある、 Kernel-HOWTO (もしくはミラー サイト) を参照してください) 2.0.34 以降のカーネルでは自動的 UDMA が使えるようになるはずですが、う まく動作しないこともあるようです。なお、hdparm -Tt /dev/hdx でハード ディスクの転送速度をテストすることができます。通常の UDMA ドライブでは 9.5MB/s 程度の値になります。 また、ブートに LILO を使用したいのであれば LILO にもパッチを当てなけれ ばなりません。 LILO のソースは、 ftp://sunsite.unc.edu/pub/Linux/system/boot/lilo/lilo-20.tar.gz から入 手することができます。また、LILO 用のパッチは、 http://pobox.com/~brion/linux/lilo-promise.patch から入手できます。 6. Intel TX オンボード UDMA コントローラ この情報を提供してくれた Gadiに感謝します。 Intel TX チップセット用のバスマスタ DMA は 2.0.31 以降のカーネルで サポートされています。 それより古いカーネルでは(例えば Slackware 3.4 では 2.0.30 です)、この コントローラはより低速の EIDE モードで動作しか動作しません。ただし、ど ちらの場合でもカーネルはこのコントローラを自動的に認識しますので、動作 させるうえで問題となることはありません。 TX チップセット用の UDMA フルサポートの機能は、 ``UDMA 汎用'' パッチに 含まれています。 7. VIA VP2 とそのファミリーのチップセット このコントローラもパッチの当たっていないカーネルでも自動認識され、少な くとも EIDE モードでは動作します。しかし、これらのチップセットのどれか をお使いでしたら、パッチを当ててみてください。ハードディスクのもつ性能 をより引き出すことができるようになるだけでなく、あのうっとうしい "unknown PCI device" というメッセージからも解放されるようになります。 パッチの1つは、 http://www.ipass.net/~prefect/ で入手できます。これ は、 FIC PA-2007 と PA-2011 マザーボードで採用されている、VIA VP2/97と いうチップセット用のものですが、それ以外の(VPx のファミリーの)チップ セットでも、ものによっては動作します。なお、VIA VP3 という新しいチップ セットについては、このパッチで動作したとの報告があります。選択肢が増え ましたね。 注意点は、このパッチがサポートするのはバスマスタモードのみで、全ての UDMA の機能がサポートされるわけではありません。しかしそれでも単なる EIDE モードよりは有用です。バスマスタ DMA を有効にする方法については、 パッチの置かれているサイトにある指示にしたがってください。 そして、UDMA の機能を完全にサポートした別のパッチが http://www.pyreneesweb.com/Udma/udma.html, から入手できます。このパッ チは、VIA VT82C586B 用に書かれたものですが、VP2, VX3, VPX, P6, AGP Apollo といったチップセットでも動作するはずです。インストールおよび UDMA を有効にするための手順は、上記の場所にありますのでそれに従ってく ださい。なお、あなたのマザーボードが潜在的に互換性の問題を持っているか もしれません。失っては困るデータは全てバックアップをとってから作業を行 うようにしてください。ただし、一度動いてしまえば、あとは何の問題も起き ないはずです。 VP1 チップセットについては、これらのパッチでうまく動作するかどうかは不 明です。しかし、少なくとも ``UDMA 汎用'' パッチではサポートされていま す。 8. UDMA 汎用 UDMA 汎用のパッチは、Mark Lord が作成した Triton DMA ドライバを Andre Balsa (andrebalsa@altern.org) が改造したもので、このパッチにより、以下 のチップセットで UDMA の機能を使えるようになります。 o Intel TX o SiS 5513 (これは SiS 5571, 5598 そしてたぶん 5591 チップにも組み込 まれています) o VIA VP1 (未テストですが) また、このパッチは他のチップセットをサポートするための拡張が容易なよう に設計されています。この UDMA 汎用パッチは 2.0.29 から 2.0.33 までの カーネルでうまく動作することが確認されていますが、2.0.32 より前のカー ネルでは多少設定が必要となるかもしれません。 (また、Grand Unified (大統一) UDMA Patch と呼ばれている、より多くの チップセットをサポートするパッチのベータテストが現在行われています。こ のパッチが入手できるようになるのは、おそらく近々リリースされる 2.0.35 カーネルのリリース後になるかと思います。) 現在のカーネル用の UDMA 汎用パッチは http://pobox.com/~brion/linux/udma-generic-latest.tar.gz, からダウン ロードすることができます。使用法については、同梱されている INSTALL と UDMA.txt をお読みください。 以下は作者からの注意点です。 IBM 製の UDMA ドライブと良質のマザーボードの組合せでのデータ転送速度を 測定 (hdparm -t -T として行いました) したところ、最大で約 10MB/s でした。 Intel TX チップセットは、ハードディスクのデータ用の FIFO を 1 つしか持って おらず、それを 2 つの IDE コントローラで共有するようになっています。そのた め、2 台の UDMA ドライブを使用した場合には、1 台のドライブのみを使用したと きのようなパフォーマンスの大幅な向上は望めないでしょう。 それに対し、SiS5598 は完全に独立した 2 つのコントローラを持っており、それ ぞれ専用の FIFO を備えています。そのため SiS5598 チップを使用したマザーボ ードでは、md ドライバ (*) と 2 台のドライブを使ってストライピングをするこ とで、理論的には 66MB/s のバースト転送に挑戦することもできるのです。 SiS5571 は同じアーキテクチャのコントローラだと思います。VIA チップセットに ついては、私はデータシートを持っていないので何とも申し上げられません。 (訳注: md については、JF の ROOT RAID HOWTO 等を参照してください) Mark Lord の作成した Linux IDE (U)DMA カーネルドライバは、特にセットアップ タイム (たとえばデータ転送のレイテンシ) の値が小さくなっています。 これは (Linux ニュースサーバのような) 小さなデータ転送が頻繁に起こるような 環境では効果的です。 場合によっては性能面で SCSI をも上回ることもあるでしょう。 9. それでも動かないとき もし、この文書が全く役に立たなかったら、または何かうまくいかないところ があったら、どこでつまづいているのか、使用している UDMA コントローラ ( オンボードでもアダプタカードでも) は何か、ハードディスクは本当に UDMA に対応しているのか (それともただの EIDE なのか)、どこにどういうドライ ブを接続しているのか (全てのドライブについて)、Linux のバージョン ( ディストリビューション名とカーネルのバージョンも) は何か、その他の役に 立ちそうなことを具体的に書き、 comp.os.linux.hardware に投稿してみてく ださい。すぐに役に立つ情報が得られるのではないかと思います。 10. このmini-HOWTOに書かれていないUDMAについての情報を持っている。 すばらしい! 私の知らない情報をお持ちなら、ぜひ私 (brion@pobox.com) 宛 てに送ってください。すぐにこの文書に反映させたいと思います。 (訳注: 日本語版に関してお気づきの点等ありましたら、中野 正剛 sx3m- nkn@asahi-net.or.jp までお知らせください。なお、この文書の作成に当たっ て有益なご助言をいただいた、中野 武雄 さんほか JF の皆さんに感謝いたし ます。)