红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > Ubuntu

ubuntu编译内核自动精简,小菜也能做内核精简

发布时间:2011-05-02 23:21:10来源:红联作者:im叶飞
写在最前面我的ubuntu版本是10.04,该编译内核方式并不很合理只是体验体验。请务必保留系统原来内核。
一、下载源代码和编译软件准备

下载内核源代码:http://www.kernel.org/注意,点击2.6.38.4(2011/ 5止该版本最新)内核的Full source版,即完整版。安装有关编译程序。安装make ,gcc, make-kpkg,运行xconfig等等和编译内核相关的工具。安装不了,请检查/etc/apt/sources.list 文件。
有关命令:

代码:sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot

二、解压源代码并打上补丁
注意,很多教程上说应该解压到 /usr/src, 但是实际上解压到任何目录上都可以。
/usr/src下面需要root权限反而容易出问题.

代码:tar jfx linux-2.6.xx.tar.bz2 -C ~/linux。这里假设你得源代码包放在了用文件下。例如我的/home/fly。这个是解压的命令行不会得话图形把。打开你下载 得那个目录然后单击右键。选择解压到此处
你要把’~/linus’改成你自己解压linux-2.6.38.4.tar.bz2的目录,
注意目录容量要到达1.5G
进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。

cd +路径

例如这里是cd ~/linux/linux-2.6.xx(岸上面得假设)。

三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件,如果是刚刚解开的包,据我的实践,不需要执行这步。执行与否,自己考虑。
相关命令如下:
代码:make mrproper
很多教程上说把现在使用的内核的config拷贝过来参考,据我的实践,也不需要,ubuntu还有debian会自动做这步。

四、开始配置内核选项。
从linux-2.6.32开始可以使用make localmodconfig自动精简内核, 菜鸟也能轻松精简内核到十几MB(我自己编译是11m)官方得2.6.38是20M。

注意: 该方法会自动去掉一些从开机到当前没用使用的模块(主要是驱动模块),
所以你可以使用一下你的摄像头, 挂载一下iso文件…..
以保证需要的模块不会被精简掉, 否则使用新内核时会发现不能挂载iso文件, 不能使用某些外设等等.
命令如下:
代码:make localmodconfig

五、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。
相关命令:
代码:sudo make-kpkg clean #这条命令好像不要超级权限,很多资料上说要,不过这不是原则问题。
fakeroot make-kpkg -initrd -append-to-version=fly1 kernel_image
上述命令中的fly大家用自己喜欢的字符代替.
输完上述命令回车之前,建议大家把浏览器还有别的运用程序都关掉,机器开始的工作比较艰苦。我开着很多东西结果花了进2个小时。
六、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。我的是linux-image-2.6.38.4fly1_2.6.38.4fly1-10.00.Custom_i386.deb
代码:cd..
sudo dpkg -ilinux-image-2.6.38.4fly1_2.6.38.4fly1-10.00.Custom_i386.deb
文件名很长,如果不用tab自动补足是不可能的,tab键万岁。
安装完成后和老内核比较一下大小
代码:ls -l /boot/
注意:安装完后先不要动linux-2.6.34的目录,可能还要安装驱动

七、重新启动验证新内核。
sudo reboot
八、如果。。。
grub菜单上选用新内核无法启动话,推倒重来

重启后N卡驱动安装
最新NV驱动才能在2.6.34内核上使用

让系统在内核升级时自动安装nvdia驱动的方法:http://forum.ubuntu.org.cn/viewtopic.php?t=141431&start=0&postdays=0&postorder=asc&highlight=
重启后不能直接进入X11,先编译nvidia驱动官方(先删除旧的驱动)
代码:sudo sh NV******.run
如果显示找不到内核源码用
代码:sudo sh NV******.run -kernel-source-path=你编译内核的目录,

sudo sh NV******.run -kernel-source-path=/home/david/linus/linux-2.6.34

具体安装方法见http://wiki.ubuntu.org.cn/Nvidia%E6%89%8B%E5%86%8C(看了wiki还解决不了N卡驱动楼下提问)

ATI官方(受限)显卡驱动不支持新内核(表示下同情)

inter显卡和用开源驱动(没装受限驱动。我的机器完全没有碰到任何问题)打开特效的ati显卡编译内核后不需要安装驱动。

补充:如果编译内核后,只是希望修改某些模块(M)选项,可以不用完全重新编译。

只需要执行
sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt
make xconfig
然后之添加或减少模块(M)选项
然后(不要执行make mrproper和sudo make-kpkg clean),
直接执行编译命令如
sudo make-kpkg -initrd -initrd -append-to-version=david0.68 kernel_image #整条命令要和上次编译时一样
make就会在原来编译的基础上,编译新选上的模块(如果有的话),而不会全部重新编译。
这样可以节省大量时间和能源,尤其是你电脑不是很快的话(人生有多少个两小时阿)。

九:说在最后面(拿着臭鸡蛋都先放下来)。

1全程中最好先用su命令切换到root账户。

2此时如果没有任何问题是也不想要在添将功能时。cd那个目录,先

请先切换root账户然后做些清理(这个是好习惯)。

代码 su

输入密码进入root后

make mrproper

make clean

整理参考http://forum.ubuntu.org.cn/weblog.php?w=48
原载于http://soume.me/linux.html
今天编译了下2.26.39rc的内核,编译的包只有11M.比原来在ppa中下载那个35M的那个小了很多。开机速度只要30多秒。关机20多秒
文章评论

共有 21 条评论

  1. zhe_jiang 于 2013-04-27 11:10:54发表:

    来学习的

  2. metro 于 2013-02-20 17:52:36发表:

    学习下

  3. bnmluo 于 2012-12-14 16:49:50发表:

    来学习学习。
    一直没敢试呢

  4. gky2009514 于 2012-12-07 13:26:17发表:

    新手完成任务,求下书籍~

  5. fan584 于 2012-11-03 18:38:40发表:

    很好很good

  6. jjx0223 于 2012-10-30 00:41:27发表:

    感谢楼主的分享!!

  7. janzeng 于 2012-04-09 11:12:44发表:

    多谢多谢,学习学习了。。

  8. admin_hl 于 2011-12-31 13:32:27发表:

    支持下

  9. admin_hl 于 2011-12-31 13:32:27发表:

    支持下

  10. admin_hl 于 2011-12-31 13:32:26发表:

    支持下

  11. jml_1004102 于 2011-12-08 14:49:55发表:

    严重顶楼主

  12. t19892009 于 2011-11-04 20:14:19发表:

    非常不错

  13. sourcehappy 于 2011-11-04 18:43:07发表:

    good

  14. ljf1234321 于 2011-10-11 13:09:32发表:

    555555555555555编译完安装完开不开机了。。。虚拟机里装的,有啥注意事项没?

  15. Dmapleaves 于 2011-05-26 15:56:42发表:

    高手 学习了

  16. tigermu 于 2011-05-22 21:22:50发表:

    很久以前在trubo linux下编译过,不过都不知道成功没。

  17. samnio1987 于 2011-05-08 12:17:49发表:

    哥,你说你的ubuntu10.04 开机30S,关机20S,刚错了把,我的也是开机20S,关机5S ,啊。。。我发现还有一个就是内核版本2.26.32这个版本很好,机器协调的很好。

  18. taoty 于 2011-05-04 23:52:06发表:

    强烈兄弟能写得详细一些,以方便我等菜鸟学习。UBUNTU是越来越大了,已经换到DEBIAN了。

  19. luoxue021 于 2011-05-04 20:17:31发表:

    高手啊

  20. Growth兆 于 2011-05-03 09:42:58发表:

    感谢im叶飞的分享,本贴加入到论坛顶置的Linux应用索引贴中

  21. vdnuiv 于 2011-05-03 08:43:32发表:

    支持楼主