Отображение кнопок мыши с помощью udev hwdb

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

Следуя этому руководству: http://www.vxnick.com/blog/2014/10/binding-extra-mouse-buttons-on-linux/

Я настроил файл конфигурации:

$ lsusb | grep G500
Bus 006 Device 007: ID 046d:c068 Logitech, Inc. G500 Laser Mouse
$ cat /etc/udev/hwdb.d/70-g500.hwdb 
keyboard:usb:v046DpC068*
  KEYBOARD_KEY_90009=9
  KEYBOARD_KEY_9000a=8
  KEYBOARD_KEY_90006=0

На основе следующего вывода evtest:

Event: time 1422711060.272136, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90009
Event: time 1422711060.272136, type 1 (EV_KEY), code 280 (?), value 1
Event: time 1422711060.272136, -------------- EV_SYN ------------
Event: time 1422711060.432134, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90009
Event: time 1422711060.432134, type 1 (EV_KEY), code 280 (?), value 0
Event: time 1422711060.432134, -------------- EV_SYN ------------
Event: time 1422711061.461191, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9000a
Event: time 1422711061.461191, type 1 (EV_KEY), code 281 (?), value 1
Event: time 1422711061.461191, -------------- EV_SYN ------------
Event: time 1422711061.628125, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9000a
Event: time 1422711061.628125, type 1 (EV_KEY), code 281 (?), value 0
Event: time 1422711061.628125, -------------- EV_SYN ------------
Event: time 1422711062.725119, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006
Event: time 1422711062.725119, type 1 (EV_KEY), code 277 (BTN_FORWARD), value 1
Event: time 1422711062.725119, -------------- EV_SYN ------------
Event: time 1422711062.902137, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90006
Event: time 1422711062.902137, type 1 (EV_KEY), code 277 (BTN_FORWARD), value 0

Тем не менее, я не получаю нажатий клавиш (или изменений в выводе evtest), когда я закончил.

(Да, я выполнил udevadm hwdb --update/trigger)

Я сталкиваюсь с той же проблемой с G600, и после создания файла hwdb мне пришлось выполнить (от имени root):

udevadm hwdb --update
udevadm control --reload

Затем мне пришлось вытащить и снова вставить мышь. Если это не сработает, я бы предложил удалить один пробел перед каждой строкой KEYBOARD_KEY в вашем файле конфигурации. К сожалению, у меня нет ссылки, но во время устранения неполадок я видел другой пост, в котором говорилось, что перед этими строками должно быть ровно одно пробел. Я использовал ноль пробелов, и добавление всего лишь одного исправило проблему с обновлением hwdb.

Ответ или решение

Настройка кнопок мыши с помощью udev hwdb

Настройка кнопок мыши в системах на базе Linux может представлять собой сложную задачу. В данном руководстве мы рассмотрим, как правильно использовать udev hwdb для назначения дополнительных кнопок на примере мыши Logitech G500.

Шаг 1: Сбор информации о USB-устройстве

Первым делом нужно собрать информацию о вашем устройстве. Для этого используем команду lsusb. Например, вы можете запустить такую команду:

lsusb | grep G500

Это выведет данные о вашей мыши, показывая, что она была успешно обнаружена. В вашем случае вывод будет следующим:

Bus 006 Device 007: ID 046d:c068 Logitech, Inc. G500 Laser Mouse

Шаг 2: Создание или редактирование hwdb файла

Следующий шаг — создание конфигурационного файла для hwdb. Создайте файл с именем 70-g500.hwdb в директории /etc/udev/hwdb.d/. Можно использовать любой текстовый редактор по вашему выбору:

nano /etc/udev/hwdb.d/70-g500.hwdb

В файл введите следующее содержимое:

keyboard:usb:v046DpC068*
  KEYBOARD_KEY_90009=9
  KEYBOARD_KEY_9000a=8
  KEYBOARD_KEY_90006=0

Эти строки настраивают дополнительные кнопки мыши для работы с системными событиями.

Шаг 3: Обновление hwdb и применение изменений

После редактирования файла необходимы команды для обновления hwdb и перезагрузки udev:

udevadm hwdb --update
udevadm control --reload

После этого рекомендуется отключить и снова подключить мышь. Это может быть решающим шагом, так как без перезагрузки системы устройства могут не принять новые изменения конфигурации.

Шаг 4: Устранение проблем

Если после выполнения всех вышеперечисленных действий вы не видите изменений в выводе evtest, возможно, необходимо обратить внимание на форматирование вашего hwdb файла. Убедитесь, что перед строками, начинающимися на KEYBOARD_KEY, есть ровно один пробел, так как неправильное количество пробелов может приводить к тому, что конфигурация не будет правильно распознана.

Также рекомендуется проверить вывод evtest на предмет валидности событий. Убедитесь, что события соответствуют ожидаемым. Например, для вашего G500 они могут выглядеть следующим образом:

Event: time, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90009
Event: time, type 1 (EV_KEY), code 280 (?), value 1

Если вы не видите данные события, попробуйте использовать команду dmesg для диагностики и проверки ошибок, связанных с устройствами ввода.

Заключение

Настройка дополнительных кнопок мыши в Linux с использованием udev hwdb — это процесс, который требует точности и внимательности. Следуя всем шагам, вы сможете улучшить функциональность вашего устройства. Если проблемы продолжаются, стоит обратиться к документации udev или сообществу Linux для получения дополнительной поддержки.

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

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