如果有多個usb連結到電腦,如果插入的先後順序不同,那麼會導致對應的usb口也會不同,例如當只有一個鐳射的usb連結到電腦,其裝置名字為/dev/ttyUSB0;當如果有底盤的usb以及鐳射的usb連到電腦時,如果先插入底盤的usb,再插入鐳射的usb底盤的usb,那麼鐳射的usb對應的裝置名字就變成了/dev/ttyUSB1。在實際中我們想鐳射裝置對應識別出來的裝置名字是不變的,比如我們想它一直是名字/dev/ttyLaser。為了做到這樣的效果,我們需要編輯linux提供的規則檔案,來完成這樣的功能。具體的步驟如下:
a.編輯鐳射usb的規則
sudo vim /etc/udev/rules.d/laser-usb-serial.rules
b.輸入內容
SUBSYSTEM=="tty", ATTRS{idVendor}=="2d31", ATTRS{idProduct}=="5874", SYMLINK+="ttyLaser", MODE:="0666",OWNER:="root"
關於SUBSYSTEM、idVendor、idProduct屬性的性質可以通過一下的命令查詢到:
lsusb
或者
udevadm info --name=/dev/ttyUSBx --attribute-walk
請先插入鐳射的usb到電腦,然後執行以上的命令,注意 /dev/ttyUSBx 中的x表示對應的標識號,可以在/dev查詢,例如可以輸入人:ls /dev/ttyUSB 然後tab一下就能顯示所有的裝置名稱
c.更新規則
sudo udevadm trigger
d.檢查
如果一切順利的話,會發現通過命令來檢查:
ls -l /dev/ttyLaser
詳細的設定方法,請參考:How to bind USB device under a static name?