Debian(lenny)kernel再構築 2.6.26->2.6.32へ
なかなか機会がなかったDebianのKernel再構築。
たまたまAspire oneの無線LAN対応(ath5k対応)もありKernelを一から作りたかったのでやってみた。
せっかくなので、単なるビルドではなく、Debianのパッケージ管理システム下で、新Kernelをソースからビルド・パッケージ化・管理できるか試してみた。
流れとしては、ソース入手とビルド準備・Kernelコンフィグ・パッケージングの3段階。
以下、メモ。
- まずはソースコードとパッチを入手しビルドの準備を行う。
# apt-get install linux-source-2.6.32 # apt-get install linux-patch-debian-2.6.32 # cd /usr/tmp/ # mkdir kernel # cd kernel # tar xvjf /usr/src/linux-spource-2.6.32.tar.bz2 # cd linux-source-2.6.32 # export PATCH_THE_KERNEL=yes
- 次にKernelのコンフィグ。できる限り前のKernelの設定を引き継ぐ。
# cp /boot/config-2.6.26-2-686 ./.config # make oldconfig Restart config... General setup Prompt for development and/or incomplete code/drivers (EXPERIMENTAL) [Y/n/?] y Local version - append to kernel release (LOCALVERSION) [] Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n Kernel compression mode > 1. Gzip (KERNEL_GZIP) (NEW) 2. Bzip2 (KERNEL_BZIP2) (NEW) 3. LZMA (KERNEL_LZMA) (NEW) (抜粋)
- 最後にビルド&パッケージングを実行。
# make-kpkg --initrd --revision=rev1 kernel_image kernel_headers
このままでは、以下のエラーが発生するので対処(ビルド対象から外す)を行う。
方法はこちらのサイトを参照:http://cakebox.homeunix.net/wordpress/?p=100
lguest.c:21:25: error: sys/eventfd.h: No such file or directory lguest.c: In function ‘create_thread’: lguest.c:1027: warning: implicit declaration of function ‘eventfd’
対処を行ったのでもう一度、ビルド&パッケージ化を実行。
# make-kpkg --initrd --revision=rev1 kernel_image kernel_headers
これで、一階層したのディレクトリにKernelとHeaderのdebファイルが完成!
参考にさせていただいたサイト:
http://debian.fam.cx/index.php?cmd=read&page=Software%2FLinuxKernel