如果您使用:
udevadm monitor
您将获得KERNEL和UDEV所执行的每个操作的条目。通常添加,更改,删除。如果包括该--property
选项:
udevadm monitor --property
您将获得使用哪些属性的列表。
正如可以使用udevadm测试udev规则:
udevadm test $(udevadm info -q path -n <device>)
一个人可以测试出这样的东西:
udevadm test $(udevadm info -q path -n <device>) 2>&1 | \
sed -n 's/.* \(\/[^ ]*\)\.rules:\([0-9]\+\)/\1.rules \2/p' | \
while read -r f n; do printf "%03d:%-50s " $n "$f"; sed -n ${n}p $f; done
但不确定这有多可靠。总之,例如使用video1
的<device>
可能产生类似:
031:/lib/udev/rules.d/50-udev-default.rules SUBSYSTEM=="video4linux", GROUP="video"
007:/lib/udev/rules.d/60-persistent-v4l.rules IMPORT{program}="v4l_id $devnode"
009:/lib/udev/rules.d/60-persistent-v4l.rules SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
010:/lib/udev/rules.d/60-persistent-v4l.rules KERNEL=="video*", ENV{ID_SERIAL}=="?*", SYMLINK+="v4l/by-id/$env{ID_BUS}-$env{ID_SERIAL}-video-index$attr{index}"
016:/lib/udev/rules.d/60-persistent-v4l.rules IMPORT{builtin}="path_id"
017:/lib/udev/rules.d/60-persistent-v4l.rules ENV{ID_PATH}=="?*", KERNEL=="video*|vbi*", SYMLINK+="v4l/by-path/$env{ID_PATH}-video-index$attr{index}"
015:/lib/udev/rules.d/73-seat-late.rules TAG=="uaccess", ENV{MAJOR}!="", RUN{builtin}+="uaccess"
006:/etc/udev/rules.d/83-webcam.rules KERNEL=="video[0-9]", SUBSYSTEMS=="usb", ATTRS{idVendor}=="0c45", SYMLINK+="video-webcam1"
但是从整体上看测试会更好。另请注意以下消息:
该程序仅用于调试,它不会运行RUN键指定的任何程序。它可能显示错误的结果,因为某些值可能不同或在模拟运行中不可用。
您也可以设定
udev_log="debug"
在udev.conf
和重启的udev( reload udev
),以获得一个较为详细的输出。
rules.d
内容可能会留下很多谜团。