Turbo Linux Workstation 日本語版 6.0のkernelの再構築

起動方法はloadlin.exe zImage
 製品版にはSystem Commander Liteが付いているのでこれで起動時にOSを切りかえることができるようです。紙のドキュメントがないので見てません。それに面倒なので使ってません。私はloadlinを使って起動させるようにします。このとき、liloは消しません。緊急用の起動ディスクを作っていないため(いつもFDDがあるとは限らない)予備としておいて置きます。再構築にしくったら起動しなくなります。そのため、予備は用意しておきましょう。

 ここではWindowsのVFAT領域は/winにmountされており/win/linuxというディレクトリにloadlin.exeをコピーしておきます。
 
機器の細かい確認
 自分のマシンの機器の設定を確認しておきます。幸いにして私のマシンはWindows98が残っているのでコントロールパネル->システム->デバイスマネージャでそれぞれを調べておきます。Linuxは基本的に自動で調べて設定はしてくれません。
 
USBのマウスを使いたい
 USBマウスを使わない人はここの項目は飛ばしてください。

 ここで私が使っているUSBマウスは1999年春に買った(1000円で安い!!ので買った、今ではこんなのざらなんだけど)、WINIC、MODEL NO: FDM-A50というものです。2つボタンのマウスです。安いだけにマウスのボールが妙に軽く操作性がいまいちです。
    USBチップセットの確認
 私のものは、
NEC PCI to USB Open Host Controller
USBルートハブ
となっていました。もしかしたらドライバの種類かもしれないのであんまり気にしない。
    /usr/src/linux/arch/i386/config.inの編集
 上記のファイルを編集します。kenerl2.2.13-33(今度2.2.15に上げようかな)176行目

# source drivers/usb/Config.in

#を削除します。これで編集終わり。kernelのコンフィグの際USBを組み込むメニューが出てくるようになります。
 
kernelの再構築
 X Window Systemを起動した状態で説明します。ktermで/usr/src/linux に移動します。ここで

make xconfig

と打つと新たなwindowが現れます。使わないものはn、たまに使うものはm、常時使うものはy、を選択します。私も全部は理解していないので、usb、soundのみを解説します。たとえばIDEコントローラの設定をしくると起動しなくなるので慎重に設定しよう(これ私がはまった。ATAを選択しなかったらHDDが見えなくなって起動しなくなった)。慣れた(理解している)人で無い限り1回で設定をしてしまおうと思わないほうが良いです。
    USBの設定
 メニュー真中一番下 USB drivers を選択します。ここで笑えるのが not for the faint of heart と書いてある。ここでの設定は

< m > Support for USB (EXPERIMENTAL!)
< y > OHCI (compaq and some others) support?
< y > OHCI-HCD (other OHCI opt. Virt. Root Hub) support?
< y > OHCI-HCD Virtual Root Hub
< y > USB mouse support

としました。USBはいつ接続するかわからないのでモジュールにしました。また、OHCIを選択したのはintelのUHCIという文字を見つけられないから(機器の確認で)消去法でまぁこっちだろうと選択しました。それにSS6000で設定しているのを前に他のホームページで見たときはOHCIだったのでこっちとしました。また、Windows95を始めてこの間インストールしてシステムをみたらOHCIになってました。

 モジュールでなく組み込んでしまうとUSBマウスを起動時に接続していないとkernel panicと2回に1回なってしまいます。注意。
    サウンドの設定
 alsaを使えば再構築をしなくてもすむかもしれないが使い方が分からない。面倒なのでついでにここで設定してしまうことにする。メニュー左のまんなからへん sound を設定する。私のはYAMAHAのチップを使っている。

< y > Sound card support
< y > OSS sound modules
< y > Generic OPL2/OPL3 FM synthesizer support
< y > Support for Yamaha OPL3-SA2,SA3,and SAx based PnP
< -1 > Chip set
< 530 > OPL3SA2 audio I/O base
< 5 > OPL3SA2 audio IRQ
< 1 > OPL3SA2 audio DMA 0,1 or 3
< 0 > OPL3SA2 second (duplex) DMA 0,1 or 3
< 370 > OPL3SA2 control I/O base
< 330 > OPL3SA2 MIDI I/O base
< 5 > OPL3SA2 MIDI IRQ

とした。録音はわからないが音はちゃんと出ている。製品版にはOSSの評価版ドライバが入っているらしいので時間があれば試してみたい(しかし、音は出れば良いからなぁ)。それよかalsaのほうが有益かもしれない。
 
kernelのコンパイル
 メニューはセーブして終わりにする。

make dep; make clean

と打つ。それが終わったら

make bzImage

と打ってコンパイルをする。liloの場合は make bzlilo と打つ。2.2.xはkernleのサイズが大きいのでbを加えた物にしている(カーネルが512kBを超えるとき)。私の場合はサウンドをモジュールにすればzImageで大丈夫だということが分かっているが今回は直接組み込んでしまうのでこのようにする。

 コンパイルが終わるとbzliloの場合は自動で置き換わってくれると思う(Slackwareはそうだった、しかしTurboLinuxは分からない、TL無理、デスクトップに入れてこれやったらだめだった、マニュアルはzImageで作って置き換えている、面倒くさい)。bzImageは /usr/src/linux/arch/i386/boot/ に出来あがる。これをDOSの領域にコピーする。私は、/win/linux/にコピーした。
 
