源代码
Linux内核总是不断发展最新内核Kernel2.6.0对USB2.0予以正式支持以及内核模块文件后缀最显著个变化由*.o到*.ko等等我们可以从www.kernel.org到tarball源代码包
前期准备
大家都知道要先升级“module-init-tools“软件Software包否则话等你安装内核模块文件时候系统会提示你:Warning: you may need to module-init-tools See http://www.codemonkey.org.uk/post-h...4.21-23.src.rpm
进入目录下并安装:
(把源代码包安装到了 /usr/src/redhat目录下)
#cd /usr/src/redhat/SPECS (进入规范标准文件目录下)
#rpmbuild --bb modutils.spec (生成 2进制RPM包)
#cd ../RPMS/i386 (转入刚生成 2进制RPM包所在位置)
#rpm -ivh modutils*.rpm (刚生成两个[modutils-2.4.21-23.i386.rpm
和modutils-debuginfo-2.4.21.23.i386.rpm] 2进制RPM包起安装吧!)
&& [ -f /proc/ksyms ]; then
USEMODULES=y fi
替换成: ! LC_ALL=C
grep -iq nomodules /proc/cmdline 2>/dev/null;
then USEMODULES=y fi
、准备源代码
1、下载到tarball包的后将内核tarball包复制到/usr/src目录下假定包在当前目录中运行以下命令:
#cp -2.6.0.tar.gz /usr/src
2、转到/usr/src目录并解开tarball包
2、定制内核
定制内核是门很大学问需要大量硬件知识特别是2.6.0内核如果你从 2.4.N配置文件装载进去确很多人遇到过麻烦我是重新配置文件(X窗口进行)配制内核的前请清理源代码树如果还没有进入 /usr/src/linux-2.6.0目录请进入此目录命令如下:
或make config 或make xconfig(需要Qt开发库支持)
定制好内核配置文件(/usr/src/linux- 2.6.0/.config)的后激动时刻到来了编译内核及模块#make (此命令已完成make bzImage及make modules工作),bzImage内核文件在arch/i386/boot目录中你CPU区别内核文件存放位置也区别我是Intel CPU
注意:我在RedHat7.2平台时曾出现无法编译出错信息出错信息如下:
*** [usr/initramfs_data.o] Error 1 make:
*** [usr] Error 2
4、安装模块及内核文件
#make modules_
以上这个命令可以分解成make modules_和make make modules_安装内核模块到/lib/modules/2.6.0下make 完成mkinitrd命令及内核(bzImage)和.map拷贝请查看/boot目录文件名是有区别如是GRUB 引导器make 命令已帮你自动修改了引导选项对于LILO则要手工修改重写引导记录
介绍说明:make modules_ 这个命令在我1.6GHz,128M机器上只跑了 3十几秒很快哦
5、后记
最后工作就是重启系统(#shutdown -r now),检验下你劳动成果吧差点忘了还有点可能对你很重要进入新内核的后我发现rpm命令不能用了原来这是RPM个Bug特别是对于RH9用户请打开/etc/profile文件命令如下:
then export LD_ASSUME_KERNEL=2.2.5 fi
使用新内核可能出现问题及对策:
1、新内核根本起不来解决思路方法:重新配置内核(学问挺大)也许还根引导记录有关(很少了)
2、新内核模块无法加载会导致很多问题比如了防火墙没法工作了mount不上光盘和vfat及ntfs文件系统其解决思路方法:升级module- init-tools软件Software包(我是modutils-2.4.21- 23.src.rpm包)RedHat用户可能还要修改/etc/rc.d/rc.sysinit文件
3、RedHat用户rpm命令不能使用解决办法:请把变量在全局配置文件中声明
最新评论