Linux
Raspian:靜態映射 /dev/ttyUSB*
我正在使用執行 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