RHEL6.8程式單印表機串列埠檢查

mi_zy發表於2021-02-02

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

檢視方法

  • 檢視串列埠驅動:cat /proc/tty/drivers/serial
  • 檢視串列埠裝置:dmesg | grep ttyS*

  • 使用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.

發生這個錯誤的原因是預設情況下,普通使用者沒有許可權讀寫串列埠裝置。

Linux下的串列埠裝置名通常是/dev/ttyS[0-9]或者/dev/ttyUSB[0-9],後者對應的是USB轉串列埠的裝置。

要解決問題,增加一下udev規則即可。

$ sudo vim /etc/udev/rules.d/90-serials.rules

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

3、臨時為 /dev/ttyS0啟用串列埠登入(重啟後失效):

systemctl start getty@ttyS0.service

永久為 /dev/ttyS0啟用串列埠登入:

systemctl enable serial-getty@ttyS0.service

檢視 /dev/ttyS0的串列埠登入功能是否啟用:

systemctl status serial-getty@ttyS0.service

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2755568/,如需轉載,請註明出處,否則將追究法律責任。

相關文章