ros 配置udev

本文介绍了一种确保USB设备每次开机后都能被稳定挂载的方法。通过在/etc/udev/rules.d目录下创建特定的.rules文件,如car.rules,并设置KERNEL、ATTRS、MODE和SYMLINK等属性,可以实现对特定USB设备的唯一识别和稳定调用。无论设备插入哪个USB端口,程序都能正确读取并操作设备。

显示已经链接设备

lsusb

显示挂载点

ls /dev/ttyACM* /dev/ttyUSB*

可以看到 ttyUSB0ttyUSB1 对应哪一个设备不确定,因此,我们就需要一种方法来保证每次开机后唯一的设备挂载点对应一个确定的设备,这样我们的程序就可以正确操控相应的USB设备了。

/etc/udev/rules.d 文件夹创建一个 .rules 文件,比如叫做 car.rules
比如添加一下内容

KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="666", SYMLINK+="car"

ATTRS为设备号,是lsusb看到的。MODE权限,SYMLINK挂载名为car,这样在程序调用 /dev/car 就得到实际设备,从而自己会对应ttyUSB* 。这样不管插那个口都能识别了。

弄完时候重启udev 就可以了

sudo service udev reload
sudo service udev restart

最后插上设备,看看绑定是否成功

ls -l /dev/car

设备ID相同时

使用 dmesg | grep -i usb 检测USB的情况
拔可以得到变化的USB设备详细信息,就算是设备的ID相同,那硬件的kernel值也是不同的。假设我们的目标硬件是1-3。
我们进入rules进行编辑:

KERNELS=="1-3*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001",MODE:="0666", SYMLINK+="laser"

注意这里是KERNELS 不是KERNEL。可以只是追加该参数

转载于:https://www.cnblogs.com/wjundong/p/11109639.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值