며칠 전 두 버튼을 동시에 놓았을 때 마우스 버튼 릴리즈가 인식되지 않는 경우가 있었습니다. 따라서 한 버튼의 논리적 상태가 "누름" 상태에 고정되어 다시 눌러 재설정할 때까지 성가신 예상치 못한 동작이 발생합니다.
나할 수 있다마우스 이벤트 모니터링과 관련된 문제가 재현되었습니다 xev
(출력이 때때로 예상되는 키 릴리스 이벤트를 표시하지 않음). 나할 수 없다이벤트를 모니터링하여 문제를 재현합니다 /sys/kernel/debug/usb/usbmon
(출력은 항상 실제 상황과 일치함).
따라서 결함은 분명히 X11 아래에 있지만 USB 위에 있는 일부 추상적인 소프트웨어 구성 요소에 있습니다.
원인은 무엇일까요? 어떻게 하면 범위를 더 좁힐 수 있나요?
답변1
USB 이벤트와 X 이벤트 간의 레벨은 다음과 같습니다.
마우스가 특별하고 자체 드라이버가 있지 않는 한 HID 장치일 가능성이 높습니다. 해당
hidraw
장치(선택됨dmesg
)를 찾아 해당 장치에서 이벤트를 받고 있는지 확인하세요. USB에서 HID로의 변환은 커널에 의해 수행됩니다.모든 입력 이벤트는 해당 장치가 있는 입력 계층을 통해 커널을 떠납니다
/dev/input
. 루트로 실행하고evtest
마우스를 선택하여 이벤트가 수신되는지 확인합니다. HID 이벤트에서 입력 이벤트로의 변환은 커널에 의해 수행됩니다.X는 대부분의 경우 모든 입력 장치에 대한 드라이버를 자동으로 로드합니다
evdev
./var/log/Xorg.0.log
어떤 드라이버가 로드되었는지 확인하세요 . 이러한 드라이버는 입력 이벤트를 X 이벤트로 변환합니다.