走向Linux系统高手之路 内核编译过程解析

豆豆网   技术应用频道   2007年09月07日  【字号: 收藏本文

内容摘要:Linux内核总是不断发展的,最新的内核Kernel2.6.0对USB2.0予以正式的支持,以及内核模块文件后缀最显著的一个变化由*.o到*.ko等等

  也就是把“&& [ -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目录,请进入此目录,命令如下:

  #make mrproper (刚解开的tarball包不需此步骤) 
#make gconfig (需要Gtk开发库的支持)  
或make config  或make xconfig(需要Qt开发库的支持)

  注意:如果你是ext3文件系统,则在定制内核配置文件时把对Ext3、Ext2文件的支持直接编译进内核,否则,等你启用新内核时机器就会当掉,出错信息如下:kernel panic : no init found ,try passing init = option to kernel......或者是:kernel panic:VFS:Unable to mount root fs on unknown-block(0,0),我一开始不知道,编译了好几次,系统总给我冷板凳坐,最后把对Ext3、Ext2文件系统的支持直接编译进内核,才解决此问题,还有把对“Module unloading“选项也选上,否则的话,你在新内核环境下无法卸载内核模块(rmmod命令不能用)。

责编:豆豆技术应用

正在加载评论...