这里使用的方法是用kernel-package之一工具来简化内核的配置和安装,最大的优点就是在执行晚后会生成一个内核的deb包,及易于其安装。下面就具体的来讲一下步骤:(所以的操作均在超级用户下执行)
1、首先是要安装kernel-package这一工具(可能会需要一些依赖包,安装提示先将依赖包装上,在执行一下的命令即可)
sudo apt-get install kernel-package
2、下载一个合适的内核源码包(如llinux-3.5.tar.bz2)放在/home目录下(其他的目录也可以),解压
sudo tar -xvf linux-3.5.tar.bz2(解压后为linux-3.5)
3、进入内核目录,进行配置
cd linux-3.5
sudo make xconfig(用make xconfig来配置的话,需要qt的图形化支持,相必大家都知道,如果不想用它的话,可以直接用make oldconfig来配置,但相对要费事一些)
4、配置完后保存,关闭即可。这里必要的提一下:相关的配置信息写在.config文档中,该文件为隐藏文件,在linux-3.5的主目录下。如果下次你想要配置一个和此次相同的内核,把该文件拷到相应内核的主目录下即可。
5、sudo make-kpkg clean
清除上一次编译留下的不必要文件
6、sudo make-kpkg --append-to-version=.版本号 kernel_image
这一步就是最关键的一步也是时间最长的一步,即编译内核并形成deb包。
最终形成的deb会在你当前所在的目录下。
7、这一步比较关键,正确与否关系到你安装的内核能否正确的启动
1)sudo dpkg -i /~linux-image-3.5.0.0112_3.5.0.0112-10.00.Custom_i386.deb
(就是安装生成的deb包),安装的过程大致如下:
正在解压缩 linux-image-3.5.0.0112 (从 .../linux-image-3.5.0.0112_3.5.0.0112-10.00.Custom_i386.deb) ...
Done.
正在设置 linux-image-3.5.0.0112 (3.5.0.0112-10.00.Custom) ...
Running depmod.
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.5.0.0112 /boot/vmlinuz-3.5.0.0112
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.5.0.0112 /boot/vmlinuz-3.5.0.0112
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.5.0.0112 /boot/vmlinuz-3.5.0.0112
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.5.0.0112 /boot/vmlinuz-3.5.0.0112
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.5.0.0112 /boot/vmlinuz-3.5.0.0112
Generating grub.cfg ...
Found Windows 7 (loader) on /dev/sda1
Found NeoKylin 3.2.1 (Carambola) on /dev/sda7
Found memtest86+ image: /boot/memtest86+.bin
Found linux image: /boot/vmlinuz-3.5.0.0112
Found linux image: /boot/vmlinuz-3.5.0-21-generic
Found initrd image: /boot/initrd.img-3.5.0-21-generic
done
从上面的过程中我们可以发现,并没有形成initrd.img的文件,故一定要执行下面这一步:
sudo mkinitramfs 版本号 -o /boot/initrd.img-版本号
sudo update-grub(重新生成grub.cfg文件)
至此,我们已经完成了内核的定制和安装,再次开机时,我们就能够看到在grub中有多个内核可选(包括你刚刚定制的内核哦)。
在结束这一话题时,我还想要说一点,在刚刚安装deb包的过程中,我们可以看到,它重写了grub.cfg文件,也就是说,默认的启动内核就是你刚刚安装的内核,如果你想要更改的话,需要修改grub.cfg文件(在sudo下进行)。这里就不具体阐述了。