树莓派通过 Udev 规则为 USB 设备(GPS、IMU)分配固定的设备名称

问题描述:

在树莓派上接入了GPS、IMU等设备后,ROS节点需要访问这些设备所连接的USB端口。然而,当设备插入不同的USB端口时,设备的端口名称(如ttyUSB0或ttyUSB1)可能会发生变化,导致每次更换端口后都需要修改程序中的端口名称。这种手动更改既麻烦又容易出错。

为了解决这个问题,可以通过设置Udev规则为这些设备分配固定的设备名称。这样,无论设备连接到哪个USB端口,树莓派都会为它们分配一个固定的名称。例如,无论GPS设备连接到ttyUSB0还是ttyUSB1,系统都会自动将其命名为USB_GPS。这样,程序中只需使用这个固定的设备名称,无需每次更换端口后修改程序。

1、获取设备信息

插入你的 USB 设备,然后使用以下命令获取设备idVendor,idProduct信息

udevadm info -a -n /dev/ttyUSB0

这个命令会显示该设备的所有属性。你需要找到自己设备idVendoridProduct属性,如果两个设备连上树莓派后,idVendoridProduct都相同的话,自己可以加个ATTRS{属性}不同的条件,格式一样。

注意:他输出的可能会有多个idVendor,idProduct这些信息,一般是第一个,自己可以看下product,driver是不是自己设备的相关信息,选一个自己觉得最像的,要是不确定就一个一个试呗

2、创建 udev 规则文件

在 /etc/udev/rules.d/ 目录下创建一个新的 udev 规则文件,例如 99-usb-serial.rules:

sudo nano /etc/udev/rules.d/99-usb-serial.rules

然后在里面写入下面的指令,idVendor,idProduct换成自己设备信息,SYMLINK是你想给这个设备连接端口的命名

SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="wit_imu_usb"

写完之后,ctr+X,然后Y保存,回车退出。

3、应用 udev 规则

sudo udevadm control --reload-rules
sudo udevadm trigger

4、检查设备

拔掉并重新插入你的 USB 设备,然后使用以下命令检查是否成功创建了符号链接

ls -l /dev/wit_imu_usb

然后,你IMU随便接哪个端口,树莓派都会自动给他连接的端口命名为wit_imu_usb了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值