Linux 下用 screen 連接 Serial Port

2018-07-25

Connect

有在做嵌入式系統平常應該都在 Windows 下用 Putty 之類的工具來進行 COM 連接,如果開發環境在 Linux 的話,要連接系統還要切到 Windows 操作豈不是太不方便了,經過一番搜尋,總算找到在 Linux 也能優雅連接的方式。

查詢 COM Port

在 Windows 下,使用裝置管理員就能查詢序列埠,在 Linux 下,先用 dmesg 來查詢 tty 連接記錄。

1
dmesg | grep tty

會印出類似 log 的東西。

1
2
3
4
5
6
7
[    0.000000] console [tty0] enabled
[ 0.363187] 0000:00:16.3: ttyS0 at I/O 0x60b0 (irq = 19, base_baud = 115200) is a 16550A
[70780.799601] usb 1-1.2: pl2303 converter now attached to ttyUSB0
[70820.199828] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[70833.676660] usb 1-1.2: pl2303 converter now attached to ttyUSB0
[77968.249687] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[77968.251187] pl2303 ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32

如果看不出來自己插的是哪個 tty,可以先印出來,然後拔掉,再看一次記錄來比對,像是我用 USB 來連接 COM,大概猜一下應該是 ttyUSB0

如果你是直接插 USB 來連接的話可以執行下這個指令來查詢。

1
ls /dev/ttyUSB*

Serial 連接

Linux 下有一些 Serial 連接工具,像是 cu, minicom, screen 等等,這邊用 screen 來進行示範。

有些作業系統可能不會預裝 screen,要先自行安裝。

Arch Linux

1
sudo pacman -S screen

Ubuntu & Debian

1
sudo apt-get install screen

Redhat (CentOS, Fedora)

1
sudo yum install screen

安裝完成後就可以下指令來連接 COM Port 了,speed 通常是 9600115200,最主要還是要看你那台設備的參數來輸。

1
sudo screen /dev/ttyUSB0 -s <speed>

記得要加 sudo 不然會跑出 [*screen is terminating*] 訊息。


留言: