在使用usb時,Ubuntu系統註冊設備節點是從ttyUSB0開始,然後是ttyUSB1、2 、3...,多個usb接口,先插入設備的分配爲ttyUSB0,後面插入的設備依次註冊設備節點。但是我們使用串口通信時是固定的設備節點名,因此我們無法保證我們的設備節點是否被其他設備註冊了。所以固定usb接口對應的設備節點名是很重要的。
操作步驟:
- 命令終端輸入:lsusb ----查看usb設備
firefly@firefly:~$ lsusb Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- 插入需要固定的usb轉串口設備
- 命令終端輸入:lsusb ----查看固定usb接口的硬件ID如:
firefly@firefly:~$ lsusb Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 007 Device 004: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 1a40:0201 Terminus Technology Inc. FE 2.1 7-port Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
找到多出的外設ID 10c4:ea60
-
命令終端輸入:cd /etc/udev/rules.d/ ----轉到rules配置文件夾下
-
命令終端輸入:sudo vim my_usb.rules ----創建rules文件,重映射設備usb設備名如下
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="laser_USB"
說明:KERNEL:內核固定名稱 ,ID 10c4:ea60: usb設備的ID,是設備廠商的唯一標識,MODE:節點權限 , SYMLINK:符號連接 , 就是我們重映射的節點名稱
-
命令終端輸入:service udev reload ----重載規則
-
命令終端輸入:service udev restart ----重新啓動
-
命令終端輸入:lsusb ----就可以看到我們lser_USB 設備節點名啦