Ubuntu下綁定USB端口號


轉載自:http://www.cnblogs.com/CZM-/p/6113475.html

 

由於ubuntu USB設備號為從零開始依次累加,所以多個設備每次開機后設備號不固定,機器人每次開機都要蛋疼的按順序插,

在網上找到一種方法:udev的規則

udev的規則說明,可以參考博客說明:http://blog.csdn.net/cokewei/article/details/8281239

將端口重映射到新的固定的名字,並且設置其權限為可讀。使用對應的id端口映射到固定的名字上。

1
lsusb

查看對應的usb端口信息

1
2
3
4
5
6
7
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

udev的規則

$kernel, %k:設備的內核設備名稱,例如:sda、cdrom。

ID  10c4:ea60     表示usb設備的ID(這個ID由芯片制造商設置,可以唯一表示該設備)
    10c4    usb_device_descriptor.idVendor
    ea60    usb_device_descriptor.idProduct

依據上面信息寫udev文件:我用的是rplidar的激光雷達usb串口

我的串口設備信息

1
Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
1
sudo vi /etc/udev/rules.d/rplidar.rules

  

1
KERNEL== "ttyUSB*" , ATTRS{idVendor}== "10c4" , ATTRS{idProduct}== "ea60" , MODE:= "0777" , SYMLINK+= "rplidar" 

 創建生效后重新插拔USB

1
ls -l /dev |grep ttyUSB

  顯示

1
2
3
lrwxrwxrwx  1 root   root           7 Nov 29 14:03 rplidar -> ttyUSB1
crw-rw-rw-  1 root   dialout 188,   0 Nov 29 14:03 ttyUSB0
crwxrwxrwx  1 root   dialout 188,   1 Nov 29 14:03 ttyUSB1

多個不同型號設備可使用這種方法來區分

 打開設備時,用(/dev/rplidar)即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM