Постоянный нулевой ввод

352
twinrix

У меня есть 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
Можете ли вы проверить `sudo modprobe -rv peaq_wmi`? grawity 6 лет назад 1
@grawity Вывод: `rmmod peaq_wmi rmmod input_polldev` twinrix 6 лет назад 0
Я только что заметил, что ваша команда это исправила, спасибо большое! Вы хотите опубликовать ответ снова, чтобы я мог принять его как правильный? twinrix 6 лет назад 0

1 ответ на вопрос

2
grawity

В ядре 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, пока не найдете тот, который заставляет вас думать, что «этот новый модуль выглядит забавно, мне интересно, что произойдет, когда вы выгрузите его» )