イベントを発生させる 「trigger」
triggerサブコマンドは,
$ sudo udevadm trigger
実際には事前に別のウィンドウで
$ udevadm monitor monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent KERNEL[960.580785] change /devices/LNXSYSTM:00 (acpi) KERNEL[960.580831] change /devices/LNXSYSTM:00/LNXCPU:00 (acpi) KERNEL[960.580855] change /devices/LNXSYSTM:00/LNXCPU:01 (acpi) KERNEL[960.580883] change /devices/LNXSYSTM:00/LNXCPU:02 (acpi) KERNEL[960.580905] change /devices/LNXSYSTM:00/LNXCPU:03 (acpi) (中略) UDEV [961.259537] change /devices/virtual/workqueue/writeback (workqueue) UDEV [961.259567] change /devices/virtual/vc/vcsa6 (vc) UDEV [961.260298] change /devices/virtual/vc/vcs4 (vc) UDEV [961.261334] change /devices/pci0000:00/0000:00:1b.0/sound/card0 (sound) UDEV [961.268727] change /devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda (block)
ひたすらchangeイベントが届いていますね。
「-c
」-v
」
$ sudo udevadm trigger -v -c change /dev/bus/usb/003/005 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/bluetooth/hci1 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/bluetooth/hci1/rfkill4 /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.1
他にも属性やプロパティ,
単に特定のデバイス向けのルールファイルをテストしたいだけなら,
$ sudo udevadm test $(udevadm info -n /dev/bus/usb/003/005 -q path) calling: test version 239 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 Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules Reading rules file: /lib/udev/rules.d/40-usb_modeswitch.rules (中略) Reading rules file: /lib/udev/rules.d/99-systemd.rules rules contain 393216 bytes tokens (32768 * 12 bytes), 37665 bytes strings 31410 strings (260972 bytes), 27952 de-duplicated (226766 bytes), 3459 trie nodes used IMPORT builtin 'usb_id' /lib/udev/rules.d/50-udev-default.rules:13 IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:13 MODE 0664 /lib/udev/rules.d/50-udev-default.rules:42 handling device node '/dev/bus/usb/003/005', devnum=c189:260, mode=0664, uid=0, gid=0 preserve permissions /dev/bus/usb/003/005, 020664, uid=0, gid=0 preserve already existing symlink '/dev/char/189:260' to '../bus/usb/003/005' ACTION=add BUSNUM=003 DEVNAME=/dev/bus/usb/003/005 (後略)
testサブコマンドはデバイスパスしか渡せないので,
udevデーモンを操作する 「control」
controlサブコマンドはudevデーモンそのものを操作するサブコマンドです。あまり使うことはありませんが,-l
」-R
」,-s
」-S
」
udevのビルトインコマンドを実行する 「test-builtin」
第555回の
blkid
:UUIDなどを取得するbtrfs
:btrfs関連の情報取得hwdb
:hwdbからデータを取得input_
:入力デバイス関連の情報を取得id keyboard
:キーマッピングなどをスキャンkmod
:カーネルモジュールのロードnet_
:ネットワークデバイスの情報取得id net_
:ネットワークのリンク設定setup_ link path_
:デバイスパスの元になる情報の取得id usb_
:USB関連の情報を取得id uaccess
:アクセスコントロール関連の情報取得
ホットプラグ関連だと,usb_
によるUSBデバイス情報がルールファイル作成時の参考になるでしょう。
$ sudo udevadm test-builtin usb_id $(udevadm info -n /dev/bus/usb/003/005 -q path) calling: test-builtin Load module index Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. ID_VENDOR=0a12 ID_VENDOR_ENC=0a12 ID_VENDOR_ID=0a12 ID_MODEL=CSR8510_A10 ID_MODEL_ENC=CSR8510\x20A10 ID_MODEL_ID=0001 ID_REVISION=8891 ID_SERIAL=0a12_CSR8510_A10 ID_BUS=usb ID_USB_INTERFACES=:e00101: Unload module index Unloaded link configuration context.
ルールファイルの中でどのようなプロパティがセットされるか確認したいときに便利です。