熬了三个晚上,终于完成了LINUX下2.6.7的内核编译.(其间每天睡觉只有三个小时,狠吧!)
发贴庆贺一下.(炫耀一下? ? ^_^)
2.6高级的特点不在说了,服务器应运上其他系统(WIN-DOS什么是比不了的了)这里只说说对我们桌面用户有什么好处.
2.6中一个主要内部改变是现在内核自身是可抢占的.也就是你操作的响应速度加快,随时可以很快的终止一个正在运行的进程.
2.6人机接口设备更好了.鼠标,键盘等外设更加灵活,支持触摸屏了。对游戏控制杆的支持也得到了提升.
2.6 是以ALSA(Advanced Linux Sound Architecture)取代过时的声音系统,电视卡的支持现在也支持的比较完善.
新硬件方面,很多XP,2003现在都不支持的LINUX现在都可以支持了!AMD64位 CPU的支持那时早就有了的!
.......
.............太多的优秀,一时也说不完......假如你 能编译一次内核的话------如果你是硬件高手,即使不成功,相信你能学到很多东西..至少可以了解到目前的LINUX对硬件的支持程度..鄙人自认为 硬件还可以,结果还是有很多2.6内核支持的东西始终不知道是什么玩意.
..............................................................
至于步骤.简单的说一下.(因为估计没几个人对这个感兴趣,加上我也实在是很懒,再加上我认为大家都比我聪明.所以也就不详细说了,抛砖引玉 ing !! )
系统:RED HAT Fedora Core 2 (所以不用担心gcc , make ,init tools .....的版本过低) grub 引导(因为我比较熟悉grub ,而且Fedora Core 2 默认的也是grub 引导)
步骤:
下载原代码到root 目录(其他目录当然也可以,我是习惯在这个底下而已)
#cd (转到root 目录)
#md5sum kernel-2.6.7 (原代码MD5码验证,这一步实际上我没做,向来比较急性子!况且还要肉眼对比那个什么字符.后来想起来了,但是已经编译成功了,也就再没去验证)
#mv kernel-2.6.7.tar.gz /usr/src (移动内核源码到/usr/src)
#cd /usr/src (进/usr/src目录)
#tar cvf /root/boot.tar /boot (打包备份boot 目录到/root/boot.tar 便于失败后快速恢复)
#tar cvf /root/modules.tar /lib/modules/kernel-2.6.5-358 (打包备份当前模块到/root/modules.tar 便于失败后快速恢复)
#tar vzxf kernel-2.6.7.tar.gz (解包内核源码,如果是bz格式的,则tar jvxf kernel-2.6.7.tar.bz)
#cd kernel-2.6.7 (进内核源码目录)
#make mrproper (清理代码数,首次编译可以省略.)
#make menuconfig (建立编译清单)
......
复杂的过程,我花了半个小时.成千上万个细节,一个都 不能出错,不清楚的地方可以参考默认的设置(默认太多,内核会变大,编译花费时间加长,当然,如果什么都默认的话,编译内核也就没有任何意义了),此处生成文件隐藏文件.config
.....
....
#make
(开始依照.config 的内容编译内核极其模块---modules,机器自己跑,在我的CR600MHz上自己跑了25分钟,建议在命令模式下进行,如果你在X中,那么运行 init 3到终端,然后再make,当然这个时候可以在第二个控制台登录后top 一下,你会看到gcc占用CPU 达到80-90$-----在我的机器上是这样,如果你的机器比较快,内存比较大的话,当然你可以图形界面一边编译一边xmms听歌了. )
#make modules_install (安装模块)
#maek install (安装内核到你的系统)
检查:确定grub.conf文件已经被修改,
可以
#cd /boot
#ls -l
看看有没有
initrd-2.6.7.img
vmlinz-2.6.7
#vi grub.conf
看看有没有新内核的启动选项.
reboot 或者init 6或者 shutdown -h now (重新启动)
注意点:
1:
2.6的内核编译时候不需要执行make dep ; make clear ; make modules
不需要手工修改lilo.conf或者grub.conf
make install 完成所有的新内核配置步骤.
2:
重点在make menuconfig (这里也可以make xconfig make gconfig make oldconfig )
可以去掉的硬件一大堆,比如对自己没用的声卡驱.1000M, 10000M的网卡.1394接口,PCMCIA估计没几个人台式机有的吧?呵呵.
注意file system 中选择ext2为编译进内核,EXT3编译为模块(当然可以直接编译进内核,但是内核会大一点),否则无法启动.
如果要挂载WINDOWS 的FAT32磁盘需要编译vfat为模块.NTFS则选NTFS模块(从2.6开始支持写操作,但是偶不建议修改WINDOWS下NTFS格式的磁盘-- -可能损坏NTFS磁盘的数据记录) ,其他的文件系统,什么MAC文件系统支持,BeOS文件系统支持,FreeBSD文件系统支持,SOLARIS文件系统支持等等......支持的太全 面了,大都可以去掉.不过要保留SMB和NFS(呵呵,除非你只是单机使用)
ISO9600文件系统(标准光盘文件系统,还有M$的光盘文件系统支持,名字叫什么J***的.记不太清楚了.最好也选择了.)
选择自己的主板芯片支持.
P4的CPU 有几个优化的选项,如果你的是P4那么SYE YES !(具体名字不太记得清楚,如果你要编译的话,自己每一项看看说明)
Preemptible Kernel一定是要选择的,几乎所有介绍2.6内核的文章都会提到此项,这就是可抢先式内核。也就是说被一些优先级很高的程序可以先与一些低优先级的程 序执行,即使这些程序是在核心态下执行,从而减少内核潜伏期,提高系统的响应。这个特性可以提高桌面系统、实时系统的性能.
还有什么ACPI和APM的电源管理,依照你机器的新旧选择也不一样.
3:kernel debuging 最好都不要了,个人觉得那些都不太有用.而且有个4K stack 编译进去后据说会装不了最新的NVIDIA的驱动.
........看你的造化了.反正我是编译了六次才通过了,现在正在2.6.7内核的测试期.^_^
4.loopback设备要编译到kernel里
否则会ALL of your loopback devices are in use
5.显卡的驱动要编到模块里.因为以后要安装驱动,升级模块.
=========================================
我最后做出来可以运行的内核大小是1.3M
用
#lsmod 来看modules . 总共<10M
声卡.显卡.光;软;硬驱.都正常驱动.
补充一点:
ALSA的声卡驱动的确不一般.音质???呵呵.如果你编译好了自己就知道了.
NVIDIA官网 的显卡驱动(我用的是NVIDIA-drive-3356o.pkg.run)也真是牛,就是在LINUX下的安装稍微麻烦点,在README里边没看到支持2.6的内核,但是偶装了还是可以跑,现在好象有3.6**的了?).
偶TNT2M64/32M的显卡装了WINDOWS最新的驱动后,在 XP下跑红警都慢,98下CS还卡儿吧唧的!
在LINUX下玩RUNE和那个什么HERH???效果牛的不的了!chrom??和"滑雪的企鹅"更是不在话下,所以偶更加确定以下事实:
"M$就是会:w:w:w:w.什么DERECT7.8.9,的确在技术含量上还真是没GL的效果好.尽管拿点钱来搞什么投资,还弄个什么这个那个渲染比 赛,不外乎要求便是,你的用DIXT9.0~~~~WHICH IS ME --------M$的技术来做,蠢蛋都知道什么意思,
掏钱买个这个奖项那个奖项.不外乎就是想:多给自己树立点形象,树立一点技术先进,科技含量高的形象.
"有传闻说,微软曾经在对支持超线程的CPU按一个CPU还是按两个CPU收取授权费(license)的问题上拿不定主意,.........."
呵呵,哈哈.
注:
(游戏的名字都记得不太清楚,偶习惯的shell是bash ,而且也就懂bash,所以命令偶一般只记第一个字母,其他的都是交给TAB键了,,呵呵,谁叫我是个懒人呢.而且记性还不好,自己的生日都记不住.总是 在过生日的时候吃完了方便面,接到老爸的电话提醒,于是出于补偿的扭曲心态,喝酒喝到拿铁轨当楼梯).)
===============================================
呵呵:这也算是偶的大做了.花了1个小时来敲,期间拉肚子"三顾茅庐"
-------PHPMAN原创,转贴请说明出处.
偶是菜鸟中的菜鸟,所以写错了也不脸红,所以如果您发现有任何操作不正确的地方,欢迎来信和我交流.mailto : daomima163@163.com
关于2.6内核的详细资料,请参考:<>一文 .
bitstone2004-07-27, 00:18RED HAT Fedora Core 2 滴内核不是已经到2.6了
您的内核升级???????
我用的RH9,我觉的挺好的,偶也购到一套正版滴RED HAT Fedora Core 2装上后感觉不是很好耶 bingowh2004-07-30, 15:43谢谢楼主的详细讲解,我也编译成功了,不过是把Redhat9.0的内核升级到V2.6.6版
不过现在出现了点问题,我进入2.6.6版下,我运行rpm包的时候,总是出错,提示:
rpmdb:unable to join the environment
error:db4 error(11) from dbenv->open:资源暂时不可用
error:cannot open Packages index using db3 - 资源暂时不可用(11)
error:cannot open Packages database in /var/lib/rpm
这是怎么回事呢?朋友们能给我个解答吗?
谢谢! bingowh2004-07-30, 17:30这个问题解决了,就是在rpm前面加上
LD_ASSUME_KERNEL=2.2.5 这句语句,就是类似于
LD_ASSUME_KERNEL=2.2.5 rpm -ivh aa.rpm
但不知道到底是什么意思? hxj652004-08-02, 21:59升级到2.67后,启动长时间黑屏,硬盘灯长闪! yangfan1352004-08-03, 10:49如果启动不了,或者长时间黑屏,请试着把grub里关于2.6.*的title的root=LABEL=/改为root/LABEL=/,或者改为root=/dev/hda*。 有个网友2005-03-30, 22:28 为什么我那么命苦,我编译2.6.11到最后最后就出错,在/boot下没有生成 initrd-2.6.7.img文件
阅读(399) | 评论(0) | 转发(0) |