☆ 仮想OSのカーネル再構築 ☆ 以下のいくつかのことを実行可能にするためにカーネルを再構築する. ・ APMを有効にして vmware 内のPCから電源を見ることができるようにする. (管理まではできなくて良い) → 結果的には自動で電源が切れるようにはなったが, 電源容量までは 見ることができなかった. これは仮想OSがAC電源で稼働していると認識していることが 原因であった. ・ ThinkPad R30 は USB FDD なので, これを読み込めるようにする. ・ 仮想OSで音を鳴らす. 以下のHPが参考になるだろう. http://www-ana.ist.osaka-u.ac.jp/~t-eguti/linux/thinkpad_r31.html また, VMWare 上の仮想マシンの仕様のために必要となるモジュールも いくつかある. それに関しては以下のHPを参考にする. http://fdin.org/vmware/why2.html http://www.geocities.co.jp/SiliconValley-Cupertino/5128/500_compu/linux_on_vmware.html □ パッケージのインストール カーネルを再構築するために, 以下のパッケージをインストールする. ・ kernel-source-2.4.18 ・ kernel-package ・ bzip2 ・ bin86 ・ libncurses5-dev □ ソースの展開 〜 menuconfig ここらへんは postelなど でのドキュメントを参照のこと □ カーネルの設定 ● Processor type and features ・ [ ] Symmetric multi-processing support ● General setup ・ [*] Advanced Power Management BIOS support ・ [ ] Ignore USER SUSPEND (NEW) ・ [*] Make CPU Idle calls when idle (NEW) ・ [*] Enable console blanking using APM (NEW) ※ vmware では HDD は SCSI 接続されていると認識されているので, これを有効にしないと Kernel Panic を起こして起動できなくなる. HDD は「SCSI low-level drivers」にある「BusLogic SCSI support」 を有効にする事で認識する事ができる. ● SCSI support ・ SCSI low-level drivers -> [*] BusLogic SCSI support <ネットワークカードのデバイスドライバ> ● Network device support ・ Ethernet (10 or 100Mbit) -> [*] AMD PCnet32 PCI support (なぜかチェックがはずれていたので, 付け直しておく事!!) ● File systems ・ [*] DOS FAT fs support ・ [*] MSDOS fs support ・ [*] UMSDOS : Unix-like file system on top of ... ・ [*] VFAT (Windows-95) fs support ・ [*] NTFS file system support (read only) ● File systems ・ Native Language Support -> [*] Codepage 437 (United States ,Canada) -> [*] Japanese charasets (Shift-JIS, EUC-JP) -> [*] NLS ISO 8859-1 (Latin 1; Western Europearn Languages) ● USB support ・ USB Controllers [*] UHCI Alternate Driver (JE) support ・ USB Device Class drivers [*] USB Mass Storage support <サウンドの設定> ● Sound ・ [*] Sound Card support ・ [*] OSS sound modules ・ [*] 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support 設定が完了したら, Exit する. ここまでの設定を保存するか聞かれるので Yes を選択. ちなみにこの設定は /usr/src/linux/.config に書き込まれている. □ カーネルイメージの作成 以下のコマンドで, カーネルイメージを作成する. # make dep # make-kpkg clean # make-kpkg --revision shadow-2002-07-11 kernel_image するとカーネルのコンパイルがはじまり, カーネルイメージが 作成される. □ カーネルイメージのバックアップ 上記の作業で /usr/src/ 以下に kernel-image-2.4.18_shadow-2002-07-11_i386.deb というカーネルイメージ ファイルが作成されるはずである. カーネルの作成には時間がかかるので, このファイルをどこかに バックアップをとっておくと良いかもしれない. □ インストール # dpkg -i /usr/src/kernel-image-2.4.18_shadow-2002-07-11_i386.deb □ 再起動 インストールが終了したら再起動を行う. □ カーネルの構築に失敗した際に… カーネルの再構築がうまくいかないと起動の最中でストップし, どうにもならなくなってしまう. こんな場合は旧カーネルで起動すると良い. 旧カーネルで起動するには, 起動時の『MBR』と表示されている時に Shift キーを押す. するとブートローダが起動し, 「Linux」か「LinuxOLD」で起動するか質問される. 「LinuxOLD」はカーネルを再構築する以前のカーネルなので, こちらを選択すると旧カーネルで起動することができる. こうやって旧カーネルで起動してから再びカーネルの再構築をおこなうと良いだろう. <余談> 私の場合はうっかりと SCSI デバイスのサポートを有効にせずにカーネルを 作成してしまい, ハードディスクをマウントできずに Kernel Panic を起こしてしまった. (-_-;) ◆ ブートファイル(?) なぜ, 上記のように旧カーネルで起動することが できるかというと, OS起動時に真っ先に読まれる起動用のファイルが バックアップしてあるからである. /vmlinuz (バックアップされているものは /vmlinuz.old) が 起動用のファイルである. 実際にはこれらのファイルは シンボリックリンクであり, 実態は /boot/vmlinuz-2.*.** である. 普通は起動時には /vmlinuz が読み込まれるが, カーネルのインストールを行った際に MBR が /vmlinuz と /vmlinuz.old の両方から起動できるように してくれたらしく, これによって新旧の両カーネルから起動が可能になっている.