Wiki
Clone wikicomp-house.repo / DebugUDEVRules
Отладка правил в Udev.
Правила udev находятся в файлах *.rules в каталогах
/usr/lib/udev/rules.d - системные предустановленные /etc/udev/rules.d - пользовательские
Перезграузка правил udev, чтобы не перезагружать машину после правки файла с правилами. После этого необходимо переткнуть устройство, чтобы udev отработал уже новую последовательность правил.
udevadm control --reload udevadm control --reload-rules
Мониторинг событий udev. Втыкая устройство можно убедиться, что udev его видит и отрабатывает события.
udevadm monitor --subsystem-match=usb --kernel --udev
Тест правил для конкретного устройства usb
Сначала ищем устройство, например, телефон:
# lsusb ... Bus 001 Device 014: ID 0bb4:2008 HTC (High Tech Computer Corp.) ...
Затем ищем соответствующее ему устройство:
# for dev in `find /sys/devices/ -name "idVendor"`; do echo -n "${dev} "; cat $dev; done ... /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8/idVendor 0bb4 ...
Затем запускаем симулятор обработки правил и разбираемся. Этот тест просто симуляция добавления устройства, поэтому может работать неверно, но в целом можно понять, что файл с правилами грузится, что после него не грузится еще что-то переопределяющее и правила в нем интерпретируются верно:
# udevadm test /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8/ calling: test version 208 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. load module index read rules file: /usr/lib/udev/rules.d/10-dm.rules read rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules read rules file: /usr/lib/udev/rules.d/13-dm-disk.rules read rules file: /etc/udev/rules.d/20-lightworks.rules read rules file: /usr/lib/udev/rules.d/40-libgphoto2.rules IMPORT found builtin 'usb_id --export %%p', replacing /usr/lib/udev/rules.d/40-libgphoto2.rules:11 read rules file: /usr/lib/udev/rules.d/40-usb_modeswitch.rules read rules file: /usr/lib/udev/rules.d/42-usb-hid-pm.rules read rules file: /etc/udev/rules.d/50-euvccam.rules read rules file: /usr/lib/udev/rules.d/50-udev-default.rules read rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules read rules file: /usr/lib/udev/rules.d/60-drm.rules read rules file: /usr/lib/udev/rules.d/60-ffado.rules read rules file: /usr/lib/udev/rules.d/60-fprint-autosuspend.rules read rules file: /usr/lib/udev/rules.d/60-keyboard.rules read rules file: /usr/lib/udev/rules.d/60-net.rules read rules file: /usr/lib/udev/rules.d/60-pcmcia.rules read rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules read rules file: /usr/lib/udev/rules.d/60-persistent-input.rules read rules file: /usr/lib/udev/rules.d/60-persistent-serial.rules read rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules read rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules read rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules read rules file: /usr/lib/udev/rules.d/60-raw.rules read rules file: /usr/lib/udev/rules.d/61-accelerometer.rules read rules file: /usr/lib/udev/rules.d/62-multipath.rules read rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules read rules file: /usr/lib/udev/rules.d/64-btrfs.rules read rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules read rules file: /usr/lib/udev/rules.d/65-md-incremental.rules read rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules read rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules read rules file: /usr/lib/udev/rules.d/69-libmtp.rules read rules file: /usr/lib/udev/rules.d/69-pilot-link.rules read rules file: /usr/lib/udev/rules.d/69-unifying-receiver.rules read rules file: /usr/lib/udev/rules.d/69-xorg-vmmouse.rules read rules file: /usr/lib/udev/rules.d/70-avrdude_usbprog.rules read rules file: /usr/lib/udev/rules.d/70-power-switch.rules read rules file: /usr/lib/udev/rules.d/70-printers.rules read rules file: /usr/lib/udev/rules.d/70-spice-vdagentd.rules read rules file: /usr/lib/udev/rules.d/70-touchpad-quirks.rules read rules file: /usr/lib/udev/rules.d/70-uaccess.rules read rules file: /usr/lib/udev/rules.d/70-wacom.rules read rules file: /usr/lib/udev/rules.d/71-biosdevname.rules read rules file: /usr/lib/udev/rules.d/71-seat.rules read rules file: /usr/lib/udev/rules.d/73-seat-late.rules read rules file: /usr/lib/udev/rules.d/75-net-description.rules read rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules read rules file: /usr/lib/udev/rules.d/75-tty-description.rules read rules file: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules read rules file: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules read rules file: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules read rules file: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules read rules file: /usr/lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules read rules file: /usr/lib/udev/rules.d/77-mm-platform-serial-whitelist.rules read rules file: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules read rules file: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules read rules file: /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rules read rules file: /usr/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules read rules file: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules read rules file: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules read rules file: /usr/lib/udev/rules.d/77-nm-olpc-mesh.rules read rules file: /usr/lib/udev/rules.d/78-sound-card.rules read rules file: /usr/lib/udev/rules.d/80-drivers.rules read rules file: /usr/lib/udev/rules.d/80-mm-candidate.rules read rules file: /usr/lib/udev/rules.d/80-net-name-slot.rules read rules file: /usr/lib/udev/rules.d/80-udisks.rules read rules file: /usr/lib/udev/rules.d/80-udisks2.rules read rules file: /usr/lib/udev/rules.d/85-regulatory.rules read rules file: /usr/lib/udev/rules.d/85-usbmuxd.rules read rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules read rules file: /usr/lib/udev/rules.d/90-alsa-tools-firmware.rules read rules file: /usr/lib/udev/rules.d/90-pulseaudio.rules read rules file: /etc/udev/rules.d/90-vboxdrv.rules read rules file: /etc/udev/rules.d/90-wireshark-usbmon.rules read rules file: /usr/lib/udev/rules.d/91-drm-modeset.rules read rules file: /usr/lib/udev/rules.d/95-cd-devices.rules read rules file: /usr/lib/udev/rules.d/95-dm-notify.rules read rules file: /usr/lib/udev/rules.d/95-udev-late.rules read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-dell.rules read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-fujitsu.rules read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-gateway.rules read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-ibm.rules read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-lenovo.rules read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-toshiba.rules read rules file: /usr/lib/udev/rules.d/95-upower-csr.rules read rules file: /usr/lib/udev/rules.d/95-upower-hid.rules read rules file: /usr/lib/udev/rules.d/95-upower-wup.rules read rules file: /etc/udev/rules.d/98-kexec.rules read rules file: /etc/udev/rules.d/99-jayiu.rules read rules file: /etc/udev/rules.d/99-libftdi.rules read rules file: /usr/lib/udev/rules.d/99-qemu-guest-agent.rules read rules file: /usr/lib/udev/rules.d/99-systemd.rules rules contain 393216 bytes tokens (32768 * 12 bytes), 32761 bytes strings 29643 strings (247615 bytes), 26556 de-duplicated (217942 bytes), 3088 trie nodes used IMPORT builtin 'usb_id' /usr/lib/udev/rules.d/40-libgphoto2.rules:11 IMPORT builtin skip 'usb_id' /usr/lib/udev/rules.d/50-udev-default.rules:9 IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:9 MODE 0664 /usr/lib/udev/rules.d/50-udev-default.rules:37 PROGRAM 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8 1 14' /usr/lib/udev/rules.d/69-libmtp.rules:1205 starting 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8 1 14' 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8 1 14'(out) '0' 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8 1 14' [5844] exit with return code 0 RUN 'VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers' /etc/udev/rules.d/90-vboxdrv.rules:2 GROUP 0 /etc/udev/rules.d/99-jayiu.rules:1 MODE 0666 /etc/udev/rules.d/99-jayiu.rules:1 handling device node '/dev/bus/usb/001/014', devnum=c189:13, mode=0666, uid=0, gid=0 preserve permissions /dev/bus/usb/001/014, 020666, uid=0, gid=0 preserve already existing symlink '/dev/char/189:13' to '../bus/usb/001/014' ACTION=add BUSNUM=001 DEVNAME=/dev/bus/usb/001/014 DEVNUM=014 DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.8 DEVTYPE=usb_device DRIVER=usb ID_BUS=usb ID_MODEL=MT65xx_Android_Phone ID_MODEL_ENC=MT65xx\x20Android\x20Phone ID_MODEL_ID=2008 ID_REVISION=0216 ID_SERIAL=MediaTek_MT65xx_Android_Phone_DIPJKRMVNFAA4LUS ID_SERIAL_SHORT=DIPJKRMVNFAA4LUS ID_USB_INTERFACES=:ffff00: ID_VENDOR=MediaTek ID_VENDOR_ENC=MediaTek ID_VENDOR_FROM_DATABASE=HTC (High Tech Computer Corp.) ID_VENDOR_ID=0bb4 MAJOR=189 MINOR=13 PRODUCT=bb4/2008/216 SUBSYSTEM=usb TYPE=0/0/0 USEC_INITIALIZED=13594497588 run: 'VBoxCreateUSBNode.sh 189 13 00 vboxusers' unload module index
Updated