有人问这个问题几次关于通用 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+ 的蓝牙连接条形码扫描仪。