之前做过技术文档的整理,但是今天换了个IMU传感器,就需要重新配置udev原则系统。这里做了个记录,方便以后的查询。
解决的问题?
如果有多个传感器同时通过usb接入工控机,你可以通过指令
dmesg |grep tty
去查询接入的几个传感器例如ttyUSB0 这样的,然后就在修改传感器的驱动代码里的配置端口号。
但是,会出现一个问题:
usb的端口号ttyUSB0 ttyUSB1后面的和这个数字是根据通电顺序随机分配的,我们将机器人装好了之后,不可能每次开机都要重新配置端口号。这样每个usb端口的号码每次开机都是不同的。
udev原则就是来解决这个问题,通过将usb设备的地址来映射名称。因为usb设备的地址是与你的设备有关,言外之意是地址id唯一的,这样就能保证系统每次开机usb端口号是不变的。
具体操作:
首先确定你的设备的ID地址:命令
lsusb
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
D 0e0f:0003 这个就是ID地址
找到ID地址,然后就要去在/etc/udev/rules.d文件夹下创建usb.rules
并在usb.rules下写入如下的代码:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0777", SYMLINK+="Baselink"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0777", SYMLINK+="GPS"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="Lidar"
这里我使用了底盘控制器、GPS、激光雷达的接口,仔细对照上述得ID地址,你就会知道咋回事,本质就是映射,GPS 可以用“/dev/GPS” 替代。
20200727
于实验室