Linux

Raspian:靜態映射 /dev/ttyUSB*

  • January 13, 2019

我正在使用執行 Raspian 的 Raspberry Pi 來控制一些家庭自動化硬體。一個硬體通過 RS232 說話,因此它使用 USB 轉 RS232 適配器連接到我的 RPi。另一個通過 USB 連接,但模擬串列埠。

當我只使用一個硬體時,一切都很好:我只是告訴我的軟體使用/dev/ttyUSB0,一切都很好。

問題是當我同時連接兩者時。一個設備顯示為ttyUSB0,一個顯示為ttyUSB1,這很好,但在每次重新啟動時,哪個硬體設備將分配給哪個設備文件基本上是隨機的,儘管甚至沒有將它們從 RPi 中拔出。

每次重啟後,我都會發現控制軟體很混亂,因為它正在與錯誤的設備通信。有沒有辦法可以將設備“硬編碼”到設備文件中?

對於串列設備,您應該在 下找到它們按拓撲命名/dev/serial/by-path/,因此如果您使用相同的 USB 集線器和埠,它應該保持不變。例如:

ls -l /dev/serial/by-path/pci-0000:04:00.0-usb-0:2.1.1:1.0-port0
... /dev/serial/by-path/pci-0000:04:00.0-usb-0:2.1.1:1.0-port0 -> ../../ttyUSB0

同樣,您應該在 下按名稱查找設備,有時包括序列號/dev/serial/by-id/,例如:

ls -l /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A5771WOA-if00-port0
... /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A5771WOA-if00-port0 -> ../../ttyUSB0

引用自:https://unix.stackexchange.com/questions/382831