Всем спасибо.
Мне потребовалось несколько дней, чтобы найти решение, наконец, я нашел правильный путь.
Справка
Сопоставление скан-кодов с кодами клавиш
Задний план
Версия 11 протокола X поддерживает только однобайтовые коды ключей. Таким образом, коды клавиш выше 255 игнорируются. Ubuntu 20.04 LTS до сих пор использует протокол X версии 11.
На моей удаленной клавиатуре G7BTS есть кнопка «ОК». Эта кнопка имеет код ключа 353. В «xev» при нажатии этой кнопки ничего не происходит.
Решение
Вкратце, решение состоит в том, чтобы создать файл конфигурации hwdb, который используется для переназначения одних ключей другим ключам.
удев
udev предоставляет встроенную функцию hwdb для поддержки индекса базы данных оборудования в файле /etc/udev/hwdb.bin. База данных составлена из файлов с расширением .hwdb, расположенных в каталогах /usr/lib/udev/hwdb.d/, /run/udev/hwdb.d/ и /etc/udev/hwdb.d/. Файл сопоставления скан-кодов с кодами клавиш по умолчанию — /usr/lib/udev/hwdb.d/60-keyboard.hwdb.
Общие устройства ввода (также USB-клавиатуры), определяемые модалиями ядра usb:
evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-
где и — 4-значный шестнадцатеричный код производителя, продукта и версии в верхнем регистре.
Как найти эти идентификаторы выше, это ключ
установить хардинфо
sudo apt установить hardinfo
программное обеспечение — System Profiler — Устройства ввода — G7BTS Comsumer Control
Информация об устройстве
Название G7BTS Потребительский контроль
Введите клавиатуру
Шина 0x0005
Торговец 0x045e
Продукт 0x0041
Версия 0x0300
Еще одна важная вещь — получить скан-код кнопки «ОК».
установить евтест
sudo apt-get установить evtest
судо эвтест
Устройство не указано, попытка сканирования всего /dev/input/event*
Доступные устройства:
/dev/input/event0: Переключатель крышки
/dev/input/event1: кнопка сна
/dev/input/event2: кнопка питания
/dev/input/event3: клавиатура AT Translated Set 2
/dev/input/event4: Сенсорная панель SynPS/2 Synaptics
/dev/input/event5: TPPS/2 IBM TrackPoint
/dev/input/event6: Дополнительные кнопки ThinkPad
/dev/input/event7: Видеошина
/dev/input/event8: Встроенная камера: Встроенная C
/dev/input/event9: Клавиатура G7BTS
/dev/input/event10: Мышь G7BTS
/dev/input/event11: Контроль потребителей G7BTS
/dev/input/event12: Управление системой G7BTS
/dev/input/event13: HDA Intel PCH Mic
/dev/input/event14: HDA Intel PCH Dock Mic
/dev/input/event15: Наушники HDA Intel PCH
/dev/input/event16: Наушники с док-станцией HDA Intel PCH
/dev/input/event17: HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event11: HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event19: HDA Intel PCH HDMI/DP,pcm=8
Выберите номер события устройства [0-19]: ^C
Обратите внимание на «/dev/input/event11».
sudo evtest /dev/input/event11
Затем нажмите кнопку «ОК», и результат будет ниже.
Событие: время 1640238746.775220, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение c0041
Событие: время 1640238746.775220, тип 1 (EV_KEY), код 353 (KEY_SELECT), значение 0
Событие: время 1640238746.775220, -------------- SYN_REPORT ------------
Обратите внимание на «значение c0041». Это значение c0041 является скан-кодом кнопки «ОК».
Сделайте файл hwdb
Теперь у нас есть идентификаторы и код сканирования, которые нам нужны. Поместите их в «Общие устройства ввода (также USB-клавиатуры), идентифицированные модалиями ядра USB» выше, и, наконец, у нас есть файл конфигурации G7BTS.hwdb ниже:
evdev: ввод: b0005v045Ep0041e0300*
KEYBOARD_KEY_c0041=ввести
В данном контексте кнопка «ОК» отображается на клавишу «Ввод». Вы можете сопоставить его с любым ключом, который вы хотите.
Поместить файл в место назначения
sudo mv G7BTS.hwdb /etc/udev/hwdb.d/
Обновлять
sudo udevadm hwdb --update
триггер sudo udevadm --verbose
Тестовое задание
sudo udevadm hwdb --test='evdev:input:b0005v045Ep0041e0300*'
результат
KEYBOARD_KEY_c0041=ввести
Конец
Вот и все шаги по переназначению ключей. Эти переназначения все еще работают после перезагрузки.