📄 00000000.htm
字号:
<HTML><HEAD> <TITLE>武汉白云黄鹤站∶精华区</TITLE></HEAD><BODY><CENTER><H1>武汉白云黄鹤站∶精华区</H1></CENTER>发信人: dot (爱吃萝卜和青菜), 信区: Embedded <BR>标 题: Linux 远程串口控制台指南 <BR>发信站: 武汉白云黄鹤站 (2002年12月28日12:43:36 星期六), 站内信件 <BR> <BR>Linux 远程串口控制台指南 <BR> <BR>dot <<A HREF="mailto:anonymou@163.com>">anonymou@163.com></A> <BR>Dec 27, 2002 <BR> <BR>2002年圣诞节期间,我在 Redhat Linux 7.0 (kernel 2.2.16-22) 平台上配置了远程串 <BR>口终端,整个过程基本顺利,但是也经历了一些意想不到的波折,幸好最终是成功了的 <BR>。乘着记忆还比较清晰的时候,写下这篇文档,以供自己和他人参考。 <BR> <BR>首先参考 "Linux-Remote-Serial-Console-HOWTO",该文档已经足够详尽,按要求一步 <BR>步地做即可。该文档描述的是 Redhat 7.2 平台,个别地方跟 7.0 有些差异,不过问题 <BR>不大。 <BR> <BR>要注意的问题主要是: <BR> <BR>* 串口直连电缆 <BR> <BR>开始我并没有在意这个问题,我手头上有一根以前做的直连电缆,是只用了3根线的那种 <BR>(2、3交叉,5对接),因此 HOWTO 文档中讲电缆制作的章节我就跳过去了,没有仔细 <BR>看,以为我这根电缆就可以了。事实也给人以这种假相:当我按照文档的说明完成了配 <BR>置文件的修改,重新引导 Linux 机子,这时在 Windows 的超级终端中确实显示了所有 <BR>该显示的信息,看起来没问题。然而接下来配置 getty 时就不行了,应该出现在超级终 <BR>端中的 login: 提示符死活不肯出现。以为是 getty 软件的问题,先后测试了 getty <BR>和 mgetty,都不行。后来在 quickmouce 的提醒下,又仔细看文档,按照 11.3 节的图 <BR> 11-1 重新制作了串口直连电缆,才解决问题。 <BR> <BR>* getty 软件 <BR> <BR>HOWTO 文档中已经指出,mingetty 不支持串口终端,所以这个软件要首先排除(minget <BR>ty 的手册页中也有相关说明)。而 Redhat 缺省安装的就是这个软件,所以要重新下载 <BR>安装其他的 getty 类软件。文档中也已经列出了几种常用的 getty 的变种。 <BR> <BR>来说说 mgetty 先。为什么我先使用了这个软件呢,一是因为 Redhat 7.0 的安装盘上 <BR>面有它的 RPM 包,直接拿来装很方便,另外是因为 mingetty 的手册页中推荐使用 <BR>mgetty 。结果是 mgetty 运行后在日志文件中报告大量错误,莫名其妙。我想可能是这 <BR>个光盘上的版本老了,于是上网下载了比较新的版本 mgetty-1.1.25-5.i386.rpm ,运 <BR>行之后情况好多了,似乎要成功的样子。在没有使用新的串口线之前,login: 出不来, <BR>但是在超级终端中敲的字符 mgetty 可以收到(从日志中看的出来);换了新制作的串 <BR>口线之后,第一次!成功了,一切都象预期的那样,我可以从超级终端登录。可是当我 <BR>退出想再登录一次,就不行了,甚至我把两台机子全部重启也不行啦。我又试用 <BR>Linux 的 minicom 终端来连接,也是只成功了一次,就再也不行了。真是怪哉,脑袋都 <BR>快想破了,也不知道是为什么。后来终于怀疑 mgetty 有问题,换了其他的,天哪,终 <BR>于解脱了。不知道后面更新的版本是否可以,我是没有劲去试了。 <BR> <BR>再来说说 agetty 。其实没有什么好说的,因为我根本没有用过这个。我本来想试一下 <BR>的,但是从网上下载安装太麻烦了。下载了 agetty-2.11w-2.i386.rpm ,安装时 RPM <BR>说要先安装 login 包,然后又要求什么 pam 包,然后又需要 awk ,真是 faint 了, <BR>太麻烦了,所以最终我也没有安装它。 <BR> <BR>最后说 getty 啦。也就是 HOWTO 文档中所谓的 “传统” getty 。我下载的 RPM 包的 <BR>名字叫 getty_ps-2.0.7j-9.i386.rpm 。当我正在为 mgetty 的问题头疼的时候,换成 <BR>它之后就一切 OK 了。 <BR> <BR>* 终端软件 <BR> <BR>Windows 下面可以用超级终端、NetTerm,Linux 下面有 Minicom 。都比较好用,注意 <BR>参数配置与目标机的串口一致。 <BR> <BR>* 修改过的配置文件列表 <BR> <BR>/etc/lilo.conf <BR>/etc/inittab <BR>/etc/gettydefs <BR>/etc/securetty <BR>/etc/makedev.d/linux-2.2.x <BR>/etc/security/console.perms <BR>/etc/sysconfig/init <BR>/etc/sysconfig/kudzu <BR> <BR>* 再谈串口直连电缆 <BR> <BR>这次调试在串口直连电缆上面花费了不少力气,对它们的了解也增加了不少。以前以为 <BR>直连电缆就是接 3 根线,其实不然。只用了 2、3、5 引脚的直连电缆不能提供握手信 <BR>号,因此如果软件需要使用 CTS/RTS 或者 DTR/DSR 流控,就需要连接更多的引脚。 <BR> <BR>PC DB9 DB9 <BR>-------------------- ----------------------- <BR>RxD Receive Data 2 <----- 3 TxD Transmit Data <BR>TxD Transmit Data 3 -----> 2 RxD Receive Data <BR> |--> 6 DSR Data Set Ready <BR>DTR Data Terminal Ready 4 --|--> 1 DCD Carrier Detect <BR>GND Signal Ground 5 ------ 5 GND Signal Ground <BR>DCD Carrier Detect 1 <--| <BR>DSR Data Set Ready 6 <--|-- 4 DTR Data Terminal Ready <BR>RTS Request To Send 7 -----> 8 CTS Clear To Send <BR>CTS Clear To Send 8 <----- 7 RTS Request To Send <BR>RI Ring Indicator 9 (not used) <BR> <BR>上面是两端都是 DB9 接头的标准 NULL MODEM 电缆的接线图,可以提供全部握手信号。 <BR>这也是 Remote-Serial-Console-HOWTO 中要求的直连电缆做法。我做通串口控制台使用 <BR>的就是这种电缆。 <BR> <BR>如果你打算自己制作电缆,就会发现一些问题。我们一般利用网线(双绞线)来做,这 <BR>种双绞线是 8 芯的,而按照图示的连接方法则需要 9 根线。因此最简单的方法是用那 <BR>种很多芯的排线来做,需要多少根割多少根(最好是彩色的,不容易弄混)。后来我想 <BR>,我们用到的其实就是 CTS/RTS 流控信号,到 2000 年为止 Linux 还不支持 <BR>DTR/DSR 流控,应该用不了这么多线。于是我就用网线做了根不完整的直连电缆:2、3 <BR>交叉,5 对接,7、8 交叉,还空 3 根线,就把 1、4 也交叉连上了,结果是用了 7 根 <BR>线,还空 1 根,与上面比只是少了 4、6 交叉,也就是没有 DTR/DSR 信号。事实证明 <BR>这样也是通的。我猜想 1、4 交叉不要应该也是通的,只是没有试过,已经焊上去懒得 <BR>再弄了。 <BR> <BR>关于串口方面的更多内容可以参考 "Linux-Text-Terminal-HOWTO" 和 <BR>"Linux-Serial-HOWTO" 文档。 <BR> <BR> <BR>* 为什么要用串口终端(控制台)? <BR> <BR>为什么费劲做这个 Serial Console 呢?最容易想到的理由是省钱,呵呵,省掉了显卡 <BR>、显示器、键盘,只剩下一个 "Box",多好玩。 <BR> <BR>说正经的,这种做法在嵌入式系统的开发中也是很有价值的。现在很多人都在利用 <BR>X86 平台做嵌入式系统开发,甚至做产品。我曾经测试过清华某某做的 foobar 服务器 <BR>,镜像光盘用的,卖给你的就是一个主机,我自己给接上显示器、键盘,开机就是 <BR>Linux ,还可以进入单用户模式,两分钟就把 root 口令改了,你说这样的服务器有什 <BR>么安全性可言?如果能够屏蔽本地控制台,配置串口终端,不是更“象”一个产品吗? <BR> <BR>(完) <BR> <BR>-- <BR>[3I“你为你的玫瑰花花费了时间, <BR> <BR>※ 修改:·dot 於 12月28日12:49:46 修改本文·[FROM: 202.119.32.102] <BR>※ 来源:·武汉白云黄鹤站 bbs.whnet.edu.cn·[FROM: 202.119.32.102] <BR><CENTER><H1>华中地区网络中心</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -