1

У меня есть Lenovo Ideapad 700 с Antergos. Похоже, что каждую секунду происходит постоянный ввод, что не позволяет мне прокручивать в терминале или использовать tty. Это вывод с использованием

$ xev
KeyPress event, serial 38, synthetic NO, window 0x5400001,  
root 0x153, subw 0x0, time 7416716, (262,3), root:(1124,458),  
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,  
XLookupString gives 0 bytes:   
XmbLookupString gives 0 bytes:   
XFilterEvent returns: False 

Я уже пытался отключить блокировку Fn в BIOS, но это не помогло. Кто-нибудь знает, как это исправить или получить дополнительную информацию, откуда поступает эта информация?

1 ответ1

2

В ядре Linux 4.13 представлен драйвер peaq_wmi , который обрабатывает горячие клавиши на планшетах PEAQ (в частности, кнопку "Dolby" на PEAQ PMM C1010).

Драйвер загружается для определенного GUID объекта WMI, который находится в микропрограмме системы (в таблицах ACPI). К сожалению, разработчики прошивки PEAQ не сгенерировали уникальный GUID - они просто скопировали его из примера драйвера WMI от Microsoft.

Кроме того, к сожалению, они были не единственным производителем, который сделал это - тот же GUID WMI можно найти в прошивке Lenovo, где он, конечно, имеет совершенно другое значение. Когда драйвер загружается в несовместимую систему, он получает мусор и считает, что кнопка всегда нажата.

К сожалению, реальная прошивка PEAQ не уведомляет ОС при каждом нажатии кнопки; вместо этого ОС должна повторно опросить ее статус. Таким образом, драйвер продолжает получать один и тот же результат мусора каждую секунду.

Драйвер был недавно исправлен, чтобы также проверить имя производителя системы, и это исправление должно скоро достигнуть стабильных ядер (4.14.x, 4.13.x). В то же время вы можете удалить модуль с помощью:

modprobe -r peaq_wmi

и / или занести его в черный список через /etc/modprobe.d или с помощью параметра ядра:

modprobe.blacklist=peaq_wmi

В будущем для устранения таких проблем используйте инструменты, которые сообщают об отдельных устройствах ввода; например, evemu-record или libinput debug-events . (Инструмент xinput также может делать это внутри X11.) Это может сузить его до конкретного водителя.

(Или вы можете пройти через все коммиты Git с 4.12 по 4.13, пока не найдете тот, который заставляет вас думать, что «этот новый модуль выглядит забавно, мне интересно, что произойдет, когда вы выгрузите его»)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .