Linux内核编译升级方法

本文资料采自网络,本人仅收集整理

以下是以ubuntu 9.04桌面作为编译环境,新内核版本为2.6.31.6为示范例子:

预备工作:

下载新内核源代码,地址:www.kernel.org

本地操作:

  1. 解压源代码
    把linux源代码包(tar.bz2包)解压到/usr/src下。常用方法就是使用命令(参考 tar --help)
    tar -xjf *.tar.bz2 /usr/src
    解压完毕后可以在/usr/src目录下看到一个linux-2.6.31.6的文件夹
  2. 切换到工作目录
    cd /usr/src/linux-2.6.31.6
  3. 配置内核
    make menuconfig
    可以根据自己要求进行配置,但是一般无需做出什么修改,采用默认设置,直接选择最后一项,保存退出即可。
  4. 开始编译
    make
    漫长等待~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这个开始要花一个小时甚至更多的时间。
  5. 加入模块
    make modules_install
  6. 生成可执行的内核引导文件
    make bzImage
  7. 把新内核引导文件放入引导环境
    简单的说就是将bzImage复制至/boot下
    cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6
    //2.6.32内核的bzImage目录为arch/x86/boot/bzImage
  8. 清除现场
    make clean
     //这一步最好还是留到最后来做(现在可以先不跳过这一步),这样的话,即使你后面操作失误也可以回到这里重做,而不需要重新编译
  9. 将System.map放入引导环境
    也就是把它复制至/boot下
    cp System.map /boot/System.map-2.6.31.6
  10. 生成initrd.img
    cd /lib/modules/2.6.31.6
    sudo mkinitramfs -o /boot/initrd.img-2.6.31.6 
    //2.6.32可以为sudo update-initramfs -c - k 2.6.32
  11. 更新grub引导
    sudo update-grub
    它就会自动找到新的内核,并建立引导项。这个过程也可以手动完成,方法是根据grub的版本更改/boot/grub目录下menu.lst(grub旧版引导菜单,Ubuntu 9.04之前使用)或grub.cfg(grub2引导配置,Ubuntu9.10后使用)文件。内容如下:
    menu.lst:
    title Ubuntu 9.04, kernel 2.6.31
    uuid 753efade-04e8-4e2c-8bbb-965e9792b2f5
    kernel /boot/vmlinuz-2.6.31.6 root=UUID=753efade-04e8-4e2c-8bbb-965e9792b2f5 ro quiet splash
    initrd /boot/initrd.img-2.6.31.6
    grub.cfg:
    menuentry "Ubuntu, Linux 2.6.32" {
           recordfail=1
           if [ -n ${have_grubenv} ]; then save_env recordfail; fi
         set quiet=1
         insmod ext2
         set root=(hd0,3)
         search --no-floppy --fs-uuid --set 3c611c5f-f941-4970-956f-fe4c7bf75714
         linux    /boot/vmlinuz-2.6.32 root=UUID=3c611c5f-f941-4970-956f-fe4c7bf75714 ro   quiet splash
         initrd    /boot/initrd.img-2.6.32
     }
  12. 重启电脑:reboot

 完成~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值