○ kernel 4 Vmware

・CentOSのkernelは [Timer frequency] が1000Hzになっています
・Vmwareで制御しきれずに、ベースOSと時間が狂ってきます
・[Timer frequency] を100Hzに設定しkernelを再構築します
・src.rpmからrpmパッケージを作成します

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

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

○関連サイト

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

○インストール環境

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

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



○kernel-2.6.18-128.1.14.vmC53

○ソースの展開・再構築

・/usr/srcでソースファイルを展開します
・kernel,kernel-develのみ作成します

# cd /usr/src
[root@mars:/usr/src]
# useradd mockbuild
# mkdir /usr/src/vmC53
# rpm -ivh kernel-2.6.18-128.1.14.el5.src.rpm
# cd redhat/SOURCES
[root@mars:/usr/src/redhat/SOURCES]
# vi kernel-2.6.18-i686.config

・[Timer frequency]の修正(下記参照)

# cd ../SPECS
[root@mars:/usr/src/redhat/SPECS]
# vi kernel-2.6.spec

・specファイルの修正(下記参照)

# rpmbuild -bb --target i686 kernel-2.6.spec
# mv kernel-2.6.spec /usr/src/vmC53
# cd ../RPMS/i686
[root@mars:/usr/src/redhat/RPMS/i686]

・作成されたパッケージ
 kernel-2.6.18-128.1.14.vmC53.i686.rpm
 kernel-devel-2.6.18-128.1.14.vmC53.i686.rpm

# mv *.rpm /usr/src/vmC53

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

# cd /usr/src
[root@mars:/usr/src]
# rm -rf redhat/BUILD/*
# rm -f redhat/SOURCES/*
# rm -f redhat/SPECS/*
# userdel -r mockbuild

:/usr/src/redhat/SOURCES/kernel-2.6.18-i686.config

・rpmbuildに"--target i686"オプションを付けた場合に読み込まれます
紫色 変更部分

--- kernel-2.6.18-i686.config.orig
+++ kernel-2.6.18-i686.config
@@ -3030,7 +3030,7 @@
 CONFIG_NFS_FSCACHE=y
 
 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-CONFIG_HZ_1000=y
+CONFIG_HZ_100=y
 # CONFIG_DEBUG_DEVRES is not set
 
 CONFIG_USB_VIDEO_CLASS=m

:/usr/src/redhat/SPECS/kernel-2.6.spec

・kernel,kernel-develのみ作成します
・"dist"の設定を変更します(rpmbuild時にMakefileを自動で書き換えます)
・"el5"よりアルファベット順が後方になるように名前を設定
紫色 変更部分

--- kernel-2.6.spec.orig
+++ kernel-2.6.spec
@@ -14,19 +14,19 @@
 # kernel-smp (only valid for ppc 32-bit, sparc64)
 %define with_smp       %{?_without_smp:       0} %{?!_without_smp:       1}
 # kernel-PAE (only valid for i686)
-%define with_pae       %{?_without_pae:       0} %{?!_without_pae:       1}
+%define with_pae       %{?_without_pae:       1} %{?!_without_pae:       0}
 # kernel-xen (only valid for i686, x86_64 and ia64)
-%define with_xen       %{?_without_xen:       0} %{?!_without_xen:       1}
+%define with_xen       %{?_without_xen:       1} %{?!_without_xen:       0}
 # kernel-kdump (only valid for ppc64)
 %define with_kdump     %{?_without_kdump:     0} %{?!_without_kdump:     1}
 # kernel-debug
-%define with_debug     %{?_without_debug:     0} %{!?_without_debug:     1}
+%define with_debug     %{?_without_debug:     1} %{!?_without_debug:     0}
 # kernel-doc
-%define with_doc       %{?_without_doc:       0} %{?!_without_doc:       1}
+%define with_doc       %{?_without_doc:       1} %{?!_without_doc:       0}
 # kernel-headers
 %define with_headers   %{?_without_headers:   0} %{?!_without_headers:   1}
 # kernel-debuginfo
-%define with_debuginfo %{?_without_debuginfo: 0} %{!?_without_debuginfo: 1}
+%define with_debuginfo %{?_without_debuginfo: 1} %{!?_without_debuginfo: 0}
 
 # Control whether we perform a compat. check against published ABI.
 %define with_kabichk   %{?_without_kabichk:   0} %{?!_without_kabichk:   1}
@@ -53,7 +53,7 @@
 # After branching, please hardcode these values as the
 # %dist and %rhel tags are not reliable yet
 # For example dist -> .el5 and rhel -> 5
-%define dist .el5
+%define dist .vmC53
 %define rhel 5
 
 # Values used for RHEL version info in version.h

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