Linux内核编译升级方法
2013-11-16 15:54
465 查看
本文资料采自网络,本人仅收集整理
以下是以ubuntu 9.04桌面作为编译环境,新内核版本为2.6.31.6为示范例子:
预备工作:
下载新内核源代码,地址:www.kernel.org
本地操作:
解压源代码
把linux源代码包(tar.bz2包)解压到/usr/src下。常用方法就是使用命令(参考 tar --help)
切换到工作目录
配置内核
开始编译
加入模块
生成可执行的内核引导文件
把新内核引导文件放入引导环境
简单的说就是将bzImage复制至/boot下
清除现场
将System.map放入引导环境
也就是把它复制至/boot下
生成initrd.img
更新grub引导
menu.lst:
重启电脑:reboot
完成~
以下是以ubuntu 9.04桌面作为编译环境,新内核版本为2.6.31.6为示范例子:
预备工作:
下载新内核源代码,地址:www.kernel.org
本地操作:
解压源代码
把linux源代码包(tar.bz2包)解压到/usr/src下。常用方法就是使用命令(参考 tar --help)
tar -xjf *.tar.bz2 /usr/src解压完毕后可以在/usr/src目录下看到一个linux-2.6.31.6的文件夹
切换到工作目录
cd /usr/src/linux-2.6.31.6
配置内核
make menuconfig可以根据自己要求进行配置,但是一般无需做出什么修改,采用默认设置,直接选择最后一项,保存退出即可。
开始编译
make漫长等待~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这个开始要花一个小时甚至更多的时间。
加入模块
make modules_install
生成可执行的内核引导文件
make bzImage
把新内核引导文件放入引导环境
简单的说就是将bzImage复制至/boot下
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6 //2.6.32内核的bzImage目录为arch/x86/boot/bzImage
清除现场
make clean//这一步最好还是留到最后来做(现在可以先不跳过这一步),这样的话,即使你后面操作失误也可以回到这里重做,而不需要重新编译
将System.map放入引导环境
也就是把它复制至/boot下
cp System.map /boot/System.map-2.6.31.6
生成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
更新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.6grub.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 }
重启电脑:reboot
完成~
相关文章推荐
- debian下编译升级新的linux内核方法【转】
- Ubuntu从9.10升级到14.10(64位)后编译Linux内核遇到的系列问题解决方法
- 在debian下编译、升级linux内核
- 编译Linux内核方法
- Cent OS6.2下升级git,编译报 msgfmt not found,解决方法
- 交叉编译器的建立及uboot、linux内核、busybox的编译方法
- linux内核编译与升级
- 代码从VS2003升级到VS2005的编译链接问题及解决方法
- Ubuntu14.04下编译linux内核时无法生成uImage的处理方法
- VMware安装Fedora18,升级3.8.2内核,导致hgfs无法编译安装,无法共享文件夹的问题解决方法
- 一个VC6的工程转换为VS2008的工程后,编译找不到而且不能升级vc90.pdb文件的问题解决方法 2010-9-28 14:00
- 精简LINUX内核配置及快速编译的方法
- Linux内核2.4和2.6编译模块的方法
- Linux编译升级php的详细方法
- Linux内核编译 Ubuntu 14.04.3 server 升级至3.19.8
- 编译升级linux由2.4.20-8到2.6.10内核时,遇到的错误,以及解决方法
- Ubuntu内核编译升级方法
- linux内核编译linux 内核编译常见错误及解决方法
- CentOS升级内核(elrepo-kernel-lt)--非编译方法
- linux内核调试方法,交叉编译程序出现Illegal instruction的调试方法