月別アーカイブ: 2008年3月

kernel再構築メモ(SRPM利用)

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を編集して終了。