Vitruvian Penguin
knoppix

[knoppix:1545] USB 2.0安定化のためにカーネルをバージョンアップする方法教えてください。

Date: Mon, 26 May 2003 01:00:46 +0900
X-mailer: Microsoft Outlook Express 6.00.2800.1158
こんばんは。宮脇です。ご無沙汰しております。

最近、KNOPPIXでUSB 2.0を使いたいと考え、いろいろ調べています。
USB 2.0で2台のHDDをつないで、HDD間のコピー(dd)やコンペア(cmp)したい
のです。

USB 2.0インタフェースにはAdaptecのインタフェースカードAUA-1420Aを使用し
ています。

HDDを1台USBでつなぐだけなら、「modprobe ehci-hcd」を実行するだけでよい
ようです。
実行後ただちにUSB-HDDのアクセスが高速化されます。
リブートすると、modprobe しても、しばしば、USB 2.0を認識してくれない(USB
1.1になる)という問題がありますが、もういちど電源切断&再起動すれば、
たいてい、USB 2.0を認識してくれるので、当面は運用でなんとかできます。

問題は2台のHDD間で比較すると、直ちにシステムがハングアップすることです。

調べてみると、kernel-2.4.21-pre7で多くのバグ対策とサポート拡大を行っている
とのこと。そこで、最新版の2.4.21-rc3に乗り換えたいのですが、どうもうまくいき
ません。
下記に私が行った再構築方法を示しますので、カーネルバージョンアップのノウ
ハウをお持ちの方、抜けや間違いなどご指摘いただけると幸いです。

よろしくお願いいたします。


                   記

1.再構築手順

1.1 カーネルのコンパイル
(1)ソースディレクトリ(/usr/src/linux-2.4.21-rc3)を作成し、そこに、
2.4.20のフルバージョンのソースをダウンロードして解凍する。(KNOPPIXの
カーネルのソース2.4.20-xfsもつかって見ましたが、次のpatchでエラーに
なるのであきらめました)
(2)同じディレクトリに2.4.21-rc3のパッチファイルをダウンロードし、(1)の
ソースに対して適用する。
(3)cp  /KNOPPIX/usr/src/linux/.config  /usr/src/linux-2.4.21-rc3/.
(4)cd /usr/src;  ln -sfn linux-2.4.21-rc3 linux;  make
(5)追加オプションの確認メッセージに対しては、「m」が応答できる場合は
「m」、それ以外は「y」を応答する。
(6)make処理が長時間実行されますが、最終的には、めでたく、3つの.deb
ファイル(バイナリ、ソース、ドキュメント)が出来上がります。(途中、多数の
警告エラーが表示されていましたが)
(7)KPackageでkernel-image-2.4.21-rc3・・・.debをインストールする。

1.2 cloop.oのコンパイル
(1)KNOPPIX本家からcloop_0.68-3をダウンロードし、makeする。コマンドは
以下のとおり。
make KERNEL_DIR=/usr/src/linux-2.4.21-rc3
mkdir  -p  /lib/modules/2.4.21-rc3/misc  &&  cp  cloop.o
/lib/modules/2.4.21-rc3/misc/
depmod  -a  -C  /etc/modules.conf  -F /boot/System.map-2.4.21-rc3
2.4.21-rc3
#mknod /dev/cloop b 240 0

1.3 minirootのカーネルモジュール差し替え
miniroot.gzを解凍し、/mnt/testにループバックマウントしたのち、modules
ディレクトリ内のcloop.oとscsi/*.oを、1.1と1.2でコンパイルして得られた
モジュールに差し替える。(ただし、同じ名前のモジュールを差し替える
だけで、モジュールの追加・削除はしない。)

1.4 grubのmenu.lstを編集
更新された新しいカーネルと、新しいminiroot.gzを参照するように修正します。


2.問題状況
(1)以上の設定後にリブートすると、HDDパーティションの自動認識処理後
(linuxrcの実行開始前)にinit プロセスが見つからない旨のエラーメッセージ
を表示してシステムが停止する。
(2)カーネルオプションに「init=/linuxrc」を指定すると、linuxrcは実行開始さ
れますが、FAT32パーティション(/dev/hda2)を見つけたところ(当該パーティ
ションへのmountit()手続きを呼び出したところ)でハングアップします。
(linuxrcにset +xオプションを』指定して調査)。


3.再構築に使用した環境。(参考)
Windowsをメインに使っているノートマシンで、30GBのドライブの95%をWindows
XPがNTFSで占有しています。再構築にUSBは使用しない方針です。(1.1は遅く、
2.0は不安定なため)

そこで、FAT32パーティションにCDROMの内容をコピーし、grubをMBRにインス
トールしてHDブートする方法でHDブート環境を構築しました。(knx-hdinstallは
行っていません。)

/var/lib/dpkgと/usr/src、/usr/share/docは実体を/home/knoppix以下に作成し
mkpersistenthomeで保存しています。容量は640MB。
/bootと/lib/modulesの実体は/cdrom以下に作成しました。/cdromにはFAT32
パーティション(/dev/hda2)をRWモードでマウントしています。
/etcは/ramdiskに移動しています。

以上
<Prev in Thread] Current Thread [Next in Thread>