Hi, due to some changes in the official CentOS 6 kernel like the integration of IPMI into the kernel (boot hanging bug) and the preemptive scheduling to "desktop" instead of "server" (which resulted in poorer performance) i decided to recompile the kernel.
Here is a small howto if you want to recompile your centos stock kernel with other options:
-
create building tree as non-root user
# su <user>
# mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
# echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
# exit
-
install needed packages:
# yum groupinstall "Development Tools"
# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
# yum install rpm-build redhat-rpm-config asciidoc hmaccalc
# yum install binutils-devel elfutils-libelf-devel newt-devel zlib-devel ncurses-devel
# yum install xmlto python-devel
-
change user (NEVER RECOMPILE AS ROOT):
# su <user>
-
install source rpm:
# rpm -ivh http://vault.centos.org/6.4/updates/Source/SPackages/kernel-2.6.32-358.2.1.el6.src.rpm
(6.4 -> centos version, kernel-2.6.32-358.2.1.el6.src.rpm -> kernel version)
-
prepare source build tree
# cd ~/rpmbuild/SPECS
# rpmbuild -bp –target="x86_64" kernel.spec
-
edit rpmbuild/SPECS/kernel.spec and replace line 18 with your custom build id:
# %define buildid .custom.NOIPMI.SERVER
(-> kernel-2.6.32.358.2.1.custom.NOIPMI.SERVER.x86_64.rpm)
-
copy over old kernel config:
# cd ~/rpmbuild/BUILD/kernel-2.6.32-358.2.1.el6/linux-2.6.32-358.2.1.el6.x86_64
# cp /boot/config-2.6.32-358.2.1.el6.x86_64 .config
-
now chane the kernel config to your desires:
# make clean
# make menuconfig
-
then copy the config file to your SOURCE directory:
# cp .config configs/kernel-2.6.32-x86_64.config
# cp configs/* ~/rpmbuild/SOURCES
-
launch the compile process:
# cd ~/rpmbuild/SPECS
# rpmbuild -bb –with baseonly –without debug –without debuginfo –target="x86_64" kernel.specs
Now there should be some cryptic output to the screen. Lean back and have a coffee, the compilation process can take some time. Depending on your hardware this can take between 30 min and 3 hours (apparemtly up to 9 hours on a PentiumIII).
The compiled kernel can be found in the RPMS folder.