Chinaunix首页 | 论坛 | 博客
  • 博客访问: 386999
  • 博文数量: 109
  • 博客积分: 5045
  • 博客等级: 大校
  • 技术积分: 1199
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-08 14:47
文章分类

全部博文(109)

文章存档

2017年(1)

2012年(5)

2011年(10)

2010年(1)

2009年(13)

2008年(29)

2007年(6)

2006年(44)

我的朋友

分类:

2006-05-09 11:26:16

熬了三个晚上,终于完成了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) |
给主人留下些什么吧!~~