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

📄 kernelconfig-config.html

📁 这是很好的学习嵌入式LINUX的文章
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>配置文件</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="配置FreeBSD的内核" href="kernelconfig.html" /><link rel="PREVIOUS" title="建立并安装一个定制的内核"href="kernelconfig-building.html" /><link rel="NEXT" title="创建设备节点" href="kernelconfig-nodes.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="kernelconfig-building.html"accesskey="P">后退</a></td><td width="80%" align="center" valign="bottom">章 8. 配置FreeBSD的内核</td><td width="10%" align="right" valign="bottom"><a href="kernelconfig-nodes.html"accesskey="N">前进</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="KERNELCONFIG-CONFIG" name="KERNELCONFIG-CONFIG">8.4.配置文件</a></h1><p>内核配置文件的格式是很简单的,每一行包含了一个关键词与一个或多个参数,而大多数的设置都只包含一个参数。<varclass="LITERAL">#</var>后面的文字是注释,会被忽略掉。下面的每个小节,将依次介绍每个列在<tt class="FILENAME">GENERIC</tt>中的参数,虽然各相关主题(比如网络)的关键词会放在同一小节,但是这些关键词可能位于 <ttclass="FILENAME">GENERIC</tt>文件的很多地方。<a id="KERNELCONFIG-OPTIONS"name="KERNELCONFIG-OPTIONS"></a> 透彻的选项列表和关于设备列表的更详细的解释出现在 <ttclass="FILENAME">LINT</tt>配置文件, 和<tt class="FILENAME">GENERIC</tt>文件在同一个目录。如果你不能确定某一行设定是否需要请先参考<tt class="FILENAME">LINT</tt>文件。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 在FreeBSD5.X和更高的版本<ttclass="FILENAME">LINT</tt>将不存在。关于架构依赖的选项 请看<ttclass="FILENAME">NOTES</tt>。一些选项, 主要就是架构依赖的选项在<ttclass="FILENAME">/usr/src/sys/conf/NOTES</tt>文件里面,当然了,在这里复习这些选项也是明智的。</p></blockquote></div><p>下面是一个带有很多额外注释的<tt class="FILENAME">GENERIC</tt>内核配置文件的例子。这个例子与<tt class="FILENAME">/usr/src/sys/i386/conf/GENERIC</tt>很相似。有关内核配置的最详细的选项,请参看<ttclass="FILENAME">/usr/src/sys/i386/conf/LINT</tt>。</p><pre class="PROGRAMLISTING">## GENERIC -- Generic kernel configuration file for FreeBSD/i386## For more information on this file, please read the handbook section on# Kernel Configuration Files:##    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html## The handbook is also available locally in /usr/share/doc/handbook# if you've installed the doc distribution, otherwise always see the# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the# latest information.## An exhaustive list of options and more detailed explanations of the# device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES.## $FreeBSD: src/sys/i386/conf/GENERIC,v 1.380 2003/03/29 13:36:41 mdodd Exp $</pre><p>下面这个选项在<span class="emphasis"><i class="EMPHASIS">每个</i></span>中都要有:</p><pre class="PROGRAMLISTING">machine        i386</pre><p>这是机器的架构。它可能是<var class="LITERAL">i386</var>, <varclass="LITERAL">pc98</var>, <var class="LITERAL">sparc64</var>, <varclass="LITERAL">alpha</var>, <var class="LITERAL">ia64</var>, <varclass="LITERAL">amd64</var>, 或者 <var class="LITERAL">powerpc</var>。</p><pre class="PROGRAMLISTING">cpu          I486_CPUcpu          I586_CPUcpu          I686_CPU</pre><p>面的选项指出了在你的系统中所用的CPU类型。你可以使用多个CPU类型(例如:你不能确定使用的是<var class="LITERAL">I586_CPU</var>还是<varclass="LITERAL">I686_CPU</var>),然而,对于一个定制的内核,最好是只指定你所拥有的CPU类型。如果你不能确定CPU类型,可以通过文件<tt class="FILENAME">/var/run/dmesg.boot</tt>来看你的启动信息。</p><p>在FreeBSD的内核里面仍然支持<var class="LITERAL">I386_CPU</var>,但是在-STABLE和-CURRENT里面缺省已经被禁用了。这就意味着安装FreeBSD在386-class的cpu,一般有下面几种情况:</p><ul><li><p>安装一个老的FreeBSD release并且按照<a href="kernelconfig-building.html">&#181;&#218;8.3 节</a>从源码重建系统.</p></li><li><p>在一个新的机器上构建用户和内核程序,然后用已经编译好的<ttclass="FILENAME">/usr/obj</tt>下的文件 安装到386的机器上(详细情况看<ahref="small-lan.html">&#181;&#218; 19.5 节</a>)。</p></li><li><p>用支持<var class="LITERAL">I386_CPU</var>内核的FreeBSD的release光盘安装</p></li></ul><p>这几种情况里面的第一种是最容易的,当是你需要很大的磁盘空间,而这在386-class机器上是很难找到的。</p><pre class="PROGRAMLISTING">ident          GENERIC</pre><p>这是一个内核的标识符。 你应该自己命名一个容易辨认的名称,比如<varclass="LITERAL">MYKERNEL</var>。 放在<varclass="LITERAL">ident</var>后的参数,将在你用这个内核启动时显示在屏幕上。如果你同时设置了几个内核,采用不同的名称是个不错的主意。(例如,你想定制一个实验性质的内核)。</p><pre class="PROGRAMLISTING">maxusers          <var class="REPLACEABLE">n</var></pre><p>这个 <var class="LITERAL">maxusers</var> 选项设置了重要系统表的大小。这个数值粗略地假设你的机器同时会有多少用户。</p><p>从FreeBSD&nbsp;4.5开始,如果手动设置这个值为<varclass="LITERAL">0</var>系统将会自动赋值。<a id="AEN9577" name="AEN9577"href="#FTN.AEN9577"><span class="footnote">[1]</span></a>. 在FreeBSD&nbsp;5.X里面,<varclass="LITERAL">maxusers</var> 如果没有定义,将缺省为 <varclass="LITERAL">0</var>。如果你使用的FreeBSD早于4.5, 或者你想自己设置这个值,那么你至少要设置<var class="LITERAL">maxusers</var>为4, 特别是你要执行XWindow或是编译程序。 原因是<varclass="LITERAL">maxusers</var>值决定了系统同时可有多少个进程(process), 其算法是<varclass="LITERAL">20 + 16 * maxusers</var>,所以如果你设置<varclass="LITERAL">maxusers</var>为1,则你的系统只能同时存在36个进程,包括18个(或更多)系统启动要占去的进程。 如果你执行了XWindow,则又要用掉15个以上。甚至阅读一个manpage也会使用九个进程来过滤、解压缩、然后显示文件。 设置<varclass="LITERAL">maxusers</var>到64将允许你有1044个进程,对任何人应该都是足够的。当你执行程序时, 得到像是<span class="ERRORTYPE">proc table full</span>这样的错误信息,或者你要建一个同时会有很多人来访问的网站(比如<ttclass="HOSTID">ftp.FreeBSD.org</tt>)时, 你就要增加这个设置的值,然后重新编译内核。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> <var class="LITERAL">maxusers</var>这个选项并<span class="emphasis"><iclass="EMPHASIS">不</i></span>限制可以登陆你系统的用户数目。它只是系统中用户可以最多执行的程序个数。 有一个关键词的值则<span class="emphasis"><iclass="EMPHASIS">真的</i></span>限制了可以同时 <span class="emphasis"><iclass="EMPHASIS">远程登入和X terminal windows</i></span>的人数:<ahref="kernelconfig-config.html#KERNELCONFIG-PTYS"><var class="LITERAL">pseudo-device pty16</var></a>。 在 FreeBSD&nbsp;5.X 中,并不需要担心这个数目, 因为 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">pty</span>(4)</span> 驱动会``自动复制(auto-cloning)'', 此时需要在配置文件中使用 <var class="LITERAL">devicepty</var>。</p></blockquote></div><pre class="PROGRAMLISTING"># Floating point support - do not disable.device          npx0     at nexus? port IO_NPX irq 13</pre><p><var class="LITERAL">npx0</var>是FreeBSD中浮点运算处理器的一个接口,不论你用硬件的浮点运算处理器还是使用软件仿真,都需要这个设置。 这个设置<spanclass="emphasis"><i class="EMPHASIS">不是</i></span>可有可无的。</p><pre class="PROGRAMLISTING"># Pseudo devices - the number indicates how many units to allocate.device   loop          # Network loopback</pre><p>这是TCP/IP的通用环回设备。 如果你 telnet 或 FTP 到 <tt class="HOSTID">localhost</tt>(换言之,<tt class="HOSTID">127.0.0.1</tt>) 则将通过这个设备回到本机。 这是 <spanclass="emphasis"><i class="EMPHASIS">必需的</i></span>。在 FreeBSD&nbsp;4.X 中,必须使用<var class="LITERAL">pseudo-device loop</var>。</p><p>接下来的那些项有一个或多个选项,关于每个选项的更多的信息参考下面注释。</p><pre class="PROGRAMLISTING">#To statically compile in device wiring instead of /boot/device.hints#hints          "GENERIC.hints"         #Default places to look for devices.</pre><p>在FreeBSD 5.X和更新的版本里面,<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">device.hints</span>(5)</span>被用来配置设备驱动选项。在启动的时候<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">loader</span>(8)</span>将会检查缺省位置<ttclass="FILENAME">/boot/devicehints</tt>。 使用<varclass="LITERAL">hints</var>选项你就可以把这些hints静态编译进内核。 这样就没有必要在<ttclass="FILENAME">/boot</tt>下创建<tt class="FILENAME">devicehints</tt>。</p><pre class="PROGRAMLISTING">#makeoptions     DEBUG=-g          #Build kernel with gdb(1) debug symbols</pre><p>FreeBSD的普通建立过程是不包含调试信息的,建立内核的时候,在连接内核之前大部分的调试符号都被去掉了,这样能节省安装位置的磁盘空间。如果你打算建立-CURRENT分支的测试内核,或者在FreeBSD上开发自己的内核,你应该去掉这一行的注释,这样就打开了<var class="OPTION">-g</var>选项,传给<spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">gcc</span>(1)</span>后,就可以保留内核的调试信息。如果你正在使用``传统''方法建立自己的内核(更多的信息参考<ahref="kernelconfig-building.html">&#181;&#218; 8.3 节</a>), 也能通过给<spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">config</span>(8)</span>传递<varclass="OPTION">-g</var>选项达到同样的效果。</p><pre class="PROGRAMLISTING">options          MATH_EMULATE      #Support for x87 emulation</pre><p>如果你的计算机上没有数学协处理器(386或者486SX),这一行允许内核模拟数学协处理器。如果你有一个486DX,或者386或者486SX(使用387或487的芯片)或者更高的cpu(<spanclass="TRADEMARK">Pentium</span>&reg;,<spanclass="TRADEMARK">Pentium</span>&nbsp;II等), 你可以注释掉这一行。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 随FreeBSD带的普通数学协处理器模拟函数<span class="emphasis"><iclass="EMPHASIS">不是</i></span>非常精确。如果你没有数学协处理器,而又需要更精确的模拟,最好把这个选项改成使用GNU数学支持的<varclass="LITERAL">GPL_MATH_EMULATE</var>, 因为版权原因它没有被缺省的包含进来。</p><p>在FreeBSD 5.X里面, 数学模拟缺省是禁用的,因为使用不支持数学浮点的CPUs已经很少了。</p></blockquote></div><pre class="PROGRAMLISTING">options          INET          #InterNETworking</pre><p>网络支持,即使你不打算连网,也请保留它,大部分的程序至少需要回环网络(就是和本机进行网络连接),所以强烈要求保留它。</p><pre class="PROGRAMLISTING">options          INET6          #IPv6 communications protocols</pre><p>这将打开IPv6连接协议。</p><pre class="PROGRAMLISTING">options          FFS          #Berkeley Fast Filesystemoptions          FFS_ROOT     #FFS usable as root device [keep this!]</pre><p>这是最基本的硬盘文件系统,如果你打算从本地硬盘启动,请保留它。</p><div class="NOTE"><blockquote class="NOTE"><p><b>注:</b> 在FreeBSD 5.X里面,<var class="LITERAL">FFS_ROOT</var>选项不再需要了。</p></blockquote></div>

⌨️ 快捷键说明

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