Автоматическая привязка/отвязка модуля Linux

Вопрос или проблема

В настоящее время я пытаюсь создать собственный драйвер 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-правила. Вы уже начали с написания правил, и это правильный путь. Позвольте мне объяснить, как их настроить и использовать.

Шаги по созданию автоматического связывания/отсоединения драйвера

  1. Создание 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 на идентификатор вашего устройства, если он отличается.

  2. Сохранение правила:
    Сохраните правило в файл в каталоге /etc/udev/rules.d/ с расширением .rules, например, 99-zuoya-mmr6.rules.

    Команда для создания файла:

    sudo nano /etc/udev/rules.d/99-zuoya-mmr6.rules

    Вставьте ваше правило и сохраните файл.

  3. Перезагрузка системы или перезагрузка udev:
    После добавления правила вам нужно перезагрузить систему или перезагрузить систему udev, чтобы изменения вступили в силу. Для перезагрузки udev используйте:

    sudo udevadm control --reload-rules
    sudo udevadm trigger
  4. Установка вашего драйвера:
    Убедитесь, что ваш драйвер, который находится по адресу zuoya-mmr6, установлен и корректно компилируется.

    Для установки используйте стандартные команды для Linux kernel modules:

    make
    sudo make install

    После этого ваш драйвер должен быть доступен для использования.

  5. Тестирование:
    Подключите устройство, и проверьте, что оно использует ваш драйвер. Вы можете использовать команды lsmod, dmesg и cat /proc/bus/input/devices для диагностики. Также, чтобы убедиться, что ваш драйвер загружается, посмотрите вывод:

    dmesg | grep zuoya
  6. Дополнительная отладка:
    Если ваши настройки не сработали, проверьте системные журналы (journalctl -xe) на наличие ошибок, связанных с udev или вашим драйвером.

Заключение

Следуя данным шагам, вы сможете автоматически отсоединять стандартный драйвер и подключать ваш собственный для вашего USB HID устройства. Обновляйте свои правила и, при необходимости, сообщество, чтобы поддерживать и улучшать вашу работу. Удачи с вашим проектом!

Оцените материал
Добавить комментарий

Капча загружается...