Вопрос или проблема
В настоящее время я пытаюсь создать собственный драйвер USB HID мыши как замену стандартному универсальному USB, который всегда мешает. Как я могу отвязать универсальный драйвер и автоматически привязать его к своему специфическому драйверу?
Мой модуль/драйвер Zuoya MMR6: https://github.com/vladipus/zuoya-mmr6
Создал следующие правила udev
, которые значительно помогли с этой проблемой:
KERNEL=="0003:18F8:1486.*"\
PROGRAM="/bin/sh -c 'echo -n %k > /sys/bus/hid/drivers/hid-generic/unbind;\
echo -n %k > /sys/bus/hid/drivers/hid-zuoya-mmr6/bind'"
Эти правила могут быть автоматически установлены в /etc/udev/rules.d/
с помощью сценариев/процедур установки драйвера.
Ответ или решение
Для реализации автоматического связывания и отсоединения вашего драйвера USB HID мыши на Linux, вам нужно создать udev-правила. Вы уже начали с написания правил, и это правильный путь. Позвольте мне объяснить, как их настроить и использовать.
Шаги по созданию автоматического связывания/отсоединения драйвера
-
Создание udev-правила:
Вы правильно написали правило, которое отсоединяет стандартный драйвер и связывает ваш собственный. Убедитесь, что ваше правило выглядит следующим образом:KERNEL=="0003:18F8:1486.*", \ PROGRAM="/bin/sh -c 'echo -n %k > /sys/bus/hid/drivers/hid-generic/unbind; \ echo -n %k > /sys/bus/hid/drivers/hid-zuoya-mmr6/bind'"
Это правило срабатывает, когда обнаруживается устройство с заданным идентификатором. Обратите внимание на замену
0003:18F8:1486
на идентификатор вашего устройства, если он отличается. -
Сохранение правила:
Сохраните правило в файл в каталоге/etc/udev/rules.d/
с расширением.rules
, например,99-zuoya-mmr6.rules
.Команда для создания файла:
sudo nano /etc/udev/rules.d/99-zuoya-mmr6.rules
Вставьте ваше правило и сохраните файл.
-
Перезагрузка системы или перезагрузка udev:
После добавления правила вам нужно перезагрузить систему или перезагрузить систему udev, чтобы изменения вступили в силу. Для перезагрузки udev используйте:sudo udevadm control --reload-rules sudo udevadm trigger
-
Установка вашего драйвера:
Убедитесь, что ваш драйвер, который находится по адресу zuoya-mmr6, установлен и корректно компилируется.Для установки используйте стандартные команды для Linux kernel modules:
make sudo make install
После этого ваш драйвер должен быть доступен для использования.
-
Тестирование:
Подключите устройство, и проверьте, что оно использует ваш драйвер. Вы можете использовать командыlsmod
,dmesg
иcat /proc/bus/input/devices
для диагностики. Также, чтобы убедиться, что ваш драйвер загружается, посмотрите вывод:dmesg | grep zuoya
-
Дополнительная отладка:
Если ваши настройки не сработали, проверьте системные журналы (journalctl -xe
) на наличие ошибок, связанных с udev или вашим драйвером.
Заключение
Следуя данным шагам, вы сможете автоматически отсоединять стандартный драйвер и подключать ваш собственный для вашего USB HID устройства. Обновляйте свои правила и, при необходимости, сообщество, чтобы поддерживать и улучшать вашу работу. Удачи с вашим проектом!