Если вы используете:
udevadm monitor
Вы получаете запись для каждого действия, предпринятого KERNEL и UDEV. Обычно добавляют, меняют, удаляют. Если вы включите --property
опцию:
udevadm monitor --property
Вы получите список того, какие свойства используются.
Как можно проверить правила udev с помощью udevadm:
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
но не уверен, насколько это надежно. В любом случае использование eg 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
может оставить много загадок.