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/

그리고 이런 결과를 얻었습니다

시스템 경로를 찾을 수 없습니다.

일부 속성을 얻을 수 있었던 유일한 방법은 다음 명령을 사용하는 것이었습니다.

$ 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시도한 것에서 무엇으로 ). 26노력하다

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/

관련 정보