в чем разница между usbtouchscreen и usbhid?

Я пытаюсь понять сенсорные экраны. И я столкнулся с этими двумя модулями ядра: usbtouchscreen и usbhid . Я смущен, как именно разница? Допустим, у меня есть сенсорный экран, подключенный к моему оборудованию через USB, который среди двух я должен использовать? Я знаю, что явный ответ: попробуйте установить и посмотрите, работает ли он.

Но я ищу:

каковы данные, отправленные этими двумя драйверами для USB-сенсорного экрана, в случае USBHID и обычного usbtouchscreen?

И как evdev конвертирует эти разные пакеты данных / информацию в унифицированные события касания?

HID (« устройство интерфейса человека ») – это устройство, которое позволяет людям взаимодействовать с компьютером, например клавиатурой, мышью, монитором, микрофоном, громкоговорителем и т. Д.

USB определяет ряд стандартных классов устройств: типы устройств с некоторыми общими свойствами. Один из них – HID, который в контексте USB охватывает только устройства с низкой пропускной способностью: в основном устройства ввода, такие как клавиатуры, мыши, джойстики, сенсорный вход и т. Д.

Сенсорный экран требует функций, которые не входят в базовый HID-протокол (по крайней мере, если он поддерживает мультитач), поэтому сенсорные экраны не могут обрабатываться чистым драйвером HID. Linux имеет модуль usbtouchscreen который поддерживает многие модели сенсорного USB-устройства.

В любом случае USB-устройства идентифицируют себя, а USB-драйверы знают, какую идентификацию устройства они поддерживают. Linux автоматически загружает правильный драйвер для USB-устройств. См. Как загружать и выгружать модули драйвера автоматически? и Debian не обнаруживает последовательную PCI-карту после перезагрузки