⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s1-custom-kernel-modularized.html

📁 Redhat9中文官方文档, 初学者必备
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>建构内核</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Red Hat Linux 9"HREF="index.html"><LINKREL="UP"TITLE="建构定制内核"HREF="ch-custom-kernel.html"><LINKREL="PREVIOUS"TITLE="建构定制内核"HREF="ch-custom-kernel.html"><LINKREL="NEXT"TITLE="建构单一化内核"HREF="s1-custom-kernel-monolithic.html"><LINKREL="STYLESHEET"TYPE="text/css"HREF="rhdocs-man.css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=gb2312"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Red Hat Linux 9: Red Hat Linux 定制指南</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="ch-custom-kernel.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">附录 A. 建构定制内核</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="s1-custom-kernel-monolithic.html"ACCESSKEY="N">前进</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="S1-CUSTOM-KERNEL-MODULARIZED"></A>A.2. 建构内核</H1><P>	本节的说明应用于建构定制的模块化内核。要建构单一化内核,请参阅<AHREF="s1-custom-kernel-monolithic.html">第 A.3 节</A>来获得关于建构和安装单一化内核的各方面的解释。      </P><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="100%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/note.png"HSPACE="5"ALT="注记"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>注记</B></TH></TR><TR><TD>&nbsp;</TD><TDALIGN="LEFT"VALIGN="TOP"><P>	  这个例子使用 2.4.20-2.47.1 作为内核版本(内核版本可能会有所不同)。要判定内核版本,键入	 <TTCLASS="COMMAND">uname -r</TT> 命令,然后用返回的内核版本来代替 2.4.20-2.47.1。	</P></TD></TR></TABLE></DIV><P>	要建构用于 x86 体系的内核,遵循以下步骤(已根用户身份执行):      </P><P></P><OLTYPE="1"><LI><P>打开一个 shell 提示,改换到目录	    <TTCLASS="FILENAME">/usr/src/linux-2.4</TT> 下。从此以后的命令都必须在该目录下执行。	  </P></LI><LI><P>你应该明确建构内核所使用的源码树的状况,这一点至关重要。因此,建议你从命令	    <TTCLASS="COMMAND">make mrproper</TT> 开始着手。它会删除所有的配置文件,以及散落在源码树周围的从前建构的版本遗迹。如果你已有一个存在的配置文件	    <TTCLASS="FILENAME">/usr/src/linux-2.4/.config</TT>,在运行这项命令前把它备份到另一个目录中,命令运行后再把它复制回来。	  </P></LI><LI><P>推荐你从默认 Red Hat Linux	    内核的配置着手。其步骤是,把系统体系的配置文件从	    <TTCLASS="FILENAME">/usr/src/linux-2.4/configs/</TT> 目录中复制到	    <TTCLASS="FILENAME">/usr/src/linux-2.4/.config</TT> 目录中。如果系统的内存大于 4GB,复制包含	     <TTCLASS="COMPUTEROUTPUT">bigmem</TT> 的文件。	  </P></LI><LI><P>下一步,定制设置。如果 X 窗口系统可用,建议的方法是使用	  <TTCLASS="COMMAND">make	    xconfig</TT> 命令来运行 <BCLASS="APPLICATION">Linux Kernel Configuration</B>。	  </P><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="90%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/note.png"HSPACE="5"ALT="注记"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>注记</B></TH></TR><TR><TD>&nbsp;</TD><TDALIGN="LEFT"VALIGN="TOP"><P>要使用 <TTCLASS="COMMAND">make		xconfig</TT> 命令所启动的图形化工具,你必须安装提供了		<TTCLASS="COMMAND">wish</TT> 命令的 <TTCLASS="COMMAND">tk</TT> 软件包。关于安装 RPM 软件包的详情,请参阅<AHREF="part-pkg-management.html">第 V 部分</A>。	    </P></TD></TR></TABLE></DIV><DIVCLASS="FIGURE"><ANAME="FIG-MAKE-XCONFIG"></A><DIVCLASS="MEDIAOBJECT"><P><IMGSRC="./figs/buildkernel/make-xconfig.png"></P></DIV><P><B>图 A-1. 配置内核组件的类别</B></P></DIV><P>如<AHREF="s1-custom-kernel-modularized.html#FIG-MAKE-XCONFIG">图 A-1</A>所示,点击一个类别来选择它。在每个类别中包含的是组件。选择组件旁的	  <BCLASS="GUILABEL">y</B>(是)、<BCLASS="GUILABEL">m</B>(模块)、或	  <BCLASS="GUILABEL">n</B>(否)来把它编译入内核、编译成内核模块、或不编译它。要进一步了解某组件,点击它旁边的<BCLASS="GUIBUTTON">help</B>按钮。	  </P><P>	    点击<BCLASS="GUIBUTTON">Main Menu</B>来返回到类别列表。	  </P><P>	    完成了配置后,点击主菜单中的<BCLASS="GUIBUTTON">Save and	    Exit</B>按钮来创建配置文件 <TTCLASS="FILENAME">/usr/src/linux-2.4/.config</TT>	    并退出 <BCLASS="APPLICATION">Linux Kernel Configuration</B>	    程序。	  </P><P>	    即便没有对设置进行任何改变,在继续前你也需要运行	    <TTCLASS="COMMAND">make xconfig</TT> 命令(或其它内核配置方法)。	  </P><P>其它可用的内核配置方法包括:	  </P><P></P><UL><LI><P><TTCLASS="COMMAND">make config</TT> &#8212; 互动文本程序。组件以线形格式出现,并被一个一个地回答。这种方法不需要运行	      X 窗口系统,而且不允许你改变对前面问题的回答。	      </P></LI><LI><P><TTCLASS="COMMAND">make menuconfig</TT> &#8212; 文本模式、菜单驱动的程序。组件以类别菜单的格式被显示;		使用和文本模式 Red Hat Linux 安装程序所用的同样方法来选择想要的组件。双态切换和要包括的项目相对应的标签:<BCLASS="GUIBUTTON">[*]</B>(内建)、<BCLASS="GUIBUTTON">[		]</B>(排除)、<BCLASS="GUIBUTTON">&#60;M&#62;</B>(模块)、或		<BCLASS="GUIBUTTON">&#60; &#62;</B>(具备模块能力)。这种方法不需要		X 窗口系统。	      </P></LI><LI><P><TTCLASS="COMMAND">make oldconfig</TT> &#8212; 这是一个非互动的脚本。它设置配置文件来包含默认的设置。如果系统使用的是默认		Red Hat Linux 内核,它会为用于该体系的 Red Hat Linux 包括的内核创建一个配置文件。这能够帮助你按照已知的工作默认值来设置内核,然后关闭你不想使用的功能。	      </P></LI></UL><DIVCLASS="NOTE"><P></P><TABLECLASS="NOTE"WIDTH="90%"BORDER="0"><TR><TDWIDTH="25"ALIGN="CENTER"VALIGN="TOP"><IMGSRC="./stylesheet-images/note.png"HSPACE="5"ALT="注记"></TD><THALIGN="LEFT"VALIGN="CENTER"><B>注记</B></TH></TR><TR><TD>&nbsp;</TD><TDALIGN="LEFT"VALIGN="TOP"><P>	      要使用 <TTCLASS="COMMAND">kmod</TT> 和内核模块,在配置中对 <TTCLASS="COMPUTEROUTPUT">kmod		support</TT> 和 <TTCLASS="COMPUTEROUTPUT">module version		(CONFIG_MODVERSIONS) support</TT> 回答 <TTCLASS="USERINPUT"><B>Yes</B></TT>。	    </P></TD></TR></TABLE></DIV></LI><LI><P>创建了 <TTCLASS="FILENAME">/usr/src/linux-2.4/.config</TT>	    文件后,使用 <TTCLASS="COMMAND">make dep</TT> 命令来正确设置依赖关系。	  </P></LI><LI><P>使用 <TTCLASS="COMMAND">make clean</TT> 命令来准备要建构的源码树。	  </P></LI><LI><P>推荐你给定制内核添加一个修改版本号码,因此现存内核不会被覆盖。此处描述的方法是从意味事件中恢复的最简易方法。	    关于其它可能性,请参阅 <AHREF="http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html"TARGET="_top">http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html</A>	    或 <TTCLASS="FILENAME">/usr/src/linux-2.4</TT> 中的 <TTCLASS="FILENAME">Makefile</TT> 的详情。	  </P><P>	    按照默认设置,<TTCLASS="FILENAME">/usr/src/linux-2.4/Makefile</TT>	    在以 <TTCLASS="COMMAND">EXTRAVERSION</TT> 开头的行的结尾处包括	    <TTCLASS="COMPUTEROUTPUT">custom</TT> 这个词。后补这个词会允许系统同时拥有原有的工作内核和新内核(版本 2.4.20-2.47.1custom)。	  </P><P>	    如果系统包含不止一个定制的内核,区别它们的好办法是在后面添加日期(或其它标识符号)。	  </P></LI><LI><P>使用 <TTCLASS="COMMAND">make bzImage</TT> 来建构内核。</P></LI><LI><P>建构使用 <TTCLASS="COMMAND">make	      modules</TT> 所配置的模块。</P></LI><LI><P>使用 <TTCLASS="COMMAND">make modules_install</TT> 命令来安装内核模块(即便事实上什么也没有建构)。请留心命令中的下划线(<TTCLASS="COMMAND">_</TT>)。	    这会把内核模块安装入	    <TTCLASS="FILENAME">/lib/modules/<TTCLASS="REPLACEABLE"><I>&#60;KERNELVERSION&#62;</I></TT>/kernel/drivers	    </TT>目录(<TTCLASS="REPLACEABLE"><I>KERNELVERSION</I></TT> 是	    <TTCLASS="FILENAME">Makefile</TT> 中指定的版本)。在这个例子里是	    <TTCLASS="FILENAME">/lib/modules/2.4.20-2.47.1custom/kernel/drivers/</TT>。	  </P></LI><LI><P>使用 <TTCLASS="COMMAND">make install</TT> 来把新内核和相关文件复制到正确的目录中。	  </P><P>除了在	    <TTCLASS="FILENAME">/boot</TT> 目录中安装内核文件,这个命令还执行	    <TTCLASS="COMMAND">/sbin/new-kernel-pkg</TT> 脚本。该脚本会建构一个新的	    <TTCLASS="FILENAME">initrd</TT> 映像,并在引导装载程序的配置文件中添加一个新项目。	  </P><P>如果系统有一个 SCSI 适配器,而 SCSI 驱动程序被作为模块编译了;或在建构内核时把	  ext3 支持作为模块(Red Hat Linux 的默认设置)编译入,你就需要 <TTCLASS="FILENAME">initrd</TT> 映像。	  </P></LI><LI><P>即便 <TTCLASS="FILENAME">initrd</TT> 映像和引导装载程序被修改了,你也应该校验这些修改的正确性,并确定使用定制的内核版本而不是	    2.4.20-2.47.1。关于校验这些修改的信息,请参阅<AHREF="s1-kernel-initrd.html">第 30.5 节</A>和<AHREF="s1-kernel-bootloader.html">第 30.6 节</A>。	  </P></LI></OL></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="ch-custom-kernel.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">起点</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="s1-custom-kernel-monolithic.html"ACCESSKEY="N">前进</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">建构定制内核</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ch-custom-kernel.html"ACCESSKEY="U">上级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">建构单一化内核</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -