linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 内核研究 >
栏目导栏
资料搜索
热门文章
·linux-2.6内核升级文档
·Linux源代码的注释
·linux2.6内核编译方法详述
·Linux操作系统内核编译详解
·Linux内核结构详解
·Linux配置与编译内核
·定时器
·Linux内核升级全攻略
·FC5(Fedora Core5)下编译内核总
·Ubuntu 6.06 dapper 内核编译初
·Linux 内核编译详解
·Linux内核管理基础知识概述
·Linux2.4升级到2.6内核升级指南
·第八章 设备驱动
·如何编译linux内核
最新文章
·Linux内核bootsplash功能的实现
·Linux内核2.6.25全新发布加入众
·Debian Linux系统编译内核标准
·Linux2.4内核和2.6内核对Initr
·2.6.24内核编译 initrd-2.6.24
·Qtopia应用程序与Linux内核数据
·Linux 2.6内核中sysfs文件系统
·Linux2.6内核驱动移植参考
·Andrew Morton:Linux内核的执法
·Fedora 8 Linux系统的内核配置
·Kernel中的irq.c函数
·Linux核心出现权限扩张及记忆体
·Linux 2.6本地权限提升漏洞
·结合Linux系统内核源码理解SYN
·关于Linux 内核中五个主要子系
Google
 
创建红帽Linux模组化的内核
[ 作者:  加入时间:2006-10-22 20:11:42  来自:网络世界 ]
只有红帽子LINUX/INTEL和LINUX/SPARC支持模组化内核;红帽子LINIX/ALPHA的用户必须建立一个单一的系统内核为获得模组化内核所带来的强大功能和可扩展性,下面将提供给您这方面的知识。我们这里假设您已经安装了核心的头文件和源代码,并假设所有的命令均在/usr/src/linux 目录下执行。Tn7Linux联盟
Tn7Linux联盟
重新建立一个核心需要将源代码树置于一种完整和一致的状态。因此,我们推荐您首先执行命令make mrproper。它将清除目录下所有配置文件和先前生成核心时产生的中间文件。现在,您需要创建一个配置文件以决定将要生成的核心要包括哪些内容。根据您的硬件和个人选择不同有三种方法来配置核心。Tn7Linux联盟
Tn7Linux联盟
make config 这是一个交互式的程序。由它来提供各种功能,由您自己回答 Y(要),N(不要),或则M(要,但不连入核心,而以模组话的形式包含)。Tn7Linux联盟
Tn7Linux联盟
make menuconfig 这是一个彩色用户界面,菜单驱动的程序。各种功能部件以菜单的形式分类列出,就象安装红帽子LINUX时一样,您选择需要包含的部件,也就是针对每个条目在 Y(要),N(不要),或者M(以模组的形式加入)的位置点选。Tn7Linux联盟
Tn7Linux联盟
make xconfig 这是一个X视窗程序。功能部件分层列于菜单中,用鼠标来进行选择,选择方法同上。Tn7Linux联盟
Tn7Linux联盟
请注意:为了能够使用kerneld和核心模组,您必须在配置时对“kerneld support”和“module version(CONFIG_MODVERSIONS)support”选择Yes.Tn7Linux联盟
Tn7Linux联盟
请注意:如果您是在一台使用Intel兼容CPU芯片(例如由Cyrix, AMD生产的)的机器上建立核心,我们推荐您在“Processor type of”上选择386。Tn7Linux联盟
Tn7Linux联盟
如果您想使用先前按照以上方法创建的配置文件(/usr/src/linux/.config)来建立核心,那么您就不要执行make mrproper 和 make config命令而直接执行makedep再接着执行 make clean为最后编译来进行文件树的配置。Tn7Linux联盟
Tn7Linux联盟
下一步要讲述源代码的编译,生成最终可以用以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. Tn7Linux联盟
Tn7Linux联盟
如果您有一块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并注意观察屏幕信息看您的硬件是否被检测到。Tn7Linux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息