Linux内核的编译及内核升级(redhat)

时间:2021-08-13 12:31:40

1、查看现有内核的版本,uname–a 或uname –r

2、获取linux内核的新版本(eg:linux-2.6.39.4.tar.bz2)

3、将压缩包拷贝到目录/user/src下

4、解压,tarjvxf inux-2.6.39.4.tar.bz2

5、进入目录 /usr/src/linux-2.6.39.4

6、执行命令 make mrproper   //去除内核的依赖关系及编译后的垃圾信息(清除配置文件)

7、执行命令  make menuconfig make xconfig make gconfig

makemenuconfig 在以菜单模式进入内核配置界面

makexconfig 是在图形界面模式进入内核配置界面

makegconfig 在图形界面模式进入内核配置界面

8、第7步的目的时为了选择要编译的内核模块(生成.conifg文件),所以即使什么也不配置退出时也应该保存设置

9、 make clean   //删除.o文件,确保所有文件重新编译

10、make bzImage //生成内核文件

     不要用make,否则需要的时间更长,需要的硬盘空间也往往很大。常常报错:

     {standar input}Assemblermessage

{standarinput}11293fatalerrorcan't write fs/udf/udf.mod.o:Nospace left on device

{standarinput}11293fatalerrorcan't close fs/udf/udf.mod.o:Nospace left on device

以上错误是因为磁盘控件不足引起的。

11、make modules   #编译模块

12、makemodules_install  //安装模块

13、makeinstall     //安装内核

如看到类似如下提示,表示成功

      sh/usr/src/kernels/linux-2.6.35.9/arch/x86/boot/install.sh2.6.35.9 arch/x86/boot/bzImage \

               System.map "/boot"

 

此时/etc/grub.conf中对应两个内核,当default= 0时对应titleCentOS Linux (2.6.39.4);当default = 1时对应titlecentos (2.6.32-71.el6.i686),所以要修改default0;已确保使用2.6.39.4内核

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub aftermaking changes to this #file

# NOTICE:  Youhave a /boot partition.  This means that

#all kernel and initrd paths are relative to /boot/,eg.

#root (hd0,0)

#kernel /vmlinuz-version roroot=/dev/mapper/VolGroup-lv_root

#         initrd /initrd-[generic-]version.img

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS Linux (2.6.39.4)

        root(hd0,0)

       kernel/vmlinuz-2.6.39.4 roroot=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_rootrd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgbquiet

        initrd /initramfs-2.6.39.4.img

title centos (2.6.32-71.el6.i686)

        root (hd0,0)

        kernel/vmlinuz-2.6.32-71.el6.i686ro root=/dev/mapper/VolGroup-lv_rootrd_LVM_LV=VolGroup/lv_rootrd_LVM_LV=VolGroup/lv_swap  rd_NO_LUKSrd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pcKEYTABLE=us crashkernel=auto rhgb quiet

        initrd/initramfs-2.6.32-71.el6.i686.img

14、重启系统,查看内核

    Reboot

    Uname –r

15、为节省控件,可执行make clean 删除编译过程中产生的.0文件