udevadm 规则使用“udevadm test”而不是“udevadm trigger”

Dar*_*ark 5 udev tty openwrt

我创建了一个名为“99-usb.rules”的简单规则,它简单地命名了特定设备的 tty 端口

KERNEL=="ttyACM*", ATTRS{idVendor}=="2341", NAME="mydevice"
Run Code Online (Sandbox Code Playgroud)

当我使用命令运行 udevadm 测试时,此规则工作正常

udevadm test $(udevadm info -q path -n /dev/ttyACM0)
Run Code Online (Sandbox Code Playgroud)

运行此命令会导致“/dev/mydevice”出现,我可以通过“mydevice”与我的 USB 设备进行通信。问题是,我无法在测试环境之外触发此规则。我尝试过“udevadm control -R”和“udevadm trigger”以及断开和重新连接设备并重新启动我的系统。为什么“udevadm trigger”会失败的任何想法?我在 OS OpenWrt Barrier Breaker 14.07 上使用 udev 版本 173。

Eng*_*r77 0

我的 Linux 系统上也有类似的问题。我最终发现该NAME选项的功能严重不足,因为它仅适用于网络接口。它对磁盘驱动器、TTY 和其他由内核管理的东西没有影响。您应该改为使用SYMLINK+=...创建到该设备的符号链接。我认为它更适合你的目的。