Answers:
我很确定这应该可行。您在编辑规则后是否重新加载了udev规则?
udevadm control --reload-rules && udevadm trigger
作为根。
KERNEL!="sdz*"
,您应该获得所有内容(
udevadm monitor
我正在运行内核3.0.35,但是以下对我有用。
要获取设备的路径,您可以执行以下操作:
udevadm info --name /dev/sda1 --query all
您将获得比您所需更多的信息,但您对DEVPATH感兴趣。然后查看执行了哪些udev规则,请运行以下命令:
udevadm test DEVPATH
我认为这实际上并没有执行规则,文档说这可以“模拟”给定设备的事件。要获取更多信息,请查看此手册页:https : //www.freedesktop.org/software/systemd/man/udevadm.html
以udev / systemd 241和类似版本(以root用户身份):
udevadm control --log-priority=debug
journalctl -f
或者将其永久化,再次作为根:
vi /etc/udev/udevd.conf
systemctl restart systemd-udevd
journalctl -f
PS:最常见但恕我直言的错误答案如下:
udevadm -d test / devices / where / is / my / device |&less
……但这有很多问题。主要的:
where/is/my/device
?乏味,复杂且容易出错。
将最新的udev版本241输出的旧答案进行比较,udevadm test
似乎显示的信息较少。
udevadm -d test
只是一个模拟!每次警告:
该程序仅用于调试,它不会运行RUN键指定的任何程序。它可能显示错误的结果,因为某些值可能不同,或者在模拟运行中不可用。
udevadm test
用于制定新规则,而不是对已损坏,丢失或覆盖的规则进行故障排除。
udevadm test $(udevadm info --query=path --name=device_name)
应该根据所涉及的规则告诉您哪些命令将在设备插件上执行udev
。例如:
# udevadm test /block/sdd
...
udev_rules_apply_to_event: PROGRAM '/sbin/multipath -c /dev/sdd' /lib/udev/rules.d/40-multipath.rules:11
...
SUBSYSTEMS=="usb"
。即双精度==
测试是否相等,而不是单=
精度给键分配值。