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