Groups
Conversations
All groups and messages
Send feedback to Google
Help
Training
Sign in
Groups
netkiller
Conversations
About
将LINUX的控制台定向到串口终端
111 views
Skip to first unread message
netkiller
unread,
Oct 19, 2008, 11:43:32 PM
10/19/08
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to netkiller
# 将LINUX的控制台定向到串口终端
# 来源:互连网作者:互连网 发布时间:2008-04-07 03:03:53
# 利用串口终端作为Linux控制台,能够免去额外的键盘,显示卡和显示器,同时可将Linux主机作为一个任意用途的嵌入式黑匣。将串口终端连接
到电脑的串口上并不困难,能够参考Linux的HOWTO文档和连同inittab和agetty的帮助信息。这里扼要地说一下。
首先,准备好一根null modem 电缆.
其次,在文档/etc/inittab 增加下面一行。[注:假如您不采用 agetty程式,采用其他的程式如like getty_ps ,应
用正确的命令语法]
ID:RUNLEVELS:respawn:/sbin/agetty -L SPEED TTY TERM
这里: ID =两字母的标识符,如s1或s2。
RUNLEVELS = 终端激活的运行级别
SPEED = 串口端口速率
TTY = 串口的设备名
TERM = TERM环境变量
范例如下:
s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100
表示串口 /dev/ttyS1 (COM2 )速率为 9600 bps,终端模式为vt100。
最后,重新启动机器。
如正确地按照上述三步进行,则就能够在终端屏幕上出现Login: 的提示符。您能够登录进系统,并能象在实际的控制台上或从远程Telnet登录
相同进行工作。
下面简单介绍一下怎样终端配置成控制台,主要涉及内核信息、启动脚本信息和LILO信息。
一、内核信息
系统在启动时显示的信息总是输出到主控制台(tty1)。打开机器后,您只有等待Login: 出现在终端屏幕上,这意味着任何启动信息都无法获
悉。您只有登录后用dmesg命令查看,但通常是想在login shell起来前看到这些信息。
更有其他信息出现在控制台上:/etc/rc.d目录下脚本命令执行时,启动和终止机器时运行的脚本命令等输出的信息。假如信息没有出现在屏幕上,
怎样真正地知道"系统已终止"呢?
您必须修改源码/usr/src/linux/drivers/char/console.c[必须已安装了内核源码],这不是个复杂得内核修改,
按照下面三步进行:
首先,在程式前定义CONFIG_SERIAL_ECHO
#define CONFIG_SERIAL_ECHO
其次,修改串口地址 (仅当您使用得端口不同于默认定义的才有必要修改)。
#define SERIAL_ECHO_PORT 0x3f8 /* COM1 */
或:
#define SERIAL_ECHO_PORT 0x2f8 /* COM2 */
第三,重新编译内核[请参考相应的手册],启动机器。在系统检测硬件设备时,您应该在终端屏幕上看到信息。
请注意 :console.c 补丁除了Alpha平台外,对任何的Linux 端口都是必要的。在Alpha平台上他是在运行make
config ,选择下面的选项完成的:
Echo console messages on /dev/ttyS1
二、/etc/rc.d/rc.*启动脚本信息
为了将这些信息显示在终端上,能够将这些文档中含有echo命令的行追加" > TTY "。 TTY 是终端的串口(和/etc/
inittab 中串口终端行的相同)。
三、 LILO 配置
假如想选择两个内核之一启动,您必须修改LILO 配置文档,/etc/lilo.conf。 配置LILO,使提示信息出现在终端上,能够参考/
usr/doc/lilo/README 文档 (查看SERIAL选项)。 这里给出两步正确配置的步骤:
首先,编辑/etc/lilo.conf file ,在BOOT选项行后,插入一个SERIAL选项 。
serial=SERIAL_LINE,SPEED PARITY BITS
这里:
SERIAL_LINE = 0 (串口1)
1 (串口2)
2 (串口3)
3 (串口4)
SPEED = 串口速度
PARITY = n (=无)
o (= 奇校验)
e (= 偶校验)
BITS = 数据位(8 or 7)
请注意:在SPEED, PARITY 和BITS参数间没有空格。这些参数必须和在terminal 配置时的参数相同。下面是LILO 配置的
示例:
serial=1,9600n8
这一行表示COM2 ,速率9600bps,无校验位,数据位8。
第二,运行lilo 命令,刷新系统配置。
利用SERIAL 选项, LILO 在启动默认内核前,配置了2秒的延迟 。在这期间,您能够 在终端上按"SHIFT"键发送一个终止信号,终
止boot进程,并取得LILO提示信息。
完成上述配置后,您的终端就能够作为一个控制台了。有一件事不能做的是用CTRL-ALT-DEL 重启动系统。
Reply all
Reply to author
Forward
0 new messages