红联Linux门户
Linux帮助

debian下编译2.6.13.2内核的步骤及感受

发布时间:2006-04-17 00:37:27来源:红联作者:linux
编译内核是每一个真正使用linux的用户一定要过的一道关。
linux的无穷魅力就在于用户可以根据自己的需要按需定制一个适合自已的内核。
还有新的硬件老的内核不能识别的话,编译一个新版的内核没准就能识别。
两个星期前我还对编译内核一无所知的,经过一个高手师兄的指点,现在总算可以
顺利编译内核了。

编译内核的主要步骤:
1 到www.kernel.org上下载内核源码,目前已经更新到2.6.13.4
但由于教育网不能随便访问国外网站,我到ftp.tsinghua.edu.cn
下载了一个2.6.13.2的内核。反正我的机器是IBM的老PII本子,kernel的新功
能一般用不上,主要是定制一个比较精简的内核,把用不到的东西去掉,节省资

2 下载linux-2.6.13.2.tar.gz到本地目录,我下到了root目录。我看很多人都
放在/usr/src下,可能是习惯问题吧。
3 解压缩:tar zxvf linux-2.6.13.2.tar.gz
4 这时root目录下会出现linux-2.6.13.2子目录
5 进入linux-2.6.13.2目录,make menuconfig
关键的一步,编译内核的成败全在这一步了。只要少选了什么重要的东西,
新kernel就要panic了。
6 配置完后会在当前目录下面生成一个.config文件。此文件具有隐藏属性
可以用ls -a查看,刚才编的配置文件都保存在这个文件
7 make 编译过程,最漫长的过程,建议找个地方看看书过两个小时再回来
我的CPU比较慢,所以我都是在宿舍晚上make menuconfig ,之后我就睡觉,让
我的本本自己compile,等到第二天早上肯定能编译好。
8 make modules_install 安装配置的模块
9 make install 执行完后会在/boot目录下面生成一个vmlinuz-2.6.13.2
同时在/arch/i386/boot/下面生成一个bzImage,我看了一下,跟vmlinuz-2.
6.13.2是一样大小的,所以推测可能就是一样的文件。
10 mkinitrd -o /boot/initrd.img-2.6.13.2 关于这个文件,我看了很多论坛的
帖子,但还是不太清楚这个东西是干什么用的,听说如果编译时不选择ramdisk就
不需要。
11 修改/boot/grub/menu.lst 加载新内核
12 reboot


编译内核的感受:我从国庆假期就在实验室一直在研究编译内核,经常到论坛上看相关
的帖子,或者用百度搜资料。我用的版本是hiweed Debian linux 0.7。研二的师兄告
诉我Debian下面用标准方式很难编译成功。但我就是觉得Debian的编译方式不如标准方
式用着顺手。在假期里我编了两次都失败了,Debian的方式我也试过,安装完内核后会
把我的Windows选项清掉。假期过完了,又接着编译,又编译了两次,每次还都是这个
错误
VFS:Connot open root device "hda12" or unknown-block(0,0)

kernel panic--not syncing:VFS:Uable to mount root fs on unknown-block(0,0)

VFS老师讲过是底层的物理设备和上层用户间通信的一个逻辑的过渡层。网友提供的一些
解决方法:

原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都
必须直接编译进内核,不能以内核模块形式编译。

原因二:如果使用initrd.img启动系统,则cromfs必须编译


cromfs在哪里配置我没有找到,但我把关于ATA/IDE/SATA/SCSI的选项都编译进内核就解决
了,不过到现在也不知道什么原因。


编译内核的苦恼就是每次配置都有很多选项要选,很多选项都不知道是做什么用的,去掉
以后会有什么后果,师兄告诉我很多看似无关的选项去掉后就是启动不起来。还有我用的
hiweed debian版本无法安装QT库和GTK库,上论坛发帖子求教也没有求教出结果,到baidu
上搜了一下也没有相关的资料,以前鄙视red hat丑陋的界面,现在开始羡慕red hat的
方便了,只要在安装时选择上Gnome 开发包就行了。而且关于2.6内核的配置资料很少的。

不过有忧必有喜,自己编译内核毕竟有成就感,很多没有用的模块我都没有编译进内核,启
动时快了很多。真正感觉到了It's my kernel!选上Frame Buffer,这样在Terminal里面
和文本模式下面就可以利用zhcon来显示中文了,把Embed fonts选中,这样启动时界面漂亮
很多的,还会显示企鹅。自己编的内核连启动界面都美化了剩下的事情就是阅读源码,真正
明白linux。
的原理,从而更深层次的了解操作系统。
文章评论

共有 0 条评论