![]() |
LINUX |
Kernelのリビルド 4 Router
*CentOS 5.5 のkernelをsrc.rpmから再構築します
*再構築には、/usrを含むディレクトリの空き領域が1.5Gバイト程度必要です
*再構築後は (空き容量の確保のため) 必要なファイルを残して、削除します
*kernelのversionにより組み込まれているselinuxの仕様が異なります
*make はメンテナンスマシンで行っています
**以降はコメントです
*ソースの取得、削除は省略します
*エディタ、ファイラーの操作は省略します
*ソースを展開したら説明文 (英文) を読みましょう
*Enterキーを省略します
*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :kernel-2.6.18-194.8.1.el5.src.rpm | (http://mirror.centos.org/) |
参照ファイル
インストール環境| :OS | CentOS 5.5 |
| :selinux | permissive |
| :インストール先 | |
| :作業 | /usr/src |
| :言語 | LANG=en_US.UTF-8 |
| :ユーザー | rootで実行 |
*メンテナンスは一般ユーザから行います
kernel-2.6.18-194.8.1.rt
ソースの展開・インストール*/usr/srcでソースファイルを展開します
*mrproperは初期化オプションです (初めての場合は使わない)
# cd /usr/src # useradd mockbuild # rpm -ivh kernel-2.6.18-194.8.1.el5.src.rpm # cd redhat/SOURCES
*patchファイルの修正 (下記参照)
# vi linux-2.6-cpu-fix-boot-crash-in-32-bit-install-on-amd-cpus.patch # vi linux-2.6-x86-fix-amd-m-c-boot-inside-xen-on-pre-5-5-hypervisor.patch
# cd ../SPECS
# rpmbuild -bp --target i686 kernel-2.6.spec
# cd ../BUILD/kernel-2.6.18
# cp -a linux-2.6.18.i686 /usr/src/linux
# cd /usr/src/linux
# make mrproper
# cp configs/kernel-2.6.18-i686.config .config
cp:overwrite '.config'? y
# vi Makefile
# make menuconfig
*Exit → Enterキーでセーブ画面
*セーブして終了
# make # make modules_install # make install
*/bootに下記のファイルが作成されているか確認
vmlinuz-2.6.18-194.8.1.rt
System.map-2.6.18-194.8.1.rt
initrd-2.6.18-194.8.1.rt.img
# cd ..
# tar cf linux-2.6.18-194.8.1.rt.tar linux/
# bzip2 linux-2.6.18-194.8.1.rt.tar
*必要の無くなったtmpファイルなどを削除します
# cd /usr/src # rm -rf linux # rm -rf redhat/BUILD/* # rm -f redhat/SOURCES/* # rm -f redhat/SPECS/* # userdel -r mockbuild
*undefined reference to 'early_is_k8_nb' エラーへの対応
*紫色部分をコメント行にします (pentium3マシン)
:linux-2.6-cpu-fix-boot-crash-in-32-bit-install-on-amd-cpus.patch
*省略
@@ -331,6 +331,10 @@
(boot_cpu_data.x86_mask < 0x1)))
return;
+ /* not in virtualized environments */
+ /*if (num_k8_northbridges == 0)
+ return;*/
+
this_leaf->can_disable = true;
this_leaf->l3_indices = amd_calc_l3_indices();
}
*省略
:linux-2.6-x86-fix-amd-m-c-boot-inside-xen-on-pre-5-5-hypervisor.patch
*省略
@@ -43,6 +44,12 @@
if (cpu_has(c, X86_FEATURE_AMD_DCM))
return;
+ /* proceed only if there is a valid AMD northbridge
+ * (not in virtualized environments!)
+ */
+ /*if (!early_is_k8_nb(read_pci_config(0, 24, 3, 0x00)))
+ return;*/
+
rdmsrl(0xc001100c, value);
nodes = ((value >> 3) & 7) + 1;
*省略
grub.confを修正
selinuxヘの対応 (selinuxを有効にしている場合):新規インストールファイルのselinuxラベルを修正
# restorecon -Rv /boot # restorecon -Rv /lib
再起動# shutdown -r now
![]() |
Copyright(c) 528p.com All Rights Reserved. |

