Как стать автором
Обновить

Комментарии 11

я приобрел емкостной сенсорный дисплей Waveshare с демократичной ценой, скромным разрешением и сомнительной поддержкой.

Что за модель? Желательно, если можно, с какими-то URL на страницы устройства и/или производителя.
Нет, ну страничка на китайском — это очень доходчиво…
Посмотрите в документацию на hidraw это поможет избавиться от зависимости на libudev.
Драйвер HIDRAW отдаёт VID:PID подключённого устройства и кучу другой информации включая hid report descriptor по которому можно точно определить содержимое репортов.
HIDRAW реализует hotplug? В любом случае спасибо за идею, как появится свободное время — изучу этот вопрос подробнее
Hot plug реализует ядро.
Файлы hidraw в /dev появляются, когда ядро уже обработало подключение и установило драйвер на интерфейс.
Через inotify можно отложить событие изменения содержимого /dev и если появился hidraw файл, проверить его VID:PID через ioctl HIDIOCGRAWINFO.
Почему бы не сделать модуль ядра, реализующий этот функционал?
1. Драйвер пользовательского окружения на то и нужен, чтобы не зависеть от конкретной сборки ядра
2.Прошу не смеяться Я никогда не делал модуль ядра
1. Модуль ядра будет достаточно хорошо переносим между версиями ядра.
2. Отличный повод попробовать это сделать.
Отличный повод попробовать это сделать.

Вполне может быть и так…
Но уже много лет существует отчётливая тенденция уносить всё что возможно унести — из драйвера в юзерспейс: это и libusb, и файловая система FUSE.
Описываемое устройство не быстрое, переключения контекста там не страшны, а вот возможности завалить систему из-за программной ошибки в модуле ядра нет.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации