2008年4月24日星期四

编译Linux2.6内核

很高兴,我能够自己编译了自己的内核了,不用再等发行版的更新了,而且还学到不少东西。



我编译内核的方法是参照红联的方法做的,编译的内核是2.6.24.4,使用的Linux的发行版是Ubuntu 7.10。

第一步,安装必要的工具和软件包,有libncurses5-dev、build-essential、bin86、kernel-package、make、ibqt3-headers和libqt3-mt-dev,最后两个软件包是可选的。如果你只是用文本模式来配置内核,那就不需要安装这两个软件包。

sudo apt-get install libqt3-headers libqt3-mt-dev libncurses5-dev build-essential bin86 kernel-package make

这些软件包是必须的,如果你没有安装这些软件包,那么你的内核是完全编译出来的,或者编译后会出现很多问题的。

第二步,从kernel.org下载最新的Linux内核的稳定版本,然后放到/usr/src的目录里然后解压。

cd /usr/src
sudo tar zxvf linux-2.6.24.tar
cd linux-2.6.24


如果是有内核的更新补丁的话,可以下载最新的内核补丁,先打不定然后再编译。把内核的不定文件复制到已经解压后的内核目录里,然后解压。

bzip2 patch-x.y.z.bz2 | patch -p1

第三步,配置内核。使用make menuconfig这个命令,如果想图形化配置的话,就是用make xconfig这个命令,不过首先是要安装qt库的两个软件包。

make menuconfig 或 make xconfig


这里配置内核是根据你的电脑的配置而做出的,每个人的机器都不一样,需要的东西也是不一样,所以我就不在这里详述了。

第四步,编译内核。编译内核其实是很简单的事情。只需要两三个命令就OK了。

make //编译内核
make modules //编译内核模块
make modules_install //安装内核模块
make install //安装内核
make headers_install //安装内核头文件(但是会覆盖旧内核的头文件。)
make bzImage //把内核保存到/usr/src/linux-2.6.24/arch/i386/boot/下

这样就大功告成了,然后就是修改启动项即可。

第五步,修改启动项,首先是打开终端,然后利用vim或者emacs等编辑器修改/boot/grub/menu.lst文件。在这个文件里加入如下内容。

title Ubuntu, kernel 2.6.24
root (hd0,0)
kernel /boot/vmlinuz-2.6.24 root=UUID=d7e2cf74-ebf5-4c78-ac2c-9f85a9809eae ro
initrd /boot/initrd-2.6.24.img


需要说明的是(hd0,0)是你安装系统的位置,这方面是要十分注意,特别是安装Windows和Linux双系统的用户。UUID是安装系统的分区的特有的,每一次格式化这个分区以后都会改变的,或者你可以查看fstab这个文件。

cat /proc/fstab

结语,编译内核不会是很难的东西,也不会很麻烦,不过真的会学到不少东西的,大家试一试吧!

没有评论:

发表评论