モジュールの作成、インストール
 そのまま(/usr/src/linux/、ほかでも良いのかな?)で

make modules; make modules_install

打って終了。モジュールは、/lib/modules/カーネルのバージョン/にインストールされる。
    モジュールの整理
 とみんな説明している。だけどここで疑問。前のモジュールは削除してないぞ?いいのか?ということです。私はこの場合はそのまま使っています。弊害があるのかといえば、再起動してモジュールの確認をしているとき

/lib/modules/xxx/xxx/xxx.o Unresolved Symbol(s)

みたいにエラー?表示されます。多分これだけです。意味はそのまま、決めてないシンボルがあるよ〜ん、ってことだと思います。ディスク容量をこの分無駄に使っているというところでしょうか。なぜ消さないかというと、PCMCIAを使っているからです。自分でこのモジュールの作り方が分からない。ソースが標準で入っていない(/usr/src/linux/pcmcia*/)?みたいなのでさわりません。それに後で説明するLTModemも問題ありだがモジュールなので(再インストールが面倒なだけ、手順は極めて簡単)消すことはやめました。

 そんなもん問題無く設定できるという人はディレクトリを消してインストールしてください。

rm -rf /lib/modules/2.2.xx/ (xxはカーネルのバージョン)

で消して make modules;・・・とやってください。出来る人にはたぶんこんな説明は要らないと思います。また、消すとこまでいかなくて元に戻したい人は名前を変えてください。

mv /lib/modules/2.2.xx/ /lib/modules/2.2.xx.bk (後の名前は任意)

でできます。

 2000年6月にモジュールの再構築を作成したので、そちらのページにも目を通して下さい。
 
loadlin.exeの設定(windows98のconfig.sysの書き換え)
 bzImageをwindowsの領域にコピーしておいたものを使う。ここでは、linuxというディレクトリに入っているものとする。ついでにloadlin.exeがCDに入っているのでこれもコピーしておく。起動の方法はwindows98が起動するときにTLinuxかWinかを選択して起動するようにする。liloで良いじゃないかと思うかもしれないがこれが良くない。DynaBookではliloで再構築されたカーネルはうまく置きかえられずに初期のもので起動するらしい。実際に私のマシンもだめみたいなのでloadlinを使う。

 config.sysのメニュー機能を使う。config.sysを以下のように編集する。

[MENU]
menuitem=linux
 ここではlinuxとする(任意)
menuitem=win ここではwinとする(任意)
menudefault=linux,5 linuxがデフォルトの選択となる、メニュー画面5秒間

[linux] menuitemと同じものにする
shell=c:\linux\loadlin.exe c:\linux\bzImage root=/dev/hda3 ro
 ルートパーティションは私の場合は/dev/hda3。Linuxのext2がrootのため、loadlin16.txtに書いてある(TurboLinuxのインストールCDにはないみたいだ、数字16はバージョン)。roはたぶんread onlyだと思うが、起動してしまえばもちろんhda3にファイルを書きこむことも出来る。DOS領域から見て/dev/hda3がroってことなのだろう。Ethernetのためカーネルオプションをつける場合は、Ethernet HOWTOに書いてあったと思います。PlamoのほうはPCIにしたのでそんなこともしなくなりましたが。

[win] menuitemと同じものにする
DEVICE=c:\windows\Panning.SYS ここからは元の設定のまま
device=c:\windows\himem.sys
(省略)

とする。どことなくlilo.confと似ている。liloは前にも書いたが緊急用なので消さないでおく。
 
USBマウスの設定、X Window System で使うには
 デバイスファイルを作る。
mknod /dev/usb-mouse c 10 32

とする。キャラクタデバイスのメジャー番号10番(misc)、マイナー番号32番(USB mouse)の意味。これでUSBマウスがLinuxで使えることになる。

 USBマウスをXで使うには/etc/X11/XF86Configを編集する。はっきりした書き方の場所はわからないが分かりやすいように通常のマウスの下に書く

Section "pointer"
  Protocol "PS/2"
(省略)
EndSection

Section "Xinput"
 SubSection "Mouse"
 DeviceName "USB Mouse"
 Protocol "PS/2"
 Port "/dev/usb-mouse"

 Buttons 3 使っているマウスが2つボタンのため
 Emulate3Buttons 3つボタンのエミュレーションを
 Emulate3Timeout 50 設定している。必要のある場合。
 AlwaysCore
 EndSubSection
EndSection


このままではUSBマウスを認識しておかないと起動しなくなる(グラフィカルログインのためXが起動できない)。そのため、これも追加しておく(mouseよりもちょっと上にこの項目がある)。

Section "ServerFlags"
 AllowMouseOpenFail
EndSection


とすることによって、USBマウスを認識していなくても起動できるようになる。

 使うときの注意だが、USBマウスを認識してXを起動してUSBマウスを引っこ抜く。そして、また接続するとマウスを認識しない。ドライバに問題があるのか設定が悪いのかわからないが注意すること。TLJのerrataにモジュールがあったのでそれかもしれない。

 USBマウスを認識させるには、USBマウスを接続して

modprobe usb-ohci-hcd

とすると認識する(自動ではなんとかならんものかな?)。そんでもってXを再起動(Ctrl+Alt+BackSpaceを押す)すれば(XF86Configを再読み込みする、gnomeやKDEの再起動ではない)、XでUSBマウスが使えるようになる。


kiaro 2000年6月
| 戻る |