CentOS5.1でKernelを再構築したので、その時のメモ。
準備する物
kernel-2.6.18-53.el5.src.rpm
unifdef-1.171-5.fc6.i386.rpm
とりあえずunifdefをインストール
# rpm -ivh unifdef-1.171-5.fc6.i386.rpm
mockbuildというユーザーを作り、SRPMをインストール
# useradd mockbuild
# rpm -ivh kernel-2.6.18-53.el5.src.rpm
# cd /usr/src/redhat/
# chown -R mockbuild *
# su mockbuild
# rpmbuild -ba SPECS/kernel-2.6.spec
だいたい5分ぐらいかかるので、気長に待つ。
完了すると、RPMS/i386/kernel-headers-2.6.18-53.el5.i386.rpmと、BUILD/kernel-2.6.18/ (Kernekソース)が生成される。
とりあえず、ヘッダをインストール
# su root
# rpm -ivh RPMS/i386/kernel-headers-2.6.18-53.el5.i386.rpm
その後、BUILDに生成されたKernel Sourceをコピーして、リンクを張っておく
# cp -R BUILD/kernel-2.6.18/linux-2.6.18.i386 /usr/src/
# cd /usr/src
# ln -s linux-2.6.18.i386 linux
# cd linux
# vi Makefile
EXTRAVERSION = -prep
の部分(バージョン)をわかりやすいように任意に書き換える
自分の場合はこんな感じ
EXTRAVERSION = .ym1
menuconfigを起動
# make menuconfig
起動したら、自分が必要なオプションを有効にする。自分の場合は
File systems —>
DOS/FAT/NT Filesystems —>
[*] MSDOS fs support
[*] VFAT (Windows-95) fs support
[*] NTFS file system support
[*] NTFS write support
Networking —>
[M] IrDA (infrared) subsystem support —>
[M] IrLAN protocol
[M] IrNET protocol
[M] IrCOMM protocol
Infrared-port device drivers —>
[M] SMSC IrCC (EXPERIMENTAL)
という感じ
後はコンパイルして、インストール。
# make dep
# make clean
# make bzImage
# make modules
# make modules_install
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.18.ym1
# depmod -a
# mkinitrd /boot/initrd-2.6.18.ym1.img 2.6.18.ym1
最後に、grubのmenu.lstを編集して終了。