Gnu-Screen
為什麼我可以通過螢幕打開串口但不能通過minicom打開?
我有一個通過串口的 arduino 通信
/dev/ttyACM0
,我可以通過螢幕打開它:$ screen /dev/ttyACM0 115200
但由於某種原因,我沒有權限通過 minicom 打開它:
$ minicom /dev/ttyACM0 -b 115200 minicom: cannot open /dev/tty8: Άρνηση πρόσβασης
我的使用者在
dialout
組中:$ groups pcmagas adm dialout cdrom sudo dip plugdev lpadmin sambashare wireshark kvm docker $ whoami pcmagas
任何想法為什麼?AFAIK arduino 使用 FTDI 晶片,核心使用的模組是
cdc_acm
一個:$ udevadm info --query=all --name=/dev/ttyACM0 P: /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/tty/ttyACM0 N: ttyACM0 S: android0 S: serial/by-id/usb-Arduino__www.arduino.cc__0043_7533131313335170A061-if00 S: serial/by-path/pci-0000:00:14.0-usb-0:3:1.0 E: DEVLINKS=/dev/serial/by-id/usb-Arduino__www.arduino.cc__0043_7533131313335170A061-if00 /dev/android0 /dev/serial/by-path/pci-0000:00:14.0-usb-0:3:1.0 E: DEVNAME=/dev/ttyACM0 E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/tty/ttyACM0 E: ID_BUS=usb E: ID_MM_CANDIDATE=1 E: ID_MODEL=0043 E: ID_MODEL_ENC=0043 E: ID_MODEL_FROM_DATABASE=Uno R3 (CDC ACM) E: ID_MODEL_ID=0043 E: ID_PATH=pci-0000:00:14.0-usb-0:3:1.0 E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_1_0 E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller E: ID_PCI_INTERFACE_FROM_DATABASE=XHCI E: ID_PCI_SUBCLASS_FROM_DATABASE=USB controller E: ID_REVISION=0001 E: ID_SERIAL=Arduino__www.arduino.cc__0043_7533131313335170A061 E: ID_SERIAL_SHORT=7533131313335170A061 E: ID_TYPE=generic E: ID_USB_CLASS_FROM_DATABASE=Communications E: ID_USB_DRIVER=cdc_acm E: ID_USB_INTERFACES=:020201:0a0000: E: ID_USB_INTERFACE_NUM=00 E: ID_VENDOR=Arduino__www.arduino.cc_ E: ID_VENDOR_ENC=Arduino\x20\x28www.arduino.cc\x29 E: ID_VENDOR_FROM_DATABASE=Arduino SA E: ID_VENDOR_ID=2341 E: MAJOR=166 E: MINOR=0 E: SUBSYSTEM=tty E: TAGS=:systemd: E: USEC_INITIALIZED=9517655754
雖然通過將
-D
參數傳遞給 minicom 確實打開了:minicom -D /dev/ttyACM0 -b 115200
但我不明白為什麼
-D
需要參數。那是因為使用了設備plugdev
組嗎?ll /dev/ttyACM0 crw-rw---- 1 root plugdev 166, 0 Αυγ 11 13:05 /dev/ttyACM0
minicom
在沒有該-D
選項的情況下,實際上不接受命令行上的設備名稱。如果指定了非選項參數,它將用作 Minicom 配置文件的後綴。如果您指定
minicom /dev/ttyACM0
,它實際上會嘗試在/etc/minicom/minirc./dev/ttyACM0
或處讀取配置文件~/.minirc./dev/ttyACM0
。預期用途是這樣的:
- 在設置模式下啟動 Minicom,為您的新配置提供所需的名稱,例如
minicom -s arduino
. 或者,您可以使用其他選項在此處指定埠和速度,例如minicom -D /dev/ttyACM0 -b 115200 -s arduino
.- 轉到
Serial port setup
菜單並將“串列設備”(項目A
)更改為/dev/ttyACM0
並將 BPS/奇偶校驗/位(項目E
)更改為 115200 8N1(或您的設備需要的任何內容。還根據需要設置硬體和軟體流控制(項目F
和G
)。- 按 Esc 返回配置菜單,選擇
Save setup as arduino
,然後選擇Exit from Minicom
- 現在 Minicom 已配置完畢,您可以使用保存的埠、速度和流量控制設置啟動它,只需
minicom arduino
.如果您以 root 身份進行配置,則設置將保存到
/etc/minicom/minirc.arduino
,並且將可供系統上的所有使用者使用(假設/etc/minicom
所有人都可以閱讀);如果您以普通使用者的身份執行此操作,則設置將保存到~/.minirc.arduino
該使用者帳戶並且僅可用於該使用者帳戶。