ros 配置udev
2024-10-06 17:29:50
显示已经链接设备
lsusb
显示挂载点
ls /dev/ttyACM* /dev/ttyUSB*
可以看到 ttyUSB0
和 ttyUSB1
对应哪一个设备不确定,因此,我们就需要一种方法来保证每次开机后唯一的设备挂载点对应一个确定的设备,这样我们的程序就可以正确操控相应的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。可以只是追加该参数
最新文章
- Mac上编译C++报错
- C# Regex实例
- 优雅的数组降维——Javascript中apply方法的妙用
- [转载]Eclipse提示No java virtual machine
- 【转】Windows Phone 8 开发环境的搭建
- Oracle 性能维护一点
- nss_12 上传文件后返回jsonresult结果,IE中出现文件下载框
- js刷新
- sql常识-Join
- hibernate的get、load的方法的区别,IllegalArgument异常
- for_each 用法!
- Ubuntu+Eclipse+ADT+Genymotion+VirtualBox开发环境搭建
- ORA-12514(TNS:监听程序当前无法识别...)
- Android进程间通信(IPC)机制Binder简介和学习计划
- 免费UI框架推荐--Charisma UI
- CJOJ 1494 【网络流24题】 搭配飞行员(二分图最大匹配)
- C#生成缩略图源码
- Educational Codeforces Round 56 (Rated for Div. 2) D
- 用java输入分数,得出分数等级
- jQuery获取节点和子节点文本的方法