Вопрос или проблема
Следуя этому руководству: 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 для получения дополнительной поддержки.