Daisuke Kameda
kamin****@cc*****
2003年 1月 3日 (金) 14:38:13 JST
Daisukeです。 2003年 1月 2日 木曜日 11:47、Daisuke Kameda さんは書きました: > VineのSRPMを参考にknoppixの環境でinsmod.staticを作れたので > 試してみたのですが、組み込みのinsmodと同じで、insmodが"完全"に > 終了するのを待たないようです。プロンプトが表示されてしまいます。 > また、VineやTurboやRedHatのinsmod.staticでも同じ挙動となります。 どうやら、正しくはusb-uhci.oを読み込んでからすぐにusb-storage.o をinsmodすると、直ちに次の処理に進んでしまうようです。 先ほどmongoose(Turboのインストーラ)のソースを読んでいて気づいた のですが、引数に合わせてsleepするようなC言語の単純なプログラムを 作ってstaticでコンパイルしてしまえばいいですね。 #頭悪いぞ>自分 添付したusb-sleep.cを、dietlibcを使ってコンパイルするために、 "diet gcc -static -Os -o sleep usb_sleep.c" などとすると、かなり小さなファイルになるので、それをstaticの 下に置いてください。 また、"knoppix usb"でusbのprobeを行うようにしているのですが、 usb-sleep.cのコードを読んでいただければ分かりますが、引数を とる場合には、その時間(秒)だけsleepする(デフォルトは5秒)ような プログラムになっていますから、"knoppix usb=[秒数]"で時間を 指定可能にするために "linuxrc-miniroot-usb-20030102.diff" のような変更を加えることでUSBドライブからブート可能になりました。 ただ、実際には、 USB_SLEEP_TIME="$(expr "$CMDLINE" : ".*usb=\([1-9][0-9]*\)")" という処理でexprが無いと言われてしまうので、 linuxrc-miniroot-usb-20030103.diff のような変更に留めておいた方がいいかもしれません。 代替の手段があれば、そちらの方が良いと思います。 #dietlibcを使ったexprのstatic版が上手く作れないので・・・。 また、上記のようなusb対応をする場合には、minirootのmodules の下にusbという名前のディレクトリを作って、ここにusbcore.o, usb-uhci.o, usb-ohci.o, usb-storage.oを置いてください。 そして、knx-hdinstall-jpの740行目あたりの "cp -a $TL1/modules $TL2"の処理の後に、 "rm -rf $TL2/usb"のような、余計なusbモジュールを削除する 処理を加えた方がいいでしょう。 それでは後はお任せいたします。 -- Daisuke Kameda <kamin****@cc*****> -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: usb_sleep.c 型: text/x-csrc サイズ: 158 バイト 説明: 無し다운로드 -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: linuxrc-miniroot-usb-20030102.diff 型: text/x-diff サイズ: 2345 バイト 説明: 無し URL: http://lists.sourceforge.jp/mailman/archives/ya-knoppix-jp-devel/attachments/20030103/36ac40f4/attachment.diff -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: linuxrc-miniroot-usb-20030103.diff 型: text/x-diff サイズ: 2263 バイト 説明: 無し URL: http://lists.sourceforge.jp/mailman/archives/ya-knoppix-jp-devel/attachments/20030103/36ac40f4/attachment-0001.diff