KurtC 发表于 2004-7-8 11:53:48

升级到内核2.6.7

:wink: Linux-2.6.7

   我是在第一时间得到2.6.7内核的,由于没空,拖了3个星期才把它处理了。今天写这篇文章是想说说对付这新内核的方法。

   我装的是Redhat Enterprise Linux AS 3,本想用更大众化的Redhat9来编译新内核,可惜我把盘丢了,不过它们两个差得不算很多,所以就将就一下吧。

1 下载内核,去www.kernel.org下就行,挺快的。(我下的是linux-2.6.7.tar.bz2,33MB,patch应该也行)

2 解压缩,命令tar –jxvf linux-2.6.7.tar.bz2(如果你下的是linux-2.6.7.tar.gz就用命令tar –zxvf linux-2.6.7.tar.gz)但最好把解出来的内核放到/usr/src目录中,这是个好习惯。(以下我们假设内核被放在/usr/src/linux-2.6.7中)

3 去看看/usr/src/linux-2.6.7/Documentation/Changes文件,这个文件给你提供一个要安装2.6.7内核所需要的最基本的软件的清单。考虑到有些朋友和英文的感情不深,我最好还是解释一下。首先你需要具备以下的软件环境:

软件名                  最低版本号   获得该软件当前版本号的命令
oGnu C               2.95.3       # gcc --version
oGnu make            3.79.1       # make --version
obinutils            2.12         # ld -v
outil-linux            2.10o      # fdformat --version
omodule-init-tools   0.9.10       # depmod -V
oe2fsprogs             1.29         # tune2fs
ojfsutils            1.1.3      # fsck.jfs -V
oreiserfsprogs         3.6.3      # reiserfsck -V 2>&1|grep reiserfsprogs
oxfsprogs            2.6.0      # xfs_db -V
opcmcia-cs             3.1.21       # cardmgr -V
oquota-tools         3.09         # quota -V
oPPP                   2.4.0      # pppd --version
oisdn4k-utils          3.1pre1      # isdnctrl 2>&1|grep version
onfs-utils             1.0.5      # showmount --version
oprocps                3.2.0      # ps --version
ooprofile            0.5.3      # oprofiled –version

我建议你一一核实。即使Redhat的几款新Linux基本具备上述条件(在我这jfsutils的版本是1.1.2,procps版本是2.0.13,reiserfsprogs用所给的方法不能获得版本号,xfsprogs没有被安装)。至于module-init-tools几乎没人具备,所以最好去Changes里给出的网址ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/下载,最新的版本应该是3.1(我用的就是)。这些软件的安装大同小异都是。

       # tar –zxvf XXXX.tar.gz 或 tar –jxvf XXXX.tar.bz2 (取决于是以gz结尾还是以bz2结尾)
       # cd XXXX (进入刚才解压时生成的目录)
       # ./configure
       # make
       # make install

但具体还是要看里面的README没,对于module-init-tools最好走如下操作

       # configure --prefix=/
       # make moveold
       # make all install
       # ./generate-modprobe.conf /etc/modprobe.conf
       (我图快,没用这方法)

PS procps 在Changes里写得的网址上没找到,我在http://distro.ibiblio.org/pub/linux/distributions/sorcerer/sources/procps/下的。版本是3.2.1。

4 配置你的内核,进入/usr/src/linux-2.6.7,键入make menuconfig命令进入配置界面(新的xconfig基于QT库,gconfig还得用高版本的GTK+,都挺麻烦,而且还不稳定,所以还是用menuconfig吧)。

有为仁兄曾提过几点建议:
o 关于"Loadable Module support"选项, 一定要选上"Module unloading"和"Automatic kernel moduleloading"这两个选项.
o 关于"Processor type and features"选项, 一定要选上"Preemptible Kernel"选项, 这是2.6.x内核优于2.4.x内核的重要原因之一.
o 关于"Block Devices"的配置, 一定要选上对loopback和ramdisk的支持.
o 关于"Multi-device support(RAID and LVM)", 要选上"device mapper".
o 关于"Input device support", 记得要选上"Keyboards"和"Mice"的支持.
o 关于"Graphics support", 要选上对frame buffer的支持.
o 关于ALSA, 要选上"OSS API emulation"选项. OSS可以不用了.
o 关于USB, 能选的都选上吧

