您的位置:首页 > 其它

Ubuntu7.04 编译内核 2.6.21.4

2007-12-02 18:23 225 查看
经过两天一夜的实践,终于成功编译内核2.6.21.4,经历了五次的失败,一次次的在考验着我的耐性,还好,坚持下来了,便将这两天的经历书于此处,与所有被初次编译内核的困难折磨过的朋友们共勉。

本次实践最大的收获有三点:
1. 首次尝试到了什么是真正的定制。linu把所有的自由赋予了使用者,我们应该珍惜这份尊重,并尽情地享受这种自由。内核中许多模块许多是根本不需要的,还有一些是默认的设置不合理的,都可以根据自己的具体情况更改。
2. 以前遗留的问题得到了解决。现在我的刻录机能读盘了,在编译内核的时候,去掉了scsi模拟ide设备的模块,这样,2.6以后的内核就可以正常识别刻录机了。
3. 意外的惊喜。本来在2.6.20.16下,使用的是Ubuntu带得显卡驱动,但是无论怎么调,刷新率都到不了60HZ,并且,如果使用这个 xorg.conf,新内核根本无法进入Xwindows,所以,我又把xorg.conf改回刚装好Ubuntu时没换驱动时的状态,结果新内核进入了 Xwindows,并且刷新率为60HZ,真是意外的惊喜,新内核的兼容性可是好。

现在反省下为什么会失败那么多次:
1. 网上的编译方法得版本太多了,随着内核的升级,有些版本 就太老了,不免发生了些逻辑上的混乱。
2, 第一次编译内核,可是不知深浅,在配置内核的时候,有些模块删掉了,结果无法启动。

编译步骤如下:
1. 到官方网站下载内核 http://kernel.org/pub/linux/kernel/v2.6 解包到 /usr/src 目录下,命令:
sudo tar -xvjf linux-2.6.21.4.tar.bz2
2. 进入到编译目录中,此后的所有操作均在该目录下进行。
cd /usr/src/linux-2.6.21.4/
配置内核,推荐使用xconfig,非常直观,图形界面,需要Qt,非常稳定,编译了六次没有出现意外。
sudo make xconfig
选项很多,不明白的,默认就可以了,可参考文章: http://lamp.linux.gov.cn/Linux/kernel_options.html 配置好了,保存,在目录中会创建.config文件,编译的时候是根据此文件进行。
3.开始编译:
自2.6内核开始,就不用make dep了,依赖关系会自动维护,并且命令也减少了,以往是:
sudo make dep
sudo make clean
sudo make bzImage
sudo make modules
sudo bzImage install
sudo make modules_install
现在仅需要:
sudo make //时间会很长
sudo make modules_install
sudo make install //有些资料显示,这个命令可以自动更改/boot/grub/menu.lst,可是我的实践中并没有成功,而且还有错误
本来到此因改结束了,可是在sudo make install后,并没有产生预期的结果,/boot/grub/menu.lst并没有改动,因此还得执行下述命令:
sudo mkinitramfs -0 /boot/initrd.img-2.6.21.4 2.6.21.4
sudo gedit /boot/grub/menu.lst
加入如下内容:
title Ubuntu, kernel 2.6.21.4
root (hd0,6)
kernel /vmlinuz-2.6.21.4 root=UUID=2f48ce41-ead0-463e-af93-b0503de13273 ro quiet splash
initrd /initrd.img-2.6.21.4
savedefault
绿色的字体是根据需要更改的,其他的是复制的别的核心启动项的。

到此,编译,安装结束,重新启动,就可以进入新核心的系统了。因为这个核心太新了,源里还没有它的头文件,虚拟机就没法用了,等以后升级吧。

为了这一个问题,被“残酷”地折磨了将近30个小时,但心情还是蛮愉快的。linux让我们能在痛苦中体会自由带来的乐趣,也可谓之奇。希望每一个编译过内核的朋友都能享受这一过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: