カスタムカーネルパッケージの生成

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が欲しくなってきますね。危ない危ない・・・。


	

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)