ubuntu编译内核的流程
0.准备新内核代码从www.kernel.org下载最新的内核包linux-3.14.4, 将压缩包拷贝到/usr/src
命令进行解压:
sudo xz -d linux-3.14.4.tar.xz
sudo tar -xvf linux-3.14.4.tar
1. 进入刚才的文件夹/usr/src/linux-3.14.4,输入命令:
$ make mrproper
该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。而对于第一次编译的代码来说,不存在这些残留文件,所以可以略过此步,但是如果该源代码以前被编译过,那么强烈建议执行此命令,否则后面可能会出现未知的问题。
2. 配置编译选项
直接拷贝/boot中现有的配置:
cp /boot/config-`uname -r` ./.config
3.确定依赖性
根据以往的经验,这一步是必须的,但是这次编译的时候,系统提醒我没必须要执行这个命令:
sudo make dep
4.清除编译中间文件
输入命令:makeclean
5.生成新内核
就是把配置过程中,我们选中编入内核中的程序编译链接生产linux内核,输入命令:
makebzImage
6.生成modules
和上步差不多,就是把配置过程中,我们选中编成modules的程序编译链接成modules,输入命令:
makemodules
7.安装modules
就是把刚才编译生产的modules拷到系统文件夹下,以供新内核调用。输入命令:
makemodules_install
一切都自动做好了。
8.建立要载入ramdisk的映像文件
如果linux系统安装在scsi磁盘上,这步是必须的,否则可以跳过。我的linux是装在vmware上的,用的是虚拟的scsi磁盘,所以必须 要这一步。输入命令:
mkinitramfs -o /boot/initrd-linux3.5.0.img
如果你的linux不是ubuntu,而是其他的发行版本,那么使用的命令可能不是mkinitramfs,而是mkinitrd,但功能和用法类似。
9.安装内核
输入命令:makeinstall
此时系统会把linux内核的镜像文件还有System.map考入到/boot下,然后会自动生成引导菜单。
10.配置grub引导程序
sudo update-grub
11. 重启系统
查看登陆界面,是否可以有新的内核选项。