1、将realsense D435i 设备 设置固定的硬件别名:
(base) lll@lll-L4T:~$ lsusb
Bus 002 Device 019: ID 8086:0b3a Intel Corp.
在 /etc/udev/rules.d/ttl_uart_lll.rules 中加入:
KERNEL=="video*", ATTRS{idVendor}=="8086", ATTRS{idProduct}=="0b3a", MODE:="0777", SYMLINK+="D435i"
2、将usbHub 设备的四个插空指定,固定的硬件别名:
背景: 由于四个扩展口都打算接ttl或是232之类的设备,而且都是由usb转换器完成的从usb到指定串口类型硬件的转换。
所以,usbHub上接的四个设备的生产商和产品号都一致,所以无法用上面的方法做到唯一性对应。
如下: 我的转换器用的是正点原子的 ATK-USB-CH340 接口:USB/RS232/RS485/TTL 隔离型。
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="ttl_uart"
所以,使用插口地址写rules,完成别名指定:
通过下面语句完成对四个口地址(KERNELS)的查询,一个转换器插在1#口上,另一个依次插的3#,2#,4#口:
(base) lll@lll-L4T:~/Desktop/logs/usbHub$ udevadm info -a -n /dev/ttyUSB0 | grep KERNELS
KERNELS=="ttyUSB0"
KERNELS=="1-2.2.1:1.0"
KERNELS=="1-2.2.1"
KERNELS=="1-2.2"
KERNELS=="1-2"
KERNELS=="usb1"
KERNELS=="3610000.xhci"
(base) lll@lll-L4T:~/Desktop/logs/usbHub$ udevadm info -a -n /dev/ttyUSB1 | grep KERNELS
KERNELS=="ttyUSB1"
KERNELS=="1-2.2.3:1.0"
KERNELS=="1-2.2.3"
KERNELS=="1-2.2"
KERNELS=="1-2"
KERNELS=="usb1"
KERNELS=="3610000.xhci"
(base) lll@lll-L4T:~/Desktop/logs/usbHub$ udevadm info -a -n /dev/ttyUSB1 | grep KERNELS
KERNELS=="ttyUSB1"
KERNELS=="1-2.2.2:1.0"
KERNELS=="1-2.2.2"
KERNELS=="1-2.2"
KERNELS=="1-2"
KERNELS=="usb1"
KERNELS=="3610000.xhci"
(base) lll@lll-L4T:~/Desktop/logs/usbHub$ udevadm info -a -n /dev/ttyUSB1 | grep KERNELS
KERNELS=="ttyUSB1"
KERNELS=="1-2.2.4:1.0"
KERNELS=="1-2.2.4"
KERNELS=="1-2.2"
KERNELS=="1-2"
KERNELS=="usb1"
KERNELS=="3610000.xhci"
(base) lll@lll-L4T:~/Desktop/logs/usbHub$
于是在 /etc/udev/rules.d/ttl_uart_lll.rules 中加入:
KERNELS=="1-2.2.1", MODE:="0777", GROUP:="dialout", SYMLINK+="usbHub1"
KERNELS=="1-2.2.2", MODE:="0777", GROUP:="dialout", SYMLINK+="usbHub2"
KERNELS=="1-2.2.3", MODE:="0777", GROUP:="dialout", SYMLINK+="usbHub3"
KERNELS=="1-2.2.4", MODE:="0777", GROUP:="dialout", SYMLINK+="usbHub4"
最终效果:
(base) lll@lll-L4T:~/Desktop/logs/usbHub$ ls -l /dev/ttyU*
crwxrwxrwx 1 root dialout 188, 0 Dec 3 09:17 /dev/ttyUSB0
crwxrwxrwx 1 root dialout 188, 1 Dec 3 09:19 /dev/ttyUSB1
(base) lll@lll-L4T:~/Desktop/logs/usbHub$ ls -l /dev/usbHub*
lrwxrwxrwx 1 root root 7 Dec 3 09:17 /dev/usbHub1 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Dec 3 09:19 /dev/usbHub3 -> ttyUSB1
(base) lll@lll-L4T:~/Desktop/logs/usbHub$
3、获取usb等外设的永久权限:
sudo usermod -a -G dialout lll #注意这里的 lll 需换成自己系统的用户名
参考文档:
https://blog.youkuaiyun.com/qq_38601133/article/details/118685219
https://blog.youkuaiyun.com/beiguodexuecsdn/article/details/103099456