学习网考试学习资料

Gzu521.com

走向Linux高手之路---教你编译内核(1)

LINUX教程   点击:次   发布时间:2007-2-25   【字体: 】   来源:blog
贵州学习网—属于你的学习中心

下载源代码

LINUX内核总是不断发展的,最新的内核kernel2.6.0对usb2.0予以正式的支持,以及内核模块文件后缀最显著的一个变化由*.o到*.ko等等,我们可以从www.kernel.org下载到tarball的源代码包。 f }%w\q[@ac"5G^/h [ 本 资 料 来 源 于 贵 州 学 习 网 电脑课堂LINUX教程 http://Www.gzU521.com ] f }%w\q[@ac"5G^/h

前期准备

大家都知道的要先升级“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,也可手工注入指令:#e cho "/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页:第 【1】 【2】

责任编辑:gzu521

电脑课堂分类
Windows 2000教程
Windows XP教程
Windows 2003教程
Windows Vista教程
LINUX教程
软件教学
办公软件
硬件DIY
分类推荐信息
更多...
大类最新文章
更多...