Linux从启动到启动完成的所有输出均复制到Com口上,一共需要修改3个文件。在此之前还要确认/sbin/agetty文件是否存在,此文件用来把系统的输入输出映射到其它设备上。

1.首先在 /etc/inittab里面添加如下内容:

最后一行另加一行加上:sc:2345:respawn:/sbin/agetty ttyS0 1152000,115200 xterm

“sc”为改行ID,“2345”指改行的运行级别是2、3、4、5级;“respawn”是使命令退出后再执行一次,以便其他用户能够登录;“/sbin/agetty ttyS0 9600 vt100”表示具体的命令,即通过他来执行打开串口/dev/ttyS0(COM1),后面是波特率和终端模式

xterm是一个X Window System上的标准虚拟终端。用户可以在同一个显示器上开启许多xterm,每一个都为其中运行的进程提供独立的输入输出(一般来说此进程是Unix shell)。

2.修改/etc/securetty里面的内容:

第2行另加一行加上:ttyS0

该文件是允许root身份登录的tty设备列表,这些设备由/bin/login程序读取,为了使用户能以root身份通过串口登录,需要在该文件中添加“ttyS0”,www.linuxidc.com说明系统认为这里的COM1是安全的;

3.修改/etc/grub.conf文件里面的内容:

重定向grub:

在#Enable Serial Console下另加一行(有时可能有误差)加上:

serial  --unit=0  --speed=115200  --word=8  --paity=no  --stop=1

terminal  --timeout=10 serial  console

serial

初始化一个串口设备。

重定向console:

在/etc/grub.conf文件中kernel语句本行加上:

console=tty0  console=ttyS0,115200n8

其中“ttyS0”,“0”表示串口使用COM1;“9600”表示波特率为9600bps;“n”表示无校验位;“8”表示有8位数据位。

如果你的ttyS0出现乱码没有办法使用的话,可以尝试着从网络登陆,把/etc/inittab中ttyS0那一行注释,使用"init q"命令停止通过inittab启动的agetty,然后再重新取消/etc/inittab中的注释,再次"init q"命令启动agetty,不出意外就能恢复正常了。

posted on 2019-04-24 14:12  hammerqiu  阅读(7170)  评论(0编辑  收藏  举报