今天第一次尝试通过源码升级Ubuntu的kernel,现将过程记录下来,以供大家参考。
1.升级环境
2.下载内核
从https://www.kernel.org/pub/linux/kernel/下载kernel源码linux-3.6.tar.gz,解码到/usr/src或工作目录下,角解码到工作目录下:
3.清除旧的编译文件和配置文件
4.配置内核
可以使用当前正在使用的内核的配置文件,也可以自己新创建一个内核配置文件,我使用的是当前正在使用的内核的配置文件,按如下方式操作:
会弹出Linux/i386 3.6.0 Kernel Configuration的对话框,在该界面上选中“Load an Alternate Configuration File”,如下图:
按Enter键,弹出另一个对话框,如下图:
在红框中输入配置文件名(默认为.config),选中”ok”,按Enter键退出到上图中,然后再退出,最终会弹出是否保存配置文件的对话框,如下图:
选中“Yes”,按Enter键保存。
5.编译和安装内核
此外,该步骤还会更新/boot/grub/menu.list(如果没有该文件会提示生成)列表,将新安装的内核添加到该文件中。
6.更新配置grub引导列表
grub在引导系统时是通过其配置文件grub.cfg进行引导的,为了能够让grub默认引导新安装的内核必须配置grub.cfg。
参考grub.cfg中已有的menuentry,将新内核的menuentry放在已有内核的menuentry前面(因为grub.cfg中默认启动第一个内核set default=”0”),新增加的menuentry如下:
menuentry 'Ubuntu, Linux 3.6.0+' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0, msdos1)'
search --no-floppy --fs-uuid --set=root a4c8987c-6f35-4af1-b539-3617000ec73b
linux /boot/vmlinuz-3.6.0+ root=UUID=a4c8987c-6f35-4af1-b539-3617000ec73b ro quiet splash text $vt_handoff
initrd /boot/initrd.img-3.6.0+
}
到此为止,整个新内核就配置完成,重启验证结果如下:
7.帮助信息