udevadm 사용법에 대해 혼란스러워

udevadm 사용법에 대해 혼란스러워

여기서 궁극적인 목표는 마우스 플러그에서 터치패드를 켜거나 끄는 것입니다. 따라서 udevadm을 사용하여 udev 데이터베이스에서 마우스와 터치패드의 일부 속성을 가져오려고 노력하고 있지만 이것이 어떻게 작동하는지 알 수 없으며 불행히도 맨페이지는 다음과 같습니다. 나에게는 충분히 명확하지 않습니다…

$ lsb_release -irc
배포자 ID: 데비안
출시: 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_Wireless_Mouse-mouse
S: 입력/경로별/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: DEVNAME=/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_Wireless_Mouse
E: ID_MODEL_ENC=2.4G\x20무선\x20마우스
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=숨김
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시도한 내용에서 , 26what 으로). 이는 부팅 시 일정하다는 보장이 없기 때문입니다. 노력하다

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

by-id예상되는 형식의 경로를 얻기 위해 상수 심볼릭 링크를 사용하면 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/

관련 정보