当前位置:Linux教程 - Linux资讯 - 创建红帽Linux模组化的内核

创建红帽Linux模组化的内核

只有红帽子Linux/INTEL和LINUX/SPARC支持模组化内核;红帽子LINIX/ALPHA的用户必须建立一个单一的系统内核为获得模组化内核所带来的强大功能和可扩展性,下面将提供给您这方面的知识。我们这里假设您已经安装了核心的头文件和源代码,并假设所有的命令均在/usr/src/linux 目录下执行。

重新建立一个核心需要将源代码树置于一种完整和一致的状态。因此,我们推荐您首先执行命令make mrproper。它将清除目录下所有配置文件和先前生成核心时产生的中间文件。现在,您需要创建一个配置文件以决定将要生成的核心要包括哪些内容。根据您的硬件和个人选择不同有三种方法来配置核心。

make config 这是一个交互式的程序。由它来提供各种功能,由您自己回答 Y(要),N(不要),或则M(要,但不连入核心,而以模组话的形式包含)。

make menUConfig 这是一个彩色用户界面,菜单驱动的程序。各种功能部件以菜单的形式分类列出,就象安装红帽子LINUX时一样,您选择需要包含的部件,也就是针对每个条目在 Y(要),N(不要),或者M(以模组的形式加入)的位置点选。

make xconfig 这是一个X视窗程序。功能部件分层列于菜单中,用鼠标来进行选择,选择方法同上。

请注意:为了能够使用kerneld和核心模组,您必须在配置时对“kerneld support”和“module version(CONFIG_MODVERSIONS)support”选择Yes.

请注意:如果您是在一台使用Intel兼容CPU芯片(例如由Cyrix, AMD生产的)的机器上建立核心,我们推荐您在“Processor type of”上选择386。

如果您想使用先前按照以上方法创建的配置文件(/usr/src/linux/.config)来建立核心,那么您就不要执行make mrproper 和 make config命令而直接执行makedep再接着执行 make clean为最后编译来进行文件树的配置。

下一步要讲述源代码的编译,生成最终可以用以boot的核心。下面的方法将是在遇到不当时最易恢复的方法。如果您对其它的方法感兴趣,可以在Kernel-HOWTO或/usr/src/linux目录下的Makefile中找到详细的信息。

用make boot命令建立核心 用make modules命令建立您配置的模组 将老的模组移到其它地方: rm -rf /lib/modules/2.0.29-old mv /lib/modules/2.0.29 /lib/modules/2.0.29-old当然,如果您已经升级了核心,将2.0.29替换为您正在使用的就行。安装新模组(即便您没有建立任何模组),使用命令? make modules_install.

如果您有一块SCSI卡而且想以模组化的驱动程序访问它,就要建立一个新的initrd映相文件。为了防止新建核心中可能出现的错误,应当准备一个冗余的内核以备。将一个核心包括在LILO的选单中十分简单。您只需将/boot目录下的原来的核心文件重新命名,把新生成的核心拷贝到/boot下,在/etc/lilo.conf中加入相应的几行信息,再执行/sbin/lilo 就可以了。下面是随红帽子LINUX而带的默认的/etc/lilo.conf:

boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz label=linux root=/dev/hda1 read-only现在您需要更新/etc/lilo.conf。如果您创建了新的initrd映相,就必须告诉LILO去使用它。在这个例子中我们在/etc/lilo.conf后面添加了四行以表示新增的可以boot的核心。我们将/boot/vmlinuz重新命名为/boot/vmlinuz.old并改变其标签为old。 我们同样也为新核心增加了initrd一行:

boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=100 image=/boot/vmlinuz label=linux initrd=/boot/initrd root=/dev/hda1 read-only image=/boot/vmlinuz.old label=old root=/dev/hda1 read-only现在,在系统boot时,当在LILO boot:您按下了[TAB]键,就会列出两项选择:

LILO boot: linux old如要boot新建的核心(linux)就直接敲[ENTER],或等到LILO超时。而如果您要boot 老的核心(old),就需键入old并回车。下面是一个简单的总结:

mv /boot/vmlinuz /boot/vmlinuz.old cp /usr/src/linux/arch/i386/boot/zImage /boot/vmlinuz edit /etc/lilo.conf run /sbin/lilo 您现在可以用新创建的核心boot并注意观察屏幕信息看您的硬件是否被检测到。

(出处:http://www.sheup.com)