|
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内核所需要的最基本的软件的清单。考虑到有些朋友和英文的感情不深,我最好还是解释一下。首先你需要具备以下的软件环境:
软件名 最低版本号 获得该软件当前版本号的命令
o Gnu C 2.95.3 # gcc --version
o Gnu make 3.79.1 # make --version
o binutils 2.12 # ld -v
o util-linux 2.10o # fdformat --version
o module-init-tools 0.9.10 # depmod -V
o e2fsprogs 1.29 # tune2fs
o jfsutils 1.1.3 # fsck.jfs -V
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
o xfsprogs 2.6.0 # xfs_db -V
o pcmcia-cs 3.1.21 # cardmgr -V
o quota-tools 3.09 # quota -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o nfs-utils 1.0.5 # showmount --version
o procps 3.2.0 # ps --version
o oprofile 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 module loading"这两个选项.
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口鼠标最好也直接编译进内核。"(我不具备这些条件)
最重要的是配置完了别忘了存
5 编译安装是最花时间的工作
# make
# make modules
# make modules_install
# make install
如果没什么错误安装完了可以直接重启。重启完了出的错误大都是模块问题,懒省事的话,就把出错的模块编进内核,因为下一次make会快得多。
PS 我的AMD Duron 750 用了一顿晚饭的时间才敲定。在这个时间里你可以烧一炷香,顺便祈祷一下。(开个玩笑)
6 有人说需要改grub.conf,2.6.7应该不用改,我没改也能用。
一切就是这样的,有什么问题以及心得体会还可以和我联系,其实玩内核的乐趣并不局限于内核的升级,更在于对内核内部的配置,但最大的乐趣还是在于内核源代码。内核升级的成功只是一个开始,祝大家在今后的工作中快乐。 |
|