aboutsummaryrefslogtreecommitdiff
path: root/zh_CN.GB2312/books/handbook/serialcomms
diff options
context:
space:
mode:
authorFukang Chen <loader@FreeBSD.org>2008-05-09 14:04:32 +0000
committerFukang Chen <loader@FreeBSD.org>2008-05-09 14:04:32 +0000
commit8e1ea443972fa147d574770744307f400da2f75b (patch)
treee2d802506cdbffc88ba4c5489015f46240b25328 /zh_CN.GB2312/books/handbook/serialcomms
parent7872e6bbf4e242ba01d915a9d99db3adff862ff2 (diff)
Notes
Diffstat (limited to 'zh_CN.GB2312/books/handbook/serialcomms')
-rw-r--r--zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml129
1 files changed, 80 insertions, 49 deletions
diff --git a/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml b/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml
index 76167c257f..b946172743 100644
--- a/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml
+++ b/zh_CN.GB2312/books/handbook/serialcomms/chapter.sgml
@@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project
- Original Revision: 1.120
+ Original Revision: 1.126
$FreeBSD$
-->
@@ -13,6 +13,7 @@
<title>概述</title>
<indexterm><primary>串口通讯</primary></indexterm>
+
<para>&unix; 一直都是支持串口通讯的。事实上,
早期的 &unix; 系统就是利用串口线来输入和输出数据的。
那时常见的 <quote>终端</quote> 包括一个每秒10个字符的串口打印机和键盘,
@@ -20,20 +21,37 @@
进行串口通讯的方法。</para>
<para>读完这章,您将了解到:</para>
+
<itemizedlist>
- <listitem><para>如何通过终端连接到您的FreeBSD系统。</para></listitem>
- <listitem><para>如何使用modem拨号到远程主机。</para></listitem>
- <listitem><para>如何允许远程用户通过modem登录到您的系统。</para></listitem>
- <listitem><para>如何从串口控制台引导您的系统。</para></listitem>
+ <listitem>
+ <para>如何通过终端连接到您的FreeBSD系统。</para>
+ </listitem>
+ <listitem>
+ <para>如何使用modem拨号到远程主机。</para>
+ </listitem>
+ <listitem>
+ <para>如何允许远程用户通过modem登录到您的系统。</para>
+ </listitem>
+ <listitem>
+ <para>如何从串口控制台引导您的系统。</para>
+ </listitem>
</itemizedlist>
<para>阅读这章之前,您应当了解:</para>
+
<itemizedlist>
- <listitem><para>如何配置和安装一个新的内核 (<xref
- linkend="kernelconfig">)。</para></listitem>
- <listitem><para>理解 &unix; 的权限和进程 (<xref linkend="basics">)。</para></listitem>
- <listitem><para>准备您打算在 FreeBSD 中使用的串口设备 (modem 或多插口卡)
- 的技术参考手册。</para></listitem>
+ <listitem>
+ <para>如何配置和安装一个新的内核 (<xref
+ linkend="kernelconfig">)。</para>
+ </listitem>
+ <listitem>
+ <para>理解 &unix; 的权限和进程 (<xref
+ linkend="basics">)。</para>
+ </listitem>
+ <listitem>
+ <para>准备您打算在 FreeBSD 中使用的串口设备
+ (modem 或多插口卡)的技术参考手册。</para>
+ </listitem>
</itemizedlist>
</sect1>
@@ -706,7 +724,8 @@ sio3: type 16550A</screen>
<note>
<para>请注意在 &os; 中设备的编号是从零而非一开始的
(这一点与另一些系统, 如基于 &ms-dos; 的系统不同)。
- 因此, 在基于 &ms-dos; 系统中的 <quote>COM1</quote> 在 &os;
+ 因此, 在基于 &ms-dos; 系统中的
+ <devicename>COM1</devicename> 在 &os;
中通常叫做 <filename>/dev/cuad0</filename>。</para>
</note>
@@ -789,7 +808,7 @@ sio3: type 16550A</screen>
<para><filename>/etc/ttys</filename>文件列出了您
FreeBSD系统上允许登录的所有端口。 例如, 第一个虚拟控制台
- <filename>ttyv0</filename> 在这个文件中有一个记录。
+ <devicename>ttyv0</devicename> 在这个文件中有一个记录。
您可以使用这个记录登录进控制台。
这个文件也包含其他虚拟控制台的记录,串口,和伪 ttys 终端。
对于一个硬连线的终端, 只要列出串口的
@@ -799,7 +818,7 @@ sio3: type 16550A</screen>
<devicename>ttyv0</devicename>)。</para>
<para>默认的 FreeBSD 安装包括一个支持最初四个串口
- <filename>ttyd0</filename> 到 <filename>ttyd3</filename>
+ <devicename>ttyd0</devicename> 到 <devicename>ttyd3</devicename>
的<filename>/etc/ttys</filename> 文件。
如果您从那些端口中某一个使用终端,您不需要添加另一个记录。</para>
@@ -826,8 +845,8 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
<para>第一部分指定了终端指定文件的名称, 它可以在
<filename>/dev</filename>中找到。</para>
</callout>
- <callout arearefs="co-ttys-line1col2">
+ <callout arearefs="co-ttys-line1col2">
<para>第二部分是在这行执行的命令,通常是 &man.getty.8;。
<command>getty</command> 初始化然后打开一行,设置速度,
用户名的命令和执行登录程序。</para>
@@ -851,11 +870,9 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
确信在终端上的通讯设置匹配。
在我们的例子中, Wyse-50 不使用奇偶性, 用38400 bit/s
来连接。286 PC不使用奇偶性,用19200bit/s来连接。</para>
-
</callout>
<callout arearefs="co-ttys-line1col3">
-
<para>第三部分是通常连接到那个tty行的终端类型。对于拨号端口,
<literal>unknown</literal> 或 <literal>dialup</literal>
通常被用在这个地方。 对于硬连线的终端,终端类型不会改变,
@@ -864,7 +881,6 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
<para>在我们的例子中, Wyse-50 使用真正的终端类型,
而运行 <application>Procomm</application> 的286
PC将被设置成在VT-100上的模拟。</para>
-
</callout>
<callout arearefs="co-ttys-line1col4">
@@ -931,7 +947,7 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
<screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>
<para>您将看到一个终端的记录。例如,下面的显示表明一个<command>getty</command>
- 正在第二个串口 <literal>ttyd1</literal> 运行,
+ 正在第二个串口 <devicename>ttyd1</devicename> 运行,
正在 <filename>/etc/gettytab</filename> 中使用 <literal>std.38400</literal>
的记录:</para>
@@ -1147,8 +1163,9 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
一种是将本地计算机到调制解调器的
RS-232 接口配置为固定速率。 这样做的好处是,
远程用户总能立即见到系统的登录提示符, 而其缺点则是,
- 系统并不知道用户真实的数据速率是多少, 因而, 类似 Emacs
- 这样的程序, 也就无法调整它们绘制屏幕的方式,
+ 系统并不知道用户真实的数据速率是多少, 因而, 类似
+ <application>Emacs</application> 这样的程序,
+ 也就无法调整它们绘制屏幕的方式,
以便为慢速连接改善响应时间。</para>
<para>另一种流派将调制解调器的 RS-232 接口速率配置为随远程用户的连接速率变化。 例如, 对
@@ -1160,7 +1177,7 @@ ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
因此, <command>getty</command> 会以初始速度给出一个
<prompt>login:</prompt> 提示, 并检查用户的响应字符。
如果用户看到乱码, 则他们应知道此时应按下
- <keycode>Enter</keycode> 键, 直到看到可以辨认的提示符为止。
+ <keycap>Enter</keycap> 键, 直到看到可以辨认的提示符为止。
如果数据速率不匹配, 则 <command>getty</command>
会将用户输入的任何信息均视为 <quote>乱码</quote>,
并尝试以下一种速率来再次给出 <prompt>login:</prompt> 提示符。
@@ -1276,7 +1293,8 @@ vq|VH57600|Very High Speed Modem at 57600,8-bit:\
<programlisting>ttyd0 "/usr/libexec/getty <replaceable>xxx</replaceable>" dialup on</programlisting>
<para>上面的第一条是这个记录的设备特定文件 &mdash;
- <literal>ttyd0</literal> 表示 <filename>/dev/ttyd0</filename>
+ <devicename>ttyd0</devicename> 表示
+ <filename>/dev/ttyd0</filename>
是这个 <command>getty</command> 将被监视的文件。 第二条
<literal>"/usr/libexec/getty
<replaceable>xxx</replaceable>"</literal>
@@ -1362,9 +1380,11 @@ stty -f /dev/cuad1.init crtscts</programlisting>
<title>Modem 设置</title>
<para>如果您有一个 modem, 它的参数能被存储在非易失性的 RAM 中,
- 您将必须使用一个终端程序来设置参数。 使用同样的通讯速度来连接
+ 您将必须使用一个终端程序来设置参数 (比如 &ms-dos; 下的
+ <application>Telix</application> 或者 FreeBSD 下的
+ <command>tip</command>)。 使用同样的通讯速度来连接
modem 作为初始速度 <command>getty</command> 将使用和配置
- modem 的非易失性RAM来适应这些要求:</para>
+ modem 的非易失性 RAM 来适应这些要求:</para>
<itemizedlist>
<listitem>
@@ -1399,7 +1419,7 @@ stty -f /dev/cuad1.init crtscts</programlisting>
<para>请阅读您 modem 的文档找到您需要用什么命令和 DIP 接口设置。</para>
- <para>例如,要在一个 USRobotics Sportster 14400 的外置 modem
+ <para>例如,要在一个 &usrobotics; &sportster; 14400 的外置 modem
上设置上面的参数,可以用下面这些命令:</para>
<programlisting>ATZ
@@ -1457,8 +1477,8 @@ AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>
<para>对于锁定速度的配置, 您需要配置 modem
来获得一个不依赖于通讯率的稳定的 modem到计算机 的传输率。
- 在一个 USR Sportster 14400 外置 modem 上, 这些命令将锁定
- modem到计算机 的传输率:</para>
+ 在一个 &usrobotics; &sportster; 14400 外置 modem 上,
+ 这些命令将锁定 modem 到计算机 的传输率:</para>
<programlisting>ATZ
AT&amp;B1&amp;W</programlisting>
@@ -1469,8 +1489,8 @@ AT&amp;B1&amp;W</programlisting>
<para>对于一个变速的配置, 您需要配置 modem
调节它的串口传输率匹配接收的传输率。
- 在一个 USR Sportster 14400 的外置 modem 上, 这些命令将锁定
- modem 的错误修正传输率适合命令要求的速度,
+ 在一个 &usrobotics; &sportster; 14400 的外置 modem 上,
+ 这些命令将锁定 modem 的错误修正传输率适合命令要求的速度,
但允许串口速度适应没有纠错的连接:</para>
<programlisting>ATZ
@@ -1539,7 +1559,7 @@ AT&amp;B2&amp;W</programlisting>
<para>设法拨入系统。 确信使用8位, 没有奇偶检验, 在远程系统上的1阻止位。
如果您不能立刻得到一个命令行, 试试每隔一秒按一下
- <keycode>Enter</keycode>。 如果您仍没有看到一个登录: 设法发送一个
+ <keycap>Enter</keycap>。 如果您仍没有看到一个登录: 设法发送一个
<command>BREAK</command>。 如果您正使用一个高速的 modem 来拨号,
请在锁定拨号 modem 的接口速度后再试试。</para>
@@ -1644,7 +1664,7 @@ AT&amp;B2&amp;W</programlisting>
(例如 <filename>/dev/cuad0</filename>) 而
<replaceable>speed</replaceable> 则是速率
(如 <literal>57600</literal>)。 当您输入完 AT
- 之后, 按 <keycap>~.</keycap> 即可退出。</para>
+ 之后, 按 <command>~.</command> 即可退出。</para>
</sect2>
<sect2>
@@ -1697,8 +1717,8 @@ tip57600|Dial any phone number at 57600 bps:\
<title>我通过一个终端服务器访问了很多主机。</title>
<para>除非每次都要等到您连接到主机然后键入
- <command>CONNECT &lt;host&gt;</command>, 否则使用
- <command>tip</command> 的 <literal>cm</literal> 功能。
+ <command>CONNECT <replaceable>host</replaceable></command>,
+ 否则使用 <command>tip</command> 的 <literal>cm</literal> 功能。
例如, 在 <filename>/etc/remote</filename> 中的这些记录:</para>
<programlisting>pain|pain.deep13.com|Forrester's machine:\
@@ -1709,8 +1729,9 @@ deep13:Gizmonics Institute terminal server:\
:dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
<para>将让您键入 <command>tip pain</command> 或 <command>tip
- muffin</command> 连接到主机pain或muffin, 和 <command>tip
- deep13</command> 连接到终端服务器。</para>
+ muffin</command> 连接到主机 <hostid>pain</hostid> 或
+ <hostid>muffin</hostid>, 和 <command>tip deep13</command>
+ 连接到终端服务器。</para>
</sect2>
<sect2>
@@ -1751,7 +1772,10 @@ big-university 5551114</programlisting>
</keycombo>
一次?</title>
- <para><keycombo action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>是默认的<quote>强制</quote>字符,被用来告诉<command>tip</command>下一个字符是文字的数据。您可以用<command>~s</command>给任何其他的字符设置强制字符,这意思是<quote>设置一个变量</quote>。</para>
+ <para><keycombo action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
+ 是默认的<quote>强制</quote>字符,被用来告诉 <command>tip</command>
+ 下一个字符是文字的数据。您可以用 <command>~s</command>
+ 给任何其他的字符设置强制字符,这意思是 <quote>设置一个变量</quote>。</para>
<para>在新的一行键入 <command>~sforce=<replaceable>single-char</replaceable></command>。
<replaceable>single-char</replaceable> 是任何简单的字符。 如果您遗漏了
@@ -1774,7 +1798,7 @@ big-university 5551114</programlisting>
<para>通过在您的 <filename>&#36;HOME/.tiprc</filename>
文件中指定下面这行, 就可以得到您想要的任何强制字符:</para>
- <programlisting>force=&lt;single-char&gt;</programlisting>
+ <programlisting>force=<replaceable>single-char</replaceable></programlisting>
</sect2>
<sect2>
@@ -1791,7 +1815,7 @@ big-university 5551114</programlisting>
<literal>raisechar</literal>。 事实上,
如果您不想使用这些特性的话,您可以用同样的方法设置强制字符。</para>
- <para>这儿有一个很好的示例 .tiprc 文件, 对
+ <para>这儿有一个很好的示例 <filename>.tiprc 文件</filename>,对
<application>Emacs</application>用户来说,需要经常按
<keycombo action="simul">
<keycap>Ctrl</keycap><keycap>2</keycap>
@@ -1804,7 +1828,7 @@ big-university 5551114</programlisting>
<programlisting>force=^^
raisechar=^^</programlisting>
- <para>The ^^ is
+ <para><literal>^^</literal> 是
<keycombo action="simul">
<keycap>Shift</keycap><keycap>Ctrl</keycap><keycap>6</keycap>
</keycombo>.</para>
@@ -1889,7 +1913,8 @@ raisechar=^^</programlisting>
<procedure>
<step>
- <para>使用串口电缆连接 COM1 和控制终端。</para>
+ <para>使用串口电缆连接 <devicename>COM1</devicename>
+ 和控制终端。</para>
</step>
<step>
@@ -1899,7 +1924,8 @@ raisechar=^^</programlisting>
</step>
<step>
- <para>编辑 <filename>/etc/ttys</filename> 并把 <literal>ttyd0</literal> 的
+ <para>编辑 <filename>/etc/ttys</filename> 并把
+ <devicename>ttyd0</devicename> 的
<literal>off</literal> 改为 <literal>on</literal>,
<literal>dialup</literal> 改为 <literal>vt100</literal>。
否则通过串口控制台上将不会提示输入口令,
@@ -2150,10 +2176,12 @@ Keyboard: no</screen>
</tgroup>
</informaltable>
- <para>出现上面信息后,在引导块加载启动引导器和更多信息被映到屏幕之前将有一个小小的停顿。
- 在通常情况下, 您不需要打断启动进程, 但为了确信设置是否正确, 您也可以这样做。</para>
+ <para>出现上面信息后,
+ 在引导块加载启动引导器和更多信息被映到屏幕之前将有一个小小的停顿。
+ 在通常情况下,您不需要打断启动进程,
+ 但为了确信设置是否正确,您也可以这样做。</para>
- <para>在控制台上按 <keycode>Enter</keycode> 以外的任意键就能打断启动进程。
+ <para>在控制台上按 <keycap>Enter</keycap> 以外的任意键就能打断启动进程。
引导块将进入命令行模式。 您将看到:</para>
<screen>&gt;&gt; FreeBSD/i386 BOOT
@@ -2162,12 +2190,13 @@ boot:</screen>
<para>检验上面出现的信息, 可能是串口, 或内部控制台, 或两个同时,
完全取决于您在 <filename>/boot.config</filename> 中的选项。
- 如果信息出现在正确的控制台, 按 <keycode>Enter</keycode>
+ 如果信息出现在正确的控制台, 按 <keycap>Enter</keycap>
继续启动进程。</para>
<para>如果您要使用串口控制台, 但您没有看到命令行, 那可能设置有问题。
- 这时, 输入 <option>-h</option> 然后按 Enter/Return 来告诉引导块
- (然后是启动引导器和内核) 选择串口作为控制台。 一旦系统起来了,
+ 这时, 输入 <option>-h</option> 然后按 <keycap>Enter</keycap> 或
+ <keycap>Return</keycap> 来告诉引导块
+ (然后是启动引导器和内核) 选择串口作为控制台。 一旦系统起来了,
就可以回去检查一下是什么出了问题。</para>
</step>
</procedure>
@@ -2442,10 +2471,12 @@ ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
- <para><literal>ttyd0</literal> 到 <literal>ttyd3</literal> 相当于
+ <para><devicename>ttyd0</devicename> 到
+ <devicename>ttyd3</devicename> 相当于
<devicename>COM1</devicename> 到 <devicename>COM4</devicename>。
可以打开或关闭某个端口。 如果您已经改变了串口的速度,
- 还必须改掉标准的 9600 与当前的例如 19200 相匹配。</para>
+ 还必须改掉标准的 <literal>9600</literal>
+ 与当前的例如 <literal>19200</literal> 相匹配。</para>
<para>您也可以改变终端的类型从不知名的到您串口终端的真实类型。
编辑完这个文件, 您必须 <command>kill -HUP 1</command>