ITEEDU

编译内核及制作RPM包

编译步骤

第一步:

    # cd /home
    # wget   http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.5.tar.gz
    # tar -zxvf   linux-2.6.32.5.tar.gz -C /usr/src
    # cd /usr/src
    # ln -s linux-2.6.32.5   linux
    # cd linux
第二步:
    # make mrproper (初次编译内核这步也可以省略,方便第二次编译初始用。)
    # make menuconfig
    #   make bzImage && make modules && make   modules_install(需30~40分钟,具体看服务器配置)
    # make install  

如需制作RPM内核安装包,运行以下命令,相当于第二步的操作,但不编译本机内核。

 # make   rpm

生成位置:

/usr/src/redhat/RPMS/x86_64/kernel-2.6.32.6-2.x86_64.rpm
/usr/src/redhat/SRPMS/kernel-2.6.32.6-2.src.rpm

安装步骤

1、二进制rpm包安装步骤

 # rpm -ivh  kernel-2.6.32.6-1.x86_64.rpm
 # vi /boot/grub/menu.lst添加以下并修改default项。
    title CentOS (2.6.32.6)
    root (hd0,0)
    kernel   /vmlinuz-2.6.32.6 ro root=LABEL=/
    initrd   /initrd-2.6.32.6.img
# cd /lib/modules && mkinitrd   /boot/initrd-2.6.32.6.img 2.6.32.6/

2、RPM源码包安装步骤,好处便是在原有基础上再进行编译,更灵活。

    # rpm -Uvh kernel-2.6.32.6-2.src.rpm
    # rpmbuild -bp --target=$(arch)   /usr/src/redhat/SPECS/kernel-2.6.32.6-2.spec 
    # cd   /usr/src/redhat/BUILD/kernel-2.6.32.6-2
    # vi Makefile <-- Change   "EXTRAVERSION" to avoid kernel overwriting 
    # cp   /lib/modules/2.6.32.6/build/.config . 
    # make menuconfig
    # 重复第二步