红联Linux门户
Linux帮助

2.6.x内核编译心得

发布时间:2007-03-23 15:41:10来源:红联作者:Worktogether
  供参考。

  步骤:

  下载原代码到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 (建立编译清单,注:第一次编译不能用xconfig)
  ......

  复杂的过程,我花了半个小时.成千上万个细节,一个都 不能出错,不清楚的地方可以参考默认的设置(默认太多,内核会变大,编译花费时间加长,当然,如果什么都默认的话,编译内核也就没有任何意义了),此处生成文件隐藏文件.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.显卡的驱动要编到模块里.因为以后要安装驱动,升级模块.

  我的心得:要装杀毒软件的就要在security option中把capbilities编译进模块,不可以选Y将其编译进内核。另外每次编译内核后驱动要重装,对老内核进行重新编译声卡驱动好像不用重装,显卡还是要装。
文章评论

共有 0 条评论