confundido sobre el uso de udevadm

confundido sobre el uso de udevadm

El objetivo final aquí es activar/desactivar el panel táctil en el conector del mouse, así que estoy tratando de obtener algunas propiedades de mi mouse y mi panel táctil de la base de datos udev, usando udevadm pero no entiendo cómo funciona esto y desafortunadamente la página de manual no No me queda lo suficientemente claro...

$ lsb_release -irc
ID de distribuidor: Debian
Versión: 8.4
Nombre en clave: jessie

Este es el tipo de información que estoy buscando:

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"

Desde aquí he probado esto:

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

y estoy entendiendo esto

Dispositivo desconocido, se espera ruta absoluta en /dev/ o /sys.

Si monitoreo, obtengo este resultado:

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

Entonces también probé esto:

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

y esto

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

y obtener este resultado

syspath no encontrado

La única forma en que logro obtener alguna propiedad es usando este comando:

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

Y me sale esto, pero no tengo el atributo que estoy buscando... (es decir 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: entrada/ratón1 S: entrada/por-id/usb-1ea7_2.4G_Wireless_Mouse-mouse
S: entrada/por ruta/pci-0000:03:00.0-usb-0:1:1.0-mouse
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: NOMBREDEV=/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_ENTRADA=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=2.4G_Wireless_Mouse
E: ID_MODEL_ENC=2.4G\x20Wireless\x20Mouse
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=ocultado
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: MAYOR=13
E: MENOR=33
E: SUBSISTEMA=entrada
E: USEC_INITIALIZED=77840674

Claramente tengo un malentendido sobre cómo consultar a udev para obtener el atributo de un dispositivo.

Espero ser lo suficientemente claro. Si alguien tiene una idea de dónde me estoy equivocando, ¡será bienvenido!

Gracias !

Matemáticas.

Respuesta1

Tenga en cuenta que el número de entrada cambió (de 25, lo que intentó, a 26, qué), porque no se garantiza que sean constantes en todos los arranques. Intentar

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

con el enlace simbólico constante by-idpara obtener la ruta en el formato udevesperado, entonces algo como

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

para recorrer el camino y generar todos los atributos a lo largo del camino (es posible que necesite usar atributos principales para identificarlo).

También puedes combinar eso:

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

Respuesta2

solía

udevadm info -a /dev/hidraw0   

Respuesta3

Elimine las barras diagonales finales ( /) como udevadm info -a -p /sys/class/net/enp0s3en lugar deudevadm info -a -p /sys/class/net/enp0s3/

información relacionada