如何以静态名称绑定 HIDRAW 设备?

如何以静态名称绑定 HIDRAW 设备?

有人问这个问题几次关于通用 USB 设备。但是,udev 方法似乎不适用于 HIDRAW 设备。

我尝试编写如下内容/etc/udev/rules.d/10-local.rules

 ACTION=="add", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="16d6", ATTRS{product}=="JA-100 Flexi", SYMLINK+="my_device"

但这会映射父 USB 设备,而不是 HIDRAW 设备。那么,如何保留 hidraw 的名称,以防它在从 hidraw0 重新连接到 hidraw1 后发生变化?

答案1

首先你需要找到hidraw设备

dmesg | grep "hidraw"

然后你需要获取它的属性

udevadm info --name=/dev/hidraw* --attribute-walk

其中 * 是设备的编号(例如 hidraw5)。从这里您需要找到ATTRS{id}.

然后创建一个规则RPi 上的文件包含以下内容:

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

使用以下内容修改文件:

SUBSYSTEM=="hidraw", ATTRS{id}=="00241011", SYMLINK+="hidraw_static"

其中ATTRS{id}是之前设备的 ID,SYMLINK是您选择的名称。

保存此文件后运行以下命令

sudo udevadm control --reload
sudo udevadm trigger

检查新名称是否正确到正确的 hidraw*

ls -l /dev/hidraw_static

应该看起来像这样

lrwxrwxrwx 1 root root 7 Dec 14 10:41 /dev/hidraw_static -> hidraw6

这适用于连接到 RPi 3b+ 的蓝牙连接条形码扫描仪。

相关内容