Первый фон Я разрабатываю драйвер для игровых панелей Logitech. Это клавиатура с экраном на нем. Драйвер работает хорошо, но по умолчанию устройство обрабатывается HID. Чтобы не допустить захвата устройства HID перед моим драйвером, я могу внести его в черный список в hid-core.c. Это работает, но это не лучшее решение, так как я работаю с несколькими людьми, и мы все должны продолжать исправлять наш HID-модуль, который становится рутиной, особенно потому, что он часто требует пересоздания initramfs и тому подобного.
Я провел некоторое исследование по этой проблеме и нашел этот пост в списке рассылки , который в конечном итоге привел меня к этой статье на LWN . Здесь описан механизм привязки устройств к конкретным драйверам во время выполнения. Кажется, это именно то, что мне нужно.
Итак, я попробовал это. Я смог отсоединить клавиатуру от HID. Это сработало, и, как и ожидалось, я больше не мог печатать на нем. Но когда я пытался привязать его к нашему драйверу, я получаю «ошибку: такого устройства нет», и операция завершается неудачно.
Итак, мой вопрос: как я могу использовать операции связывания / отсоединения ядра, чтобы реплицировать то, что происходит, когда вы заносите устройство HID в черный список в hid-core и предоставляете свой собственный драйвер? - то есть - заменить необходимость все время исправлять hid-core.c?
Источник нашего драйвера находится здесь: https://github.com/ali1234/lg4l