Linux 커널 v5.14에서 게임 패드를 연결하면 두 개의 새로운 장치가 나타납니다.
/dev/input/event23
/dev/input/js1
나는 경우 cat <file> | xxd
두 장치 파일은 게임 패드 이벤트 정보를 제공합니다. 그러나 event23
훨씬 더 자세한보다 js1
.
또한, evtest
오류를 제공 Invalid Argument
에 js1
있지만에서 잘 작동합니다 event23
. libevdev 두 장치 파일을 사용할 때도 마찬가지입니다.
그것은, 모든 이벤트와 모양 js1
의 내용 덤프 input_event
구조체 (정의 linux/input.h
)
장치 파일의 차이점은 무엇입니까? 왜 그들은 다른 정보를 가지고 있으며 더 많은 정보를 event23
제공 js1
합니까?
/dev/input/js*
장치는 joydev
레거시 조이스틱 드라이버에 의해 생성됩니다 . 조이스틱 및 조이스틱과 유사한 장치 만 지원합니다.
https://www.kernel.org/doc/html/latest/input/joydev/joystick.html
/dev/input/event*
장치는 evdev
입력 이벤트 인터페이스에 의해 생성됩니다 . 조이스틱뿐만 아니라 모든 유형의 입력 장치를 지원합니다.
https://linux.die.net/man/4/evdev
joydev
인터페이스를 통해 노출 된 정보의 일부를 노출 evdev
는 조이스틱 또는 버튼 축과 같은 경우, 즉 단지 입력을 노출한다. 새 응용 프로그램은을 사용하는 것을 선호해야 evdev
하지만 joydev
일반적으로 계속 사용할 수 있습니다.
"조이스틱 버튼 또는 축처럼 보이는"휴리스틱은 때때로에서 문제가 될 수 있습니다 joydev
. HID 게임 패드가 연결되어있는 경우 evdev
와 joydev
버튼 축 입력의 수를 검출하는 기기의 HID 리포트 디스크립터의 이용 정보. joydev
HID 버튼 사용 페이지의 버튼 만 고려하지만 최신 게임 패드는 사용 방법이 다른 특수 버튼을 정의하는 경우가 있습니다. 이는 홈 및 뒤로 버튼에 버튼이 아닌 용도로 사용되는 Android 게임 패드에서 특히 일반적입니다. 이 버튼은에서 선택하지 않습니다 joydev
.
또 다른 큰 차이점 joydev
은 순전히 입력을위한 것입니다. evdev
게임 패드 럼블 및 포스 피드백 효과를 지원합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다