○ Kernelのリビルド 4 Router

・CentOS 5.6 のkernelをsrc.rpmから再構築します
・再構築には、/usrを含むディレクトリの空き領域が1.5Gバイト程度必要です
・再構築後は (空き容量の確保のため) 必要なファイルを残して、削除します
・kernelのversionにより組み込まれているselinuxの仕様が異なります
・make はメンテナンスマシンで行っています

・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:kernel-2.6.18-238.12.1.el5.src.rpm  (http://mirror.centos.org/)

○参照ファイル

パッケージの追加
最初の設定 (Router)

○インストール環境

:OS CentOS 5.6
:selinux permissive
:インストール先
:作業 /usr/src
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行

・メンテナンスは一般ユーザから行います



○kernel-2.6.18-238.12.1.rt

○ソースの展開・インストール

・/usr/srcでソースファイルを展開します
・mrproperは初期化オプションです (初めての場合は使わない)

# cd /usr/src
[root@venus:/usr/src]
# rpm -ivh kernel-2.6.18-238.12.1.el5.src.rpm
# cd redhat/SPECS
[root@venus:/usr/src/redhat/SPECS]
# rpmbuild -bp --target i686 kernel-2.6.spec
# cd ../BUILD/kernel-2.6.18
[root@venus:/usr/src/redhat/BUILD/kernel-2.6.18]
# cp -a linux-2.6.18.i686 /usr/src/linux
# cd /usr/src/linux
[root@venus:/usr/src/linux]
# make mrproper
# cp configs/kernel-2.6.18-i686.config .config

・patchを当てます(下記参照)
・patchファイルは/usr/srcに置きます

# patch -p1 < ../except_early_k8_nb.patch

# vi Makefile

Makefileの修正 (詳細別記)

# make menuconfig

configの設定 (詳細別記)

・Exit → Enterキーでセーブ画面
・セーブして終了

# make
# make modules_install
# make install

・/bootに下記のファイルが作成されているか確認
 vmlinuz-2.6.18-238.12.1.rt
 System.map-2.6.18-238.12.1.rt
 initrd-2.6.18-238.12.1.rt.img

# cd ..
[root@venus:/usr/src]
# tar cf linux-2.6.18-238.12.1.rt.tar linux/
# bzip2 linux-2.6.18-238.12.1.rt.tar

・必要の無くなったtmpファイルなどを削除します

# cd /usr/src
[root@venus:/usr/src]
# rm -rf redhat/BUILD/*
# rm -f redhat/SOURCES/*
# rm -f redhat/SPECS/*
# cd linux
[root@venus:/usr/src/linux]
# make distclean

except_early_k8_nb.patch

・Patch24956,Patch25097,Patch26301で修正された一部です
・undefined reference to 'early_is_k8_nb' エラーへの対応です
・makeでエラーが出る場合のみpatchを当てます (pentium3)

○grub.confを修正

grub.confを修正 (詳細別記)

○selinuxヘの対応 (selinuxを有効にしている場合)

:新規インストールファイルのselinuxラベルを修正

# cd ~
[root@venus:~]
# restorecon -Rv /boot
# restorecon -Rv /lib

○ 再起動

[root@venus:~]
# shutdown -r now

○ Copyright(c) 528p.com All Rights Reserved.