升级到内核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应该不用改,我没改也能用。
一切就是这样的,有什么问题以及心得体会还可以和我联系,其实玩内核的乐趣并不局限于内核的升级,更在于对内核内部的配置,但最大的乐趣还是在于内核源代码。内核升级的成功只是一个开始,祝大家在今后的工作中快乐。 为什么我的ML1.2中的/usr/src只有debug和mBuild这两个文件夹,没有linux的快捷键?这是否正常? 你可能没装内核源代码,在rh安装时不选上内核开发,基本上就是你那样。 我编译配置lilo都做好了,在lilo选项上也能看到。可是一进去刚显示正在加载内核画面就定住了,所以想问问是怎么一回事 用RHE3编译2.6.7内核.......强,服就1个字 我在编译的时候老是出现过大的现象, 系统要求我改用make bzImage而不是make zImage. 说是有个640K的限制, 但我将基本上能不要或能改成模块的都改了, 还是大于那个限制. 问一下"jfsutils"和“xfsprogs”这两 个软件我在编译时出现了需要“UUID.H”这个文件,哪里有呢? 问一下"jfsutils"和“xfsprogs”这两 个软件我在编译时出现了需要“UUID.H”这个文件,哪里有呢? 我在编译的时候老是出现过大的现象, 系统要求我改用make bzImage而不是make zImage. 说是有个640K的限制, 但我将基本上能不要或能改成模块的都改了, 还是大于那个限制.
make bzImage也会大于640k的,不用理他,只管用就行了。我编译的内核很少小于1M的 uuid.h 可以在你内核源代码目录下的include下的一个什么目录里找到(具体我忘了,搜吧) 唉,找是找到了,可是不知道放到哪个目录里面啊,请楼主指教啊,如果光这个不装kernel应该没问题吧 as3编译make install 后提示/drivers/里的文件CRC错误!!!! as3编译运行make modules 出错
Building modules, stage 2.
MODPOST
*** Warning: "request_firmware" undefined!
*** Warning: "release_firmware" undefined!
唉,找是找到了,可是不知道放到哪个目录里面啊,请楼主指教啊,如果光这个不装kernel应该没问题吧
你可以改一下configure把路径改成那个位置,我想
as3编译运行make modules 出错
Building modules, stage 2.
MODPOST
*** Warning: "request_firmware" undefined!
*** Warning: "release_firmware" undefined!
肯能changes里提到的软件你没装全
页:
[1]
2