(以下过程在Ubuntu 8.04编译通过,其他版本暂时没有尝试过)
Step 1:
下载最新的(或你想要的Linux内核源码)
下载地址:www.kernel.org
得到源码后,将其解压到某个目录下
Step 2:
打开终端,进入源代码目录下
进入后,安全起见,先 make mrproper 一下,
以清除目录下所有配置文件和先前生成内核时产生的中间文件
接下来将要进行内核配置,这是最难也是最关键的一步
有四种方法可完成这件事情:
#make config
#make menuconfig
#make xconfig
#make oldconfig
我用的是第二种,但这时问题来了,运行命令后发生错误,而且一堆
最关键的错误信息是少一个库。
安装以下库:
apt-get install libncurses5-dev (meke menuconfig要调用的)
apt-get install libqt3-headers (make xconfig要调用的)
上面列的不全,但你安装的时候,源会提示你,哪些包是推荐安装的
都装上就是了。
如果连基本的编程库(gcc, make等)也没有的话
apt-get install build-essential
如果上面的东西都装完了,恭喜你,终于可以make menuconfig了。
如果感觉配置太麻烦的话,其实可以直接跳过这一步骤,直接使用当前系统的配置文件即可:
cp /boot/config-`uname -r` ./.config
Step 3:
make clean
make -j4 (-j4是让处理器分成四个线程来编译内核,速度快,推荐CPU好的使用)
make modules_install
make install
make-kpkg clean (kpkg具体什么作用不懂)
make-kpkg --initrd --append_to_version -shan275 kernel_image kernel_headers
其中--initrd必需要,不然生成不了initrd文件
--append生成多重镜像,也就是在启动菜单里看到的选项
shan275是你自己取的镜像的名字,必须以数字结尾,比如在这里写Shan275 //错误
镜像名字不能大写,所以改成-shan275。
编号内核后,就会显示linux-2.6.20.1-shan275最后两项是生成镜像包和头文件包
make完之后,会在上一层目录看到两个deb包
用dpkg -i命令安装这两个包就好了
这个时候,一切都弄好了
可以去/boot目录下看看Vmlinuz、initrd、System.map文件是否都在
然后看看/boot/Grub/menulist文件中的内容是否已经加上你新编译的内核
如果是,恭喜你,放心大胆的重启吧
重启后,就可以进入你自己编译的内核了