下载源代码

Linux内核总是不断发展的,最新的内核Kernel2.6.0对USB2.0予以正式的支持,连同内核模块文档后缀最显著的一个变化由*.o到*.ko等等,我们能够从www.kernel.org下载到tarball的源代码包。

前期准备

大家都知道的要先升级“module-init-tools“软件包,否则的话,等您安装内核模块文档的时候,系统会提示您:Warning: you may need to install module-init-tools See http://www.codemonkey.org.uk/post-h...4.21-23.src.rpm。

进入下载目录下并安装:

  #rpm -e --nodeps modutils (强行卸载原有的modutilsRPM包)  

            

#rpm -ivh modutils-2.4.21-23.src.rpm

(把源代码包安装到了 /usr/src/redhat目录下) 

 #cd /usr/src/redhat/SPECS (进入规范文档目录下)

  #rpmbuild --bb modutils.spec (生成二进制的RPM包)

  #cd ../RPMS/i386 (转入刚生成的二进制的RPM包所在位置) 

 #rpm -ivh modutils*.rpm (刚生成两个[modutils-2.4.21-23.i386.rpm

和modutils-debuginfo-2.4.21.23.i386.rpm]二进制的RPM包,一起安装吧!)

因为是在RedHat9.0的平台,RedHat的用户可能还会碰到一些麻烦,我会慢慢说的,除了要以上的升级之外,更有个文档(/etc/rc.d/rc.sysinit)可能有缺陷,因为/proc/ksyms文档在新内核(Kernel2.6.0)中已没有了,打开文档命令如下:

  #vi /etc/rc.d/rc.sysinit  

            

找到:  if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null

&& [ -f /proc/ksyms ]; then  

USEMODULES=y  fi 

 替换成:  if ! LC_ALL=C

grep -iq nomodules /proc/cmdline 2>/dev/null;

then  USEMODULES=y  fi

也就是把“&& [ -f /proc/ksyms ]”去掉,保存文档(操作之前最好做备份以免删错,这个文档是系统初始脚本,重要的很),这样子内核才能加载模块,当然能启动iptable防火墙了,否则防火墙在新内核中启动时红色的“failed“很醒目。(请在新内核中核查/proc/sys/kernel/modprobe中的内容是不是: /sbin/modprobe,也可手工注入指令:#echo "/sbin/modprobe" > /proc/sys/kernel/modprobe)。下面开始构造新内核。

一、准备源代码

1、下载到tarball包之后,将内核tarball包复制到/usr/src目录下,假定包在当前目录中,运行以下命令:

#cp linux-2.6.0.tar.gz /usr/src

2、转到/usr/src目录并解开tarball包。

  #cd /usr/src  #tar xvzf linux-2.6.0.tar.gz

3、假如您还下载了补丁包,则打上补丁,您也能够运行scripts/patch-kernel脚本文档自动打上补丁(准备好补丁包)或 #zcat patch-2.6.0.gz|patch -p1。

二、定制内核

定制内核是门很大的学问,需要大量的硬件知识,特别是2.6.0的内核,假如您从 2.4.N配置文档装载进去的,的确,很多人碰到过麻烦。我是重新配置文档(X窗口服务器进行),配制内核之前请清理源代码树,假如还没有进入 /usr/src/linux-2.6.0目录,请进入此目录,命令如下:

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!