[CentOS] rebuilding the kernel.

Sun Aug 10 22:34:21 UTC 2008
Akemi Yagi <amyagi at gmail.com>

On Sun, Aug 10, 2008 at 3:07 PM, Yahia Tachwali
<ytachwali at signalogic.com> wrote:

> Thank you for the info, I have installed the rpm and I ended up with the
> following :
> ----------------------------------------------------------------------------------------------------------
> [root at localhost i686]# rpm -ivh kernel-*.rpm
> Preparing...                ###########################################
> [100%]
>       package kernel-2.6.9-67.0.22.EL is already installed
>       package kernel-devel-2.6.9-67.0.22.EL is already installed
>       package kernel-hugemem-devel-2.6.9-67.0.22.EL is already installed
>       package kernel-smp-devel-2.6.9-67.0.22.EL is already installed
>       file /boot/System.map-2.6.9-67.0.22.EL from install of
> kernel-2.6.9-67.0.22.EL conflicts with file from package
> kernel-2.6.9-67.0.22.EL
>       file /boot/config-2.6.9-67.0.22.EL from install of
> kernel-2.6.9-67.0.22.EL conflicts with file from package
> kernel-2.6.9-67.0.22.EL
>       file /boot/symvers-2.6.9-67.0.22.EL.gz from install of
> kernel-2.6.9-67.0.22.EL conflicts with file from package
> kernel-2.6.9-67.0.22.EL
>       file /boot/vmlinuz-2.6.9-67.0.22.EL from install of
> kernel-2.6.9-67.0.22.EL conflicts with file from package
> kernel-2.6.9-67.0.22.EL
> ----------------------------------------------------------------------------------------------------------
>
> However, I was able to reboot with the new kernel but still I can not find o
> files for my HDLC in the kernel path under driver/net/wan. I am listing
> below the steps that I did to install a new customized kernel starting from
> fresh installation of CentOS 4.4 with kernel 2.6.9-42
>
> 1- getting the kernel:
>   1.1 access as root
>   1.2 yum install rpm-build redhat-rpm-config
>   1.3 su user
>   1.4 cd
>   1.5 mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
>   1.6 echo "%_topdir %(echo $HOME)/rpmbuild" > .rpmmacros
>   1.7 rpm -i
> http://mirror.centos.org/centos/4/updates/SRPMS/kernel-2.6.9-67.0.22.EL.src.rpm
>       2> /dev/null
>   1.8 cd ~/rpmbuild/SPECS
>   1.9 rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee
> prep-out.log

Looks good so far.

> These so far sound fine. but then I guess there might be a mistake or
> missing step in my procdure to build the new kernel:
>
> 2- building a new kernel:
>   2.1 access as root
>   2.2 rpmbuild -bp --target=`uname -m` kernel-2.6.spec 2> prep-err.log | tee
> prep-out.log

The above rpmbuild is not necessary.  You have done it correctly in
step 1.9 (as user).

>   2.3 su user
>   2.4 cd ~/rpmbuild/BUILD/kernel-2.6.18/linux-2.6.18.`uname -m`
>   2.5 cp configs/kernel-2.6.18-i686.config .config
>   2.6 make oldconfig
>   2.7 make menuconfig {here I left it as is and did not do any modification
> since I am                 planning to include HDLC as a module after build
> a complete custom kernel}

I am confused.  If you did not make any changes here, why would you
expect your new kernel to provide the HDLC support (see above) ???

>   2.8 [user at host SPECS]$ rpmbuild -bb --target=`uname -m` kernel-2.6.spec 2>
> build-err.log |         tee build-out.log

Before that step (rpmbuild -bb), you should at least edit the line:

%define buildid .your_identifier

as written in the Wiki tutorial to make your rpm's version different
from the distro's.

>   2.9 su
>   2.10/ rpm -ivh kernel-*.rpm
>
>   and after the last command I have got the conflict warning above. What is
> wrong in my             installation procedure! :( Please help.
> /

Your "customized" kernel has the same version/revision as the
distro's.  So, it won't install unless you force it (not recommended
at all).

Akemi