RHEL6.8进程单打印机串口检查设置

Linux下的超级终端minicom

http://mirror.centos.org/centos/6/os/x86_64/Packages/minicom-2.3-6.1.el6.x86_64.rpm

Console、tty、pts间关系及区别

dev下设备名 含义
tty 控制终端 当前进程的终端的设备特殊文件
ttySn 串口终端 UART串口,[说明]"UART串口"是指 8250/16450/ 16550 UART串行控制芯片
ttyn 控制台终端 tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上;
console 控制台终端 在Linux系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等;一般是与tty0相连。console配置在/boot/grub/grub.cfg、/boot/grub/default中配置,启动内核时传递相关参数
pts 伪终端,pseudoterminal slave 伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上),master是/dev/ptmx slave是pts/n
ptmx 所有 Unix98 PTY master 的复用器 master是/dev/ptmx slave是pts/n

1、查看串口是否可用,对串口发送数据,比如对com1口,echo lyjie126 > /dev/ttyS0
查看串口名称使用 ls -l /dev/ttyS* ,一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* , 一般ttyS0对应com1,ttyS1对应com2

查看方法

  • 查看串口设备:dmesg | grep ttyS*

  • # dmesg | grep ttyS*

  • console [tty0] enabled

  • serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

  • 00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

  • 0000:00:16.3: ttyS1 at I/O 0x2090 (irq = 17) is a 16550A

  • 使用cat /proc/tty/driver/serial

serinfo:1.0 driver revision:
0: uart: 16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:unknown port:000002F8 irq:3
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3

串口0的uart值时16550A,tx值为0,rx值也为0,因此断定本机只有一个串口,是串口0,即ttyS0


2.1、使用普通用户配置好串口终端的参数后运行,常常会遇到如下的错误提示:

Cannot open /dev/ttyS0: Permission denied.

发生这个错误的原因是默认情况下,普通用户没有权限读写串口设备。

crw-rw---- 1 root dialout 4, 64 2月   4 06:40 /dev/ttyS0      //重启系统的默认权限,atc用户无w权限

Linux下的串口设备名通常是/dev/ttyS[0-9]或者/dev/ttyUSB[0-9],后者对应的是USB转串口的设备。

要解决问题, 增加一下udev规则即可。

$ sudo vim /etc/udev/rules.d/90-serials.rules         //RHEL6.5/6.8默认没有文件 90-serials.rules,增加该文件?

KERNEL=="ttyS[0-9]",NAME="%k",GROUP="tty",MODE="0666"
KERNEL=="ttyUSB[0-9]",NAME="%k",GROUP="tty",MODE="0666"

2.2、解决方法2如下:( 在RHEL6.8系统APP1席位测试OK)

1).由于tty属于“dialout”组别,比如用户名是atc,

先命令查看下用户隶属的组别

groups atc

2).如果没有隶属“dialout”,那么把用户加入进去

sudo gpasswd --add atc dialout

3) .logout 再登录系统激活功能


3、临时为 /dev/ttyS0启用串口登录(重启后失效):

systemctl start getty@ttyS0.service

永久为 /dev/ttyS0启用串口登录:

systemctl enable serial-getty@ttyS0.service

查看 /dev/ttyS0的串口登录功能是否启用:

systemctl status serial-getty@ttyS0.service

请使用浏览器的分享功能分享到微信等