我再补充一点:
* 如果你的Linux在ext3格式分区上,最好把ext3编译进内核,否则会在加载ext3模块遇到麻烦。

还有人说:"intel的主板集成显卡,8139网卡,USB口鼠标最好也直接编译进内核。"(我不具备这些条件)

最重要的是配置完了别忘了存:mrgreen:

5 编译安装是最花时间的工作

      # make
      # make modules
      # make modules_install
      # make install

如果没什么错误安装完了可以直接重启。重启完了出的错误大都是模块问题,懒省事的话,就把出错的模块编进内核,因为下一次make会快得多。
   PS 我的AMD Duron 750 用了一顿晚饭的时间才敲定。在这个时间里你可以烧一炷香,顺便祈祷一下。(开个玩笑)

6 有人说需要改grub.conf,2.6.7应该不用改,我没改也能用。

   一切就是这样的,有什么问题以及心得体会还可以和我联系,其实玩内核的乐趣并不局限于内核的升级,更在于对内核内部的配置,但最大的乐趣还是在于内核源代码。内核升级的成功只是一个开始,祝大家在今后的工作中快乐。

cjx3501 发表于 2004-7-11 10:20:20

为什么我的ML1.2中的/usr/src只有debug和mBuild这两个文件夹,没有linux的快捷键?这是否正常?

KurtC 发表于 2004-7-11 11:36:04

你可能没装内核源代码,在rh安装时不选上内核开发,基本上就是你那样。

linuxgreenhand 发表于 2004-7-14 15:38:59

我编译配置lilo都做好了,在lilo选项上也能看到。可是一进去刚显示正在加载内核画面就定住了,所以想问问是怎么一回事

yourfeng 发表于 2004-7-14 20:40:39

用RHE3编译2.6.7内核.......强,服就1个字

CNOOC 发表于 2004-7-15 06:04:03

我在编译的时候老是出现过大的现象, 系统要求我改用make bzImage而不是make zImage. 说是有个640K的限制, 但我将基本上能不要或能改成模块的都改了, 还是大于那个限制.

Maya-er 发表于 2004-7-19 22:45:46

问一下"jfsutils"和“xfsprogs”这两 个软件我在编译时出现了需要“UUID.H”这个文件,哪里有呢?

Maya-er 发表于 2004-7-19 22:46:09

问一下"jfsutils"和“xfsprogs”这两 个软件我在编译时出现了需要“UUID.H”这个文件,哪里有呢?

cnhnln 发表于 2004-7-20 22:03:32

我在编译的时候老是出现过大的现象, 系统要求我改用make bzImage而不是make zImage. 说是有个640K的限制, 但我将基本上能不要或能改成模块的都改了, 还是大于那个限制.
make bzImage也会大于640k的,不用理他,只管用就行了。我编译的内核很少小于1M的

KurtC 发表于 2004-7-23 16:26:21

uuid.h 可以在你内核源代码目录下的include下的一个什么目录里找到(具体我忘了,搜吧)

watercloset 发表于 2004-7-24 17:16:30

唉,找是找到了,可是不知道放到哪个目录里面啊,请楼主指教啊,如果光这个不装kernel应该没问题吧

2001xk 发表于 2004-7-24 21:41:09

as3编译make install 后提示/drivers/里的文件CRC错误!!!!

2001xk 发表于 2004-7-24 22:36:19

as3编译运行make modules 出错
Building modules, stage 2.
MODPOST
*** Warning: "request_firmware" undefined!
*** Warning: "release_firmware" undefined!

KurtC 发表于 2004-8-3 14:27:33


唉,找是找到了,可是不知道放到哪个目录里面啊,请楼主指教啊,如果光这个不装kernel应该没问题吧


你可以改一下configure把路径改成那个位置,我想

KurtC 发表于 2004-8-3 14:29:20


as3编译运行make modules 出错
Building modules, stage 2.
MODPOST
*** Warning: "request_firmware" undefined!
*** Warning: "release_firmware" undefined!


肯能changes里提到的软件你没装全
页: [1] 2
查看完整版本: 升级到内核2.6.7