不同方法在于rules文件的编写。

  1. 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设备,如下图
      image-20230512161944114

      可以看出硬件ID是完全一样的,都是10c4:ea60

      • 改写串口号。插入CP2102设备到windows,打开CP21xxCustomizationUtility软件。可以看到默认串口号是0001,我这里改写成0003.
      b50fac3b0b1a621e82f57b86ee4a6cf image-20230512163017717
      • 在/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,不同的芯片不一样,需要设置不同串口

  2. 重新加载udev,或者插拔一下

    sudo service udev reload 
    sudo service udev restart
    
posted on 2024-02-28 15:36  房东的猫hhhh  阅读(203)  评论(0编辑  收藏  举报