SATAドライバを含まないことで本体のHDDにアクセスしないカーネルですが、よくよく考えるとカーネルパッケージを作ってターゲットにインストールすれば手軽です。
・・・ということで、カスタマイズしたカーネルパッケージを作ってみました。
1.VmwarePlayer上に環境を作る
- 素のLinuxMint13 MATE 32bitをインストール
- 仮想メモリは3GB
- 少しでも速度を早くしたいのでコアは2コア
- インストール後、表示に沿ってゴソゴソアップデートする
2.Synapticを使って、ゴソゴソインストール
- 後で日本語化する時のためにibus
- open-vm-toolbox
- kernel-package
- linux-source
- libncursesw5-dev
- linux-image-generic-pae
3.日本語化
コントロールセンターを開いて「Language Support」を開いて不足しているものをインストールしてから、「システム全体に適用」。
その後、一旦再起動。日本語化とopen-vm-toolboxがちゃんと機能するようになる。
4.カーネルソースの準備
$ su # cd /usr/src/linux-source-3.2.0 # tar -jxfv linux-source-3.2.0.tar.bz # cd linux-source-3.2.0
5.コンフィギュレーションファイルの準備
デフォルトのカーネルの設定ファイルをコピーしてきて、一旦古い設定で設定ファイルを作る。その後、menuconfig で必要な所だけ設定を変更する。
# cp /boot/config-3.2.0-35-generic-pae ./.config # make oldconfig # make menuconfig
以下の物はチェックを外した。1つ目が目的とするSATA/PATAのドライバ。その他は「要らないだろう」というもの。他にもたくさん外せそうな物はありますが、とりあえずこれだけ。
- Serial ATA and Parallel ATA drivers
Multiple devices driver support (RAID and LVM)
cryptsetupを使う場合にはデバイスマッパー(dm_mod)が必要で、外してはいけません- Fusion MPT device support
- ISDN support
6.カーネルパッケージの構築
# make-kpkg clean # make-kpkg --initrd kernel_image kernel_headers --append_to_version="-nosata" --revision=20121229.2 -j2
冒頭で以下のような表示が出て、構築が始まります。
exec make kpkg_version=12.036+nmu2 -f /usr/share/kernel-package/ruleset/minimal.mk debian DEBIAN_REVISION=20121229.2 APPEND_TO_VERSION=-nosata INITRD=YES ====== making target debian/stamp/conf/minimal_debian [new prereqs: ]====== This is kernel package version 12.036+nmu2. test -d debian || mkdir debian test ! -e stamp-building || rm -f stamp-building : :
これで生成された linux-image-3.2.34-nosata_20121229.2_i386.deb と linux-headers-3.2.34-nosata_20121229.2_i386.deb をUSBメモリに入れてターゲットマシンに持っていきます。
おまけ
何度もカーネルのコンパイルをしているともっと速いCPUが欲しくなってきますね。危ない危ない・・・。