verwirrt über die Verwendung von udevadm

verwirrt über die Verwendung von udevadm

Das ultimative Ziel besteht hier darin, das Touchpad am Mausstecker ein-/auszuschalten. Ich versuche also, mithilfe von udevadm einige Eigenschaften meiner Maus und meines Touchpads aus der Udev-Datenbank abzurufen. Allerdings verstehe ich nicht, wie das funktioniert, und leider ist mir die Manpage nicht klar genug …

$ lsb_release -irc
Distributor-ID: Debian
Version: 8.4
Codename: Jessie

Nach diesen Informationen suche ich:

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"

Von hier aus habe ich Folgendes versucht:

$ 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/`

und ich bekomme das

Unbekanntes Gerät, absoluter Pfad in /dev/ oder /sys erwartet.

Wenn ich überwache, erhalte ich dieses Ergebnis:

$ 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)

Also ich habe auch Folgendes probiert:

$ 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/

und das

$ 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/

und erhalte dieses Ergebnis

Syspath nicht gefunden

Die einzige Möglichkeit, eine Eigenschaft abzurufen, besteht in der Verwendung des folgenden Befehls:

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

Und ich verstehe dies, aber ich habe nicht das Attribut, nach dem ich suche … (dh ATTR{name})

P: /Geräte/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/Eingabe/Eingabe26/Maus1
N: Eingabe/Maus1 S: Eingabe/nach-ID/usb-1ea7_2.4G_Wireless_Mouse-Maus
S: Eingabe/nach-Pfad/PCI-0000:03:00.0-USB-0:1:1.0-Maus
E: DEVLINKS=/dev/input/by-id/usb-1ea7_2.4G_Wireless_Mouse-Maus /dev/input/by-path/pci-0000:03:00.0-usb-0:1:1.0-Maus
E: DEVNAME=/dev/input/mouse1
E: DEVPATH=/Geräte/pci0000:00/0000:00:1c.3/0000:03:00.0/usb2/2-1/2-1:1.0/0003:1EA7:0064.0003/Eingabe/Eingabe26/Maus1
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=2.4G_Drahtlose_Maus
E: ID_MODEL_ENC=2.4G\x20Kabellos\x20Maus
E: ID_MODEL_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_Wireless_Mouse
E: ID_TYPE=versteckt
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: MAJOR=13
E: MINOR=33
E: SUBSYSTEM=Eingabe
E: USEC_INITIALIZED=77840674

Ich habe also offensichtlich ein Missverständnis darüber, wie ich udev abfrage, um das Attribut eines Geräts zu erhalten.

Ich hoffe, ich habe mich klar genug ausgedrückt. Wenn jemand eine Idee hat, wo ich einen Fehler gemacht habe, ist jeder Beitrag willkommen!

Danke !

Matth.

Antwort1

Beachten Sie, dass sich die Eingabenummer geändert hat (von 25, was Sie versucht haben, zu 26, was ), da nicht garantiert ist, dass diese bei mehreren Systemstarts konstant bleiben. Versuchen Sie es

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

mit dem konstanten by-idsymbolischen Link, um den Pfad im erwarteten Format zu erhalten udev, dann so etwas wie

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

um den Pfad abzulaufen und alle Attribute entlang des Weges auszugeben (zur Identifizierung müssen Sie möglicherweise übergeordnete Attribute verwenden).

Das kann man auch kombinieren:

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

Antwort2

ich benutzte

udevadm info -a /dev/hidraw0   

Antwort3

Entfernen Sie abschließende Schrägstriche ( /) wie udevadm info -a -p /sys/class/net/enp0s3stattudevadm info -a -p /sys/class/net/enp0s3/

verwandte Informationen