udevadm の使い方について混乱している

udevadm の使い方について混乱している

ここでの最終的な目標は、マウス プラグのタッチパッドをオン/オフにすることです。そのため、udevadm を使用して、udev データベースからマウスとタッチパッドのプロパティを取得しようとしていますが、これがどのように機能するのかわかりません。残念ながら、マニュアル ページも十分に明確ではありません...

$ lsb_release -irc
ディストリビュータID: Debian
リリース: 8.4
コードネーム: ジェシー

私が探している情報は次のとおりです:

KERNEL=="input16"
    SUBSYSTEM=="input"
    DRIVER==""
    ATTR{name}=="Bluetooth Laser Travel Mouse"
    ATTR{phys}=="5c:e0:c5:9d:63:fd"
    ATTR{uniq}=="00:07:61:ec:be:5c"
    ATTR{properties}=="0"

ここから私はこれを試しました:

$ udevadm info -a /sys/devices/pci0000\:00/0000\:00\:1c.3/0000\:03\:00.0/usb2/2-1/2-1\:1.0/0003\:1EA7\:0064.0002/input/input25/mouse1/`

そして私はこれを手に入れました

不明なデバイスです。/dev/ または /sys 内の絶対パスが必要です。

監視すると、次の結果が得られます。

$ udevadm monitor -k -s input
monitor will print the received events for:
KERNEL - the kernel uevent

KERNEL[4375.486738] remove   /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0002/input/input25/mouse1 (input)
KERNEL[4375.496500] remove   /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0002/input/input25/event11 (input)
KERNEL[4375.532441] remove   /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0002/input/input25 (input)
KERNEL[4377.840574] add      /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/input/input26 (input)
KERNEL[4377.840667] add      /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/input/input26/mouse1 (input)
KERNEL[4377.840759] add      /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/input/input26/event11 (input)

そこで、これも試してみました:

$ udevadm info -a -p /sys/devices/pci0000\:00/0000\:00\:1c.3/0000\:03\:00.0/usb2/2-1/2-1\:1.0/0003\:1EA7\:0064.0002/input/input25/

この

$ udevadm info -a -p /devices/pci0000\:00/0000\:00\:1c.3/0000\:03\:00.0/usb2/2-1/2-1\:1.0/0003\:1EA7\:0064.0002/input/input25/

そしてこの結果を得る

syspath が見つかりません

プロパティを取得する唯一の方法は、次のコマンドを使用することです。

$ udevadm info --query=all --name=/dev/input/mouse1

そして、私はこれを手に入れましたが、私が探している属性を持っていません...(つまりATTR{name}

P: /devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/input/input26/mouse1
N: 入力/マウス1 S: 入力/by-id/usb-1ea7_2.4G_ワイヤレス_マウス-マウス
S: 入力/バイパス/pci-0000:03:00.0-usb-0:1:1.0-マウス
E: DEVLINKS=/dev/input/by-id/usb-1ea7_2.4G_Wireless_Mouse-mouse /dev/input/by-path/pci-0000:03:00.0-usb-0:1:1.0-mouse
E: デバイス名=/dev/input/mouse1
E: DEVPATH=/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/input/input26/mouse1
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=2.4G_ワイヤレス_マウス
E: ID_MODEL_ENC=2.4G\x20ワイヤレス\x20マウス
E: ID_モデルID=0064
E: ID_PATH=pci-0000:03:00.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_03_00_0-usb-0_1_1_0
E: ID_REVISION=0200
E: ID_SERIAL=1ea7_2.4G_ワイヤレス_マウス
E: ID_TYPE=非表示
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=1ea7
E: ID_VENDOR_ENC=1ea7
E: ID_VENDOR_ID=1ea7
E: メジャー=13
E: マイナー=33
E: サブシステム=入力
E: USEC_INITIALIZED=77840674

したがって、デバイスの属性を取得するために udev をクエリする方法について、私は明らかに誤解しています。

私の説明が十分明確であることを願いますが、もし私が間違っている点についてご意見をお持ちの方がいらっしゃいましたら、ぜひお知らせください。

ありがとう !

マシュー。

答え1

入力番号が( 、25試したものから 、26何 に)変更されたことに注意してください。これは、ブート間で一定であるとは保証されていないためです。

udevadm info -q path -n /dev/input/by-id/usb-1ea7_2.4G_Wireless_Mouse-mouse

定数by-idsymlinkgを使用して、期待される形式でパスを取得するとudev、次のようになります。

 udevadm info -a -p /path/you/just/got

パスをたどり、途中のすべての属性を出力します (識別するには親属性を使用する必要がある場合があります)。

次のように組み合わせることもできます:

udevadm info -a -p $(udevadm info -q path -n /dev/whatever)

答え2

私は

udevadm info -a /dev/hidraw0   

答え3

末尾のスラッシュ(/)を削除しますudevadm info -a -p /sys/class/net/enp0s3udevadm info -a -p /sys/class/net/enp0s3/

関連情報