LINUX.ORG.RU

Пропуски букв при вводе с клавиатуры

 , , ,


0

3

Добрый день, фрумчане

В какой то момент своей жизни стал замечать, что например пароль вводится порой даже не с 10 раза, хотя раньше печатался вслепую

Стал разбираться, и тут выяснил: оказывается некоторые клавиши, (а в большинстве случаев именно по линии F4-3-e-d-c-SPASE) вводятся далеко не с первого раза.

При этом если писать их через Shift или CapsLock(который зацеплен на изменение раскладки по зажатию клавиши), всё вводится без проблем, из чего делается прямой вывод, что проблема программная.

Сначала грешил на keyd(для переназначения copilot), но отключение данного демона эффекта не дало

Едем дальше, выясняем что в debian 13 сейчас в репах доступна ровно одна ветка ядра, а именно 6.12, ветки из бекпортов поставить не получилось по причине драйвер нвидии

Проблемы по воспоминаниями начались как раз когда обновился с 6.9 до 6.12

Также поведение несколько меняется при переключении между версиями ядра 6.12(лучше всего ведут себя старые версии ядер), однако принципиально проблема сохраняется

На 6.12.25 и 6.12.63 пароль спокойно вводится сразу после загрузки из выключенного состояния, но потом проблема может всплыть

На 6.12.74 после загрузки пароль можно вводить минут 10

И это очень серьёзный голос именно в сторону программных проблем

Куда смотреть на вывод dmesg не понимаю

$ sudo dmesg | grep -i "keyboard"
Вывод пуст
$ sudo dmesg | grep -i "err"
[17592.488379] ACPI: EC: interrupt blocked
[17592.728204] ACPI: EC: interrupt unblocked
[17592.889769] spd5118 0-0050: PM: failed to resume async: error -6
...
$ uname -a
Linux loq15 6.12.63+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.63-1 (2025-12-30) x86_64 GNU/Linux
nikita@loq15:~$ 
$ lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 5986:216a Bison Electronics Inc. Integrated Camera
Bus 001 Device 003: ID 048d:c996 Integrated Technology Express, Inc. ITE Device(8176)
Bus 001 Device 004: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Модель ноутбука LOQ 15IAX9 Клава соответственно Bus 001 Device 003: ID 048d:c996

Проблема помимо иксов и вяленого проявляется также и в виртуальных терминалах, что также доказывает низкоуровневость проблемы

★★

Последнее исправление: nikitalol (всего исправлений: 5)

Клава соответственно Bus 001 Device 003: ID 048d:c996

Обратите внимание, что судя по вот этому - клава подключена в USB. А там свои странности. Я в 2014 году паял переходник для подключения ps/2 клавы в usb. И тоже столкнуля с несрабатываниям кнопок. Грешил естественно на свою железку. А похоже что дело-то было не в ней. Да, мне удалось почти избавиться от этого глюка, но именно что почти. Писал об этом тут: https://radiokot.ru/forum/viewtopic.php?t=100200 И вот недавно мне уже тут на ЛОРе модератор сделал замечание за пропущенные пробелы. Нет, тот самодельный преобразователь интерфейса давно не используется. Я был уверен что крошки в клавиатуре. Почистил. Стало вроде как лучше, но всё равно перечитывая свои сообщения иногда обнаруживаю отсутствующие буквы (не только пробелы). Именно иногда. Отследить это очень трудно так как вылезает только при быстром стучании по клавишам.

Что я бы сейчас предложил попробовать - так это запретить включение энергосбережения для клавиатуры. Что-то типа

echo on > /sys/bus/usb/devices/1-3/power/control

Естественно, подставить свой номер шины и устройства. Посмотреть включен ли режим энергосбережения для любого usb устройства можно с помощью программы powertop. Но она сама дико капризна и заставить ее заработать бывает не просто. Вечно ей чего-нибудь не хватает и не всегда понятно чего именно. У меня на этом компе если энергосбережение клаве(и мышке) не запретить то после паузы в наборе довольно стабильно 1-2 символа теряются. Ну и мышка оживает весьма не сразу когда ею начинаешь двигать. Причем таймаут маленький и усыпают устройства быстро.

watchcat382
()
Последнее исправление: watchcat382 (всего исправлений: 2)
Ответ на: комментарий от watchcat382

Писал об этом тут: https://radiokot.ru/forum/viewtopic.php?t=100200
В ядре Linux обнаружили смешной баг, отключающий USB-устройства
Сара Шарп уже подготовила патч.
есть строчка с лаконичным комментарием «TRSMRCY = 10 msec»

и до сих пор есть (7.0.2)! в 3х файлах. буду патчить, проверю.

teod0r ★★★★★
()
Ответ на: комментарий от watchcat382

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

UPD. А вот с тачпадом моего ноута я подобного не замечал, а он, как известно, тоже самое обычное USB-устройство.

yars068 ★★★★★
()
Последнее исправление: yars068 (всего исправлений: 1)
Ответ на: комментарий от yars068

наваял «патч»:

sed -r 's/#define\s+PORT_RESET_HW_MSEC\s+([1-9]|1[0-9])/#define PORT_RESET_HW_MSEC      20/g' -i drivers/usb/host/ohci-hub.c
sed -r 's/#define\s+HUB_SHORT_RESET_TIME\s+([1-9]|1[0-9])/#define HUB_SHORT_RESET_TIME
20/g' -i drivers/usb/early/ehci-dbgp.c drivers/usb/core/hub.c
sed -r 's/msleep\s*\(([1-9]|1[0-9])\)/msleep (20)/g' -i drivers/usb/host/ohci-hub.c drivers/usb/core/hub.c
там правда ещё дофига разных таймеров, сам чёрт ногу сломит.
пока не проверял, компилится.

teod0r ★★★★★
()
Последнее исправление: teod0r (всего исправлений: 1)