Linux evdev 하위 시스템 및 libusb

Linux evdev 하위 시스템 및 libusb

evdev액세스 입력 장치를 사용하는 것과 비교하여 하위 시스템을 사용하는 것의 장점과 단점은 무엇입니까 libusb?

이것evdev에 대한 커널 문서상태:

이는 사용자 공간이 사용자 입력과 함께 작동하는 데 선호되는 인터페이스이며 모든 클라이언트가 이를 사용하도록 권장됩니다.

이것은 강력한 언어입니다. 예를 들어 Python에서 다음을 사용하여 HID 장치에 액세스할 수 있습니다.https://github.com/gvalkov/python-evdev또는https://github.com/trezor/cython-hidapi. 이들은 모두 같은 목표를 달성하는 것 같습니다. 이를 사용하면 libusb대기 시간이 늘어나나요?

libusb는 커널 콘텐츠에 어떻게 액세스합니까?언급되지 않은 것 같습니다 evdev. 또는 유사한 하위 시스템을 libusb사용 합니까 ?libevdev

답변1

Evdev는 입력 장치를 추상화합니다.

Libusb는 특정 USB 입력 장치에 대한 사용자 공간 드라이버를 작성하려는 경우에만 유용합니다. Libusb는 USB에 대한 원시 액세스를 제공합니다. 무엇이 숨겨져 있는지 모릅니다. 마우스, 키보드, 터치스크린을 인식하지 못합니다. libusb 사용의 일반적인 예는 입력 장치 또는 Linux와는 독립적인 프린터 드라이버입니다. Linux, OpenBSD 및 OS X용으로 똑같은 프린터 드라이버를 컴파일할 수 있습니다.

사용자 모드에서 USB 장치 드라이버를 작성하려는 경우가 아니면 libusb는 원하는 것이 아닙니다.

evdev와 libusb는 완전히 다른 목적으로 사용되기 때문에 비교하기 어렵습니다. 실제로 evdev는 Linux의 입력 장치 추상화 계층이고 입력을 알고 이해하지만 USB에 대해서는 신경 쓰지 않는 반면 libusb는 USB에 대해 알고 있는 라이브러리일 뿐입니다. Linux의 USB 사용자 수준 인터페이스는 입력 장치 하위 시스템에 관심이 없거나 이해하지 않습니다.

원하는 것이 무엇인지 명확하지 않지만 입력 장치를 처리하는 경우 libinput 또는 GUI 툴킷과 함께 제공되는 더 높은 수준의 추상화와 같이 그 위에 구축된 라이브러리가 아니더라도 evdev가 필요합니다.

관련 정보