不同方法在于rules文件的编写。
-
rules文件编写
-
方法一:针对不同转换芯片
-
在未插入和插入USB设备时,分别通过lsusb命令查看所连接的USB设备。可以看出硬件ID为"1b3f:8301"
-
在/etc/udev/rules.d中创建.rules文件,比如我的是my.rules,输入以下内容:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1b3f", ATTRS{idProduct}=="8301", MODE:="0777",GROUP:="dialout", SYMLINK+="rplidar"
其中,KERNEL是激光雷达的USB端口名,ATTRS{idVendor}是硬件ID的前四位数,ATTRS{idProduct}是硬件ID的后四位数,MODE表示可读写权限,SYMLINK是映射名称
-
-
方法二:针对同一款芯片(这里以CP2102为例)
- 查看。对于工控机连接了多个CP2102设备,如下图
可以看出硬件ID是完全一样的,都是10c4:ea60
- 改写串口号。插入CP2102设备到windows,打开CP21xxCustomizationUtility软件。可以看到默认串口号是0001,我这里改写成0003.
-
在/etc/udev/rules.d中创建.rules文件,比如我的是cp.rules,输入以下内容:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{serial}=="0003" MODE:="0777",GROUP:="dialout", SYMLINK+="imu"
对于CP2102串口号是3,不同的芯片不一样,需要设置不同串口
-
-
重新加载udev,或者插拔一下
sudo service udev reload sudo service udev restart