aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/config
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2006-08-14 02:26:10 +0000
committerXin LI <delphij@FreeBSD.org>2006-08-14 02:26:10 +0000
commitbe8ffdcd03474c02809bf249b043cd36f63afd5b (patch)
tree97ce5ee21f907ed77cf60dd8eb46c8639047c9bb /zh_CN.GB2312/books/handbook/config
parent3704fee17d80675773fb26a063aa4946c6fc833c (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/config')
-rw-r--r--zh_CN.GB2312/books/handbook/config/chapter.sgml139
1 files changed, 127 insertions, 12 deletions
diff --git a/zh_CN.GB2312/books/handbook/config/chapter.sgml b/zh_CN.GB2312/books/handbook/config/chapter.sgml
index 7e1b8d484b..ae23b103d3 100644
--- a/zh_CN.GB2312/books/handbook/config/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/config/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project
- Original Revision: 1.220
+ Original Revision: 1.221
$FreeBSD$
-->
@@ -170,7 +170,7 @@
很多读写频繁的被放在 <filename>/var</filename> 和
<filename>/var/tmp</filename>中。</para>
- <para>适当的划分一个系统,用比较小的分区方法,
+ <para>适当的划分一个系统, 在其中使用较小的分区, 这样,
那些以写为主的分区将不会比以读为主的分区付出更高的代价。
将以写为主的分区放在靠近磁盘的边缘,
例如放在实际的大硬盘的前面代替放在分区表的后面,将会提高您需要的分区的
@@ -777,8 +777,10 @@ ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto</screen>
<itemizedlist>
<listitem>
<para>最简单的办法是用 &man.kldload.8; 加载网卡对应的内核模块。
- 并不是所有的网卡都能够通过这种方法提供支持;
- 比较明显的例子是 ISA 网卡。</para>
+ 除此之外, 通过在 <filename>/boot/loader.conf</filename>
+ 文件中加入适当的设置, 也可以让系统在引导时自动加载这些模块。
+ 不过, 并不是所有的网卡都能够通过这种方法提供支持;
+ ISA 网卡是比较典型的例子。</para>
</listitem>
<listitem>
@@ -792,6 +794,119 @@ ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto</screen>
您应该不需要编译新的内核。</para>
</listitem>
</itemizedlist>
+
+ <sect3 id="config-network-ndis">
+ <title>使用 &windows; NDIS 驱动程序</title>
+
+ <indexterm><primary>NDIS</primary></indexterm>
+ <indexterm><primary>NDISulator</primary></indexterm>
+ <indexterm><primary>&windows; 驱动程序</primary></indexterm>
+ <indexterm><primary>Microsoft Windows</primary></indexterm>
+ <indexterm><primary>Microsoft Windows</primary>
+ <secondary>device drivers (设备驱动)</secondary></indexterm>
+ <indexterm><primary>KLD (kernel loadable
+ object)</primary></indexterm>
+<!-- We should probably omit the expanded name, and add a <see> entry
+for it. Whatever is done must also be done to the same indexterm in
+linuxemu/chapter.sgml -->
+
+ <para>不幸的是, 许多厂商由于认为驱动程序会涉及许多敏感的商业机密,
+ 至今仍不愿意将把驱动程序作为开放源代码形式发布列入他们的时间表。
+ 因此, &os; 和其他操作系统的开发者就只剩下了两种选择:
+ 要么经历长时间的痛苦过程来对驱动进行逆向工程,
+ 要么使用现存的为
+ &microsoft.windows; 平台提供的预编译版本的驱动程序。
+ 包括参与 &os; 开发的绝大多数开发人员,
+ 都选择了后一种方法。</para>
+
+ <para>得益于 Bill Paul (wpaul) 的工作, 从
+ &os;&nbsp;5.3-RELEASE 开始, 已经可以 <quote>直接地</quote>
+ 支持 网络驱动接口标准 (NDIS, Network Driver Interface Specification) 了。
+ &os; NDISulator (也被称为 Project Evil) 可以支持二进制形式的
+ &windows; 驱动程序, 并让它相信正在运行的是 &windows;。 由于
+ &man.ndis.4; 驱动使用的是用于 &windows; 的二进制形式的驱动,
+ 因此它只能在 &i386; 和 amd64 系统上使用。</para>
+
+ <note>
+ <para>&man.ndis.4; 驱动在设计时主要提供了
+ PCI、 CardBus 和 PCMCIA 设备的支持,
+ 而 USB 设备目前则没有提供支持。</para>
+ </note>
+
+ <para>要使用 NDISulator, 您需要三件东西:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>内核的源代码</para>
+ </listitem>
+ <listitem>
+ <para>二进制形式的 &windowsxp; 驱动程序
+ (扩展名为 <filename>.SYS</filename>)</para>
+ </listitem>
+ <listitem>
+ <para>&windowsxp; 驱动程序配置文件
+ (扩展名为 <filename>.INF</filename>)</para>
+ </listitem>
+ </orderedlist>
+
+ <para>您需要找到用于您的卡的这些文件。 一般而言,
+ 这些文件可以在随卡附送的 CD 或制造商的网站上找到。
+ 在下面的例子中, 我们用
+ <filename>W32DRIVER.SYS</filename> 和
+ <filename>W32DRIVER.INF</filename> 来表示这些文件。</para>
+
+ <note>
+ <para>不能在 &os;/amd64 上使用 &windows;/i386 驱动程序。
+ 必须使用 &windows;/amd64 驱动才能在其上正常工作。</para>
+ </note>
+
+ <para>接下来的步骤是将二进制形式的驱动程序组装成内核模块。
+ 要完成这一任务, 需要以
+ <username>root</username> 用户的身份执行 &man.ndisgen.8;:</para>
+
+ <screen>&prompt.root; <userinput>ndisgen <replaceable>/path/to/W32DRIVER.INF</replaceable> <replaceable>/path/to/W32DRIVER.SYS</replaceable></userinput></screen>
+
+ <para>&man.ndisgen.8; 是一个交互式的程序,
+ 它会提示您输入所需的一些其他的额外信息;
+ 这些工作完成之后, 它会在当前目录生成一个内核模块文件,
+ 这个文件可以通过下述命令来加载:</para>
+
+ <screen>&prompt.root; <userinput>kldload <replaceable>./W32DRIVER.ko</replaceable></userinput></screen>
+
+ <para>除了刚刚生成的内核模块之外,
+ 还必须加载 <filename>ndis.ko</filename> 和
+ <filename>if_ndis.ko</filename> 这两个内核模块, 在您加载需要
+ &man.ndis.4; 的模块时, 通常系统会自动完成这一操作。
+ 如果希望手工加载它们, 则可以使用下列命令:</para>
+
+ <screen>&prompt.root; <userinput>kldload ndis</userinput>
+&prompt.root; <userinput>kldload if_ndis</userinput></screen>
+
+ <para>第一个命令会加载 NDIS 袖珍端口驱动封装模块,
+ 而第二条命令则加载实际的网络接口。</para>
+
+ <para>现在请查看 &man.dmesg.8; 来了解是否发生了错误。
+ 如果一切正常, 您会看到类似下面的输出:</para>
+
+ <screen>ndis0: &lt;Wireless-G PCI Adapter&gt; mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
+ndis0: NDIS API version: 5.0
+ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
+ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
+ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps</screen>
+
+ <para>这之后, 就可以像使用其它网络接口
+ (例如 <devicename>dc0</devicename>) 一样来使用
+ <devicename>ndis0</devicename> 设备了。</para>
+
+ <para>与任何其它模块一样, 您也可以配置系统,
+ 令其在启动时自动加载 NDIS 模块。 首先, 将生成的模块
+ <filename>W32DRIVER.ko</filename> 复制到 <filename
+ class="directory">/boot/modules</filename> 目录中。
+ 接下来, 在
+ <filename>/boot/loader.conf</filename> 中加入:</para>
+
+ <programlisting>W32DRIVER_load="YES"</programlisting>
+ </sect3>
</sect2>
<sect2>
@@ -1986,7 +2101,7 @@ kern.maxvnodes: 100000</programlisting>
<title>添加交换空间</title>
<para>
- 不管您计划的如何好,有时候系统并不像您所期待的那样运行。
+ 不管您计划得如何好,有时候系统并不像您所期待的那样运行。
如果您发现需要更多的交换空间,添加它很简单。
有三种方法增加交换空间:添加一块新的硬盘驱动器、通过
NFS 使用交换空间和在一个现有的分区上创建一个交换文件。</para>
@@ -2007,7 +2122,7 @@ kern.maxvnodes: 100000</programlisting>
<sect2 id="nfs-swap">
<title>通过 NFS 交换</title>
- <para>除非没有可以用做交换空间的本地硬盘时,
+ <para>除非没有可以用作交换空间的本地硬盘时,
否则不推荐您使用 NFS 来作为交换空间使用。
NFS 交换会受到可用网络带宽限制并且增加 NFS 服务器的负担。</para>
</sect2>
@@ -2204,11 +2319,11 @@ kern.maxvnodes: 100000</programlisting>
<secondary>problems</secondary>
</indexterm>
- <para><acronym>ACPI</acronym> 是一种全新的发现设备、 管理电源使用,
- 提供过去由 <acronym>BIOS</acronym> 管理的访问不同硬件的标准化方法。
+ <para><acronym>ACPI</acronym> 是一种全新的发现设备、 管理电源使用、
+ 以及提供过去由 <acronym>BIOS</acronym> 管理的访问不同硬件的标准化方法。
让 <acronym>ACPI</acronym> 在各种系统上都能正确使用的工作一直在进行,
但许多主板的 <firstterm><acronym>ACPI</acronym> 机器语言</firstterm>
- (<acronym>AML</acronym>) 字节代码中的 bug, &os; 的内核中资系统设计的不完善,
+ (<acronym>AML</acronym>) 字节代码中的 bug, &os; 的内核中子系统设计的不完善,
以及 &intel;
<acronym>ACPI-CA</acronym> 解释器中的 bug 仍然不时会出现。</para>
@@ -2226,7 +2341,7 @@ kern.maxvnodes: 100000</programlisting>
</note>
<para>如果您希望提交一个问题,
- 请确保将下述信息法到
+ 请确保将下述信息发到
<ulink url="mailto:freebsd-acpi@FreeBSD.org">
freebsd-acpi@FreeBSD.org</ulink>:</para>
@@ -2468,7 +2583,7 @@ hw.acpi.s4bios: 0</screen>
<title>崩溃</title>
<para>崩溃对于 <acronym>ACPI</acronym> 是比较罕见的情况,
- 如果发现, 将会非常重视并很快修复。
+ 如果发现, 我们将会非常重视并很快修复它。
您要做的第一件事是设法隔离出能够重现崩溃 (如果可能的话)
的操作并获取一份调用堆栈。 请启用
<option>options DDB</option> 并设置串行控制台
@@ -2503,7 +2618,7 @@ hw.acpi.s4bios: 0</screen>
(同 docking station 协同工作、 无法检测设备, 等等),
请把描述发给邮件列表; 不过, 这些问题也有可能和
<acronym>ACPI</acronym> 中尚未完成的部分有关,
- 它们可能需要时间才能被实现。 请保持耐心,
+ 它们可能需要时间才能被实现。 请给点耐心,
并准备测试我们可能会发给您的补丁。</para>
</sect3>
</sect2>