现在的linux内核编译太简单了:linux kernel2.6.36.2编译手记

先show一下新内核:

[feng@fsc ~]$ uname -a
Linux fsc 2.6.36.2fsc #2 SMP Mon Dec 13 21:02:02 CST 2010 i686 i686 i386 GNU/Linux

硬件环境:asus A8jr 笔记本 (07年的机器,比较老了)

cpu core1 2250GHz
RAM 3G ddr2 667
VGA ATI x2300
......

背景:使用fedora13(fedora14已经正式版发布,但没有升级),但内核还是2.6.31,从fedora12里的rpm包安装的;因为2.6.33以后的内核与电脑不兼容,启动后就花屏,跟电视机屏幕的“雪花”一样,所以从fedora12里释放出内核并安装。fedora13在线yum升级后,还切换回2.6.31内核。

kernel 2.6.36.2正式发布了,比较无聊,于是wget下载内核源码,学习编译内核;以前编译过,但并不很成功。学习鸟哥linux私房菜里的内核编译,写得很详细,基本上是照着里面一步一步来的。这次准备摸索一下。

首先当然是要make menuconfig,选择模块。然后make 没有带参数,花费时间很长,睡觉。

今天早上醒来,make install,然而出错了,消息大致是有什么依赖错误,可能是哪里有不对吧。于是关机(休眠),上班。

晚上回来,启动电脑,发现grub里启动项多了一个,就是新编译的2.6.36.2,居然可以启动系统,只是驱动不太对,没有网络,无线有线都没有;lsmod查看加载的模块,结果一个都没有,大概是驱动没有加载,或者是没有编译出来。为了保险起见,重新配置,添加了很多驱动。回忆之前看鸟哥的文章,make all,这样最简单,看make help里指明,它将编译

* vmlinux      – Build the bare kernel
* modules      – Build all modules
* bzImage      – Compressed kernel image (arch/x86/boot/bzImage)

三项,花费时间还是比较长;然后make install,重启,还是没有加载上驱动,看说明,才知道,make install并不安装内核模拟,于是make modules_install;重启。本来做好了面对“花屏”,然而没有。果然,网络正常,无线自动连上,可以正常上网。

之前看鸟哥文章里讲的,要手工复制内核到/boot,还要手工编译initrd文件,再手工修改grub.conf,很是复杂。这次编译内核,完全是出乎意料,所有这些都没做,只是简单的执行了几个命令,所有这些都自动完成了。这大概也就是“易用”吧。不过还是有点问题,linux启动中,vmware的几个服务,还是启动失败,原因没有查,可能按现在的水平还很难找到原因。

一点经验,linux其实很容易,甚至比windows更容易,当然不是在像傻瓜操作的那些方面。

最后,希望看过这篇文章或没有看到这篇文章的朋友们,都能真正爱上linux,能随心所欲使用它提高工作生活学习效率,have fun!

发表评论?

0 条评论。

发表评论