minimize

事業拡大のため、新しい仲間を募集しています。
→詳しくはこちら

とりあえず何か色々。まとまったら別ページに移すかもしれません。
新しく書いたものが上です。

カーネル2.6系でDMAが無効になる問題

LFSを動かし始めてから気付いてはいた。
なんかディスクアクセスが異常に遅い。
hdparmで調べてみる。

# hdparm /dev/hda

すると、DMAがOFFになっている。

# hdparm -d1 /dev/hda

としても、無効な操作と言われてエラーになってしまう。
どうやらカーネル2.6で起こる現象らしい。
色々試してみたところ、CONFIG_IDE_GENERIC オプションが原因だとわかる。
これをy(ビルトイン)にしていると、一部のマザーボードで
DMAが無効になる。

解決方法としては、まずこのオプションをm(モジュール化)にする。
しかしそのままでは Kernel Panic で起動できなくなるので
自分のマザーボードに対応したオプションをyにする必要がある。

参考ページ : http://d.hatena.ne.jp/amt/200509

うちのマシンはST62Kという機種で、Chipsetは「ATI IXP150」なので
CONFIG_BLK_DEV_ATIIXP オプションをyにする。
これで無事成功。
新カーネルで確認すると、

#hdparm /dev/hda

DMAが有効になっている。これでディスクアクセスも速くなった。
めでたしめでたし。
…と簡単に書いてはいるが、実はこれを解決するのに丸1日程度掛かっているのだ(泣)。