Клавіатура перестає працювати на Ubuntu 16.04 (Xenial Xerus)


17

Моя клавіатура перестає працювати без видимих ​​причин.

Після використання Ubuntu протягом 2,5 років як віртуальної машини на хості Windows ( VirtualBox ) я, нарешті, вчора скористався, переформатував свій жорсткий диск і вчора побудував систему з Ubuntu. Сьогодні вранці моя клавіатура перестала працювати.

Я бачу багато публікацій про Ubuntu та USB-клавіатуру чи мишу, які перестають працювати випадковим чином. Вони вказують на те, що для автоматичного відключення живлення на USB-пристроях відбувається автоматичне відключення живлення, а коли USB-пристрій у деяких не сумісний, USB не «прокидається» як слід.

Я спробував пропозицію, розміщену в розділі « Виправлення автоматичної зупинки USB» .

Але не пощастило. Я також спробував ще одну пропозицію, яка полягала в завантаженні без клавіатури, а потім підключіть її, як тільки Ubuntu запустився.

Ось деякі деталі:

  • Останні два роки я використовував ту саму клавіатуру Kinesis з Ubuntu як віртуальну машину, без проблем.
  • У Kinesis є макроси і запуск макросу запускає проблему в 100% часу. Однак це трапляється, коли я просто набираю (без макросів).
  • Я спробував Kinesis на ноутбуці саме зараз. Це однорічна машина, яку я поставив Ubuntu 16.04 два тижні тому. Використання макросу клавіатури Kinesis не відтворило проблему.

Проблемна машина

  • Dell XPS, 6 років, настільний ПК
  • Вчора встановлено Ubuntu 16.04
  • Використання USB-клавіатури Kinesis Advantage
  • Відключення / повторне підключення клавіатури спрацювало 9 із 10 разів
  • Перезавантаження також працює
  • Я не думаю, що це проблема живлення USB, оскільки світлодіод на клавіатурі залишається освітленим, а інші USB-пристрої продовжують працювати.
  • У мене до пристрою приєднані USB та миша Bluetooth. Обидва продовжують працювати навіть тоді, коли Кінезис припиняється.
  • У мене зазвичай підключена друга звичайна клавіатура Dell, яка використовується для людей, які не користуються Kinesis, яким потрібно використовувати мій комп'ютер. Раніше сьогодні ця клавіатура перестала працювати щоразу, коли Kinesis перестала працювати. Однак зараз, викликаючи проблему з макросом, клавіатура Dell продовжує працювати.

Кінезис, який я маю вже 8 років, дозволив мені продовжувати клавіатуру. Якщо я не можу це вирішити, мені доведеться повернутися до Windows, яка була б справжнім обломком.

Будемо дуже вдячні за будь-які пропозиції щодо спробувати або налагодження налагодження.

Я копаюсь у драйвери USB, про які в Linux я нічого не знаю. Однак я виявив, що у ноутбука є і порти USB 2.0, і 3.0. Робочий стіл (з проблемою) лише USB 2.0. Ще копаємо ...


Останні 2 роки я використовував ту саму клавіатуру Kinesis з Ubuntu як віртуальну машину, без проблем. Ви фактично здавали клавіатуру віртуальній машині? В іншому випадку він проходив через драйвери хост-ОС та VirtualBox.
Мелебій

Протягом 3 років я використовував Ubuntu як віртуальний комп'ютер з хостом Windows і не мав проблем з клавіатурою. Тепер, коли хостом є Ubuntu GNOME, а також гість - Ubuntu GNOME, у мене є ця проблема.
klequis

Тоді ви не використовували фізичну клавіатуру в гостьовій ОС. Virtualbox за замовчуванням представляє віртуальну клавіатуру гостьовій ОС. (тож не має значення, чи використовували ви ту саму фізичну клавіатуру, як це була не однакова)
karatedog

Дивіться подібне запитання: askubuntu.com/questions/688445/laptop-keyboard-stopped-working Інсталяційний пакет xserver-xorg-input-allпрацював для мене, коли я оновивUbuntu 17.04
Lilás

Відповіді:


7

У мене була така ж проблема з Ubuntu 16.04 (Xenial Xerus) і так багато шукали будь-яке рішення ...

Рішення знаходиться в кінці цієї відповіді, якщо вас не хвилює контекстна історія. Контекст може виглядати як невикористаний блабла (можливо, він є), але я думаю, що це може допомогти читачам перевірити, чи проблема, яку я вирішив на моєму ПК, така ж, як і в їхній.

КОНТЕКСТ

Я відчайдушно невдало перевіряв усі поради, які знайшов в Інтернеті, перезавантажуючись після кожної спроби:

  • '/ etc / default / grub' usbcore.autosuspend=-1параметр завантаження ядра
  • 'Runtime-pm.conf' у режимі ноутбука CONTROL_RUNTIME_AUTOSUSPEND=0
  • повністю відключивши Інструменти режиму ноутбука з файлу '/etc/laptop-mode/laptop-mode.conf', підтвердивши, що проблема не пов’язана з цією функцією ядра. Я перевірив різні способи, щоб laptop_mode більше не працював, щоб бути впевненим. (Посилання: man laptop-mode.conf& man laptop_mode)
  • Я прочитав кілька хитрощів про '/etc/laptop-mode/conf.d/usb-autosuspend.conf', але цей файл не існує в моїй версії Ubuntu 16.04 з ноутбуком-режимом-інструментами v1.68
  • Видалення програми Powertop . На форумах часто підозрюють, що викликає проблеми з автоматичним розповсюдженням, і сьогодні я знаю, що в моєму випадку це було неправдою, оскільки видалення цього нічого не виправляло.
  • options usbcore autosuspend=1 в '/etc/modprobe.d/usb.conf' також був неефективним
  • Сценарій '/etc/udev/rules.d/60-power.rules', наданий офіційною Вікі Gentoo
  • rulesфайл, призначений для пристрою для udev'/etc/udev/rules.d/usb-power.rules', рекомендований Сергієм Я. Стройбандтом

Прочитавши весь цей технічний матеріал, я лише зрозумів, що причина пов’язана з тим, що моє значення '/ sys / module / usbcore / parametri / autosuspend' застрягло за дві секунди, незалежно від того, яку зміну я зробив у моїй конфігурації. Ви можете перевірити це за допомогою catкоманди:

$ cat /sys/module/usbcore/parameters/autosuspend
2

І так, мишу відключили рівно через дві секунди, тож я знав, що я в правильному шляху. Звичайно, я перевірив echo -1команду, яку я бачив тут і там, -1призначену для вимкнення автовідкладу ... але:

sudo echo -1 > sys/module/usbcore/parameters/autosuspend
bash: /sys/module/usbcore/parameters/autosuspend: Permission denied

Я не розумів, чому в дозволі відмовили навіть у режимі судо. Я не пробував як root, тому що просто не думав, що це може бути проблемою. Ось помилка :(

Завдяки коментарям Alex Dekker & Bryce я дізнався, як відключити автоматичну залежність лише для миші. Але, звичайно, мої перші спроби не вдалися до цього bash: Permission denied error, тому мені довелося чекати розуміння моєї плутанини root / sudo, перш ніж echo -1команда, запропонована Alex нарешті, спрацює.

Я також знайшов кращий спосіб виконати команду як користувач root без входу як root. Різниця між кореневою оболонкою та використанням кореневих команд добре пояснена на офіційній сторінці вікі Ubuntu RootSudo . Я люблю вчитися подібним речам, але ей! Чому це потрібно завжди вивчати болісно? Лол

OMG, це був справжній головний біль, і нобі, як я, потрібно було багато часу, щоб зрозуміти, як я зазвичай кажу "ні мозок не виграє". Мій видимо потрібно більше навчання.

Тож перестаньмо говорити про себе і підемо це виправити! Продовжте нижче ...


Я настійно рекомендую друге рішення для простою зовнішнього жорсткого диска, щоб не витрачати батарею ноутбука ні за що. Але я даю вам обидва рішення, тому що хто любить свою власну свободу, той повинен любити і свободу один одного :)

РІШЕННЯ 1

Щоб вимкнути автозалежність на всіх USB-пристроях / портах

  1. Відкрити термінал та виконати:

    sudo sh -c "echo -1 > /sys/module/usbcore/parameters/autosuspend"
    
  2. Це дійсно тимчасове рішення, яке дозволяє миттєво перевірити, чи ця команда виправляє проблему автозалежності миші чи клавіатури.

  3. Якщо ваші USB-пристрої зараз працюють нормально, просто відредагуйте сценарій '/etc/rc.local', щоб він виконував цю команду при кожному завантаженні системи. Таким чином ви зробите вигляд виправлення постійним . Відредагуйте файл, наприклад, з nano:

    sudo nano /etc/rc.local
    
  4. і покладіть echo -1команду у файл '/etc/rc.local' перед exit 0рядком

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    (...)
    # By default this script does nothing.
    echo -1 > /sys/module/usbcore/parameters/autosuspend
    exit 0
    
  5. Перезавантажте комп'ютер

(Перевірте важливу примітку наприкінці.)

.

РІШЕННЯ 2

Щоб вимкнути автозалежність для конкретного USB-пристрою / порту

  1. Параметри живлення для USB-пристрою ввімкнено /sys/bus/usb/devices/n-n/power. Що n-nдля даного пристрою, потрібно з’ясувати кілька маніпуляцій, але це не складно. Наведений нижче приклад показує, як я визначив, що номер USB-порту мого приймача бездротової миші 3-1, тому, будь ласка, адаптуйте це до вашої власної ситуації:

    • Відключіть свій USB-пристрій, відкрийте Terminal та виконайте sudo dmesgкоманду

    • Підключіть свій USB-пристрій назад, а потім sudo dmesgзнову запустіть у Terminal, щоб перевірити, чи є зміни

    • Ось як виглядає кінець dmesgвиводу моєї команди після того, як я ввімкнув мишу назад в слот:

      [40208.575249] usb 3-1: new full-speed USB device number 8 using xhci_hcd
      [40208.705233] usb 3-1: New USB device found, idVendor=062a, idProduct=4102
      [40208.705240] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
      [40208.705245] usb 3-1: Product: 2.4G Wireless Mouse
      [40208.705248] usb 3-1: Manufacturer: MOSART Semi.
      [40208.707679] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:062A:4102.0007/input/input24
      [40208.763946] hid-generic 0003:062A:4102.0007: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:00:14.0-1/input0
      

    Тепер ми можемо побачити, що порт, де підключений мій USB-пристрій, ідентифікований як usb 3-1.

    **Note:** this trick concerns the USB port ID, not a device ID. For example, if I plug my mouse to the next USB port, it becomes identified as `usb 3-2` in the `dmesg` result. But this solution #2 remains very useful if you take the habit to always plug your mice or keyboard to the same port, and it's generally what people use to do unconsciously ;)
    
  2. Виконайте таку команду у своєму Терміналі, змінивши номер мого порту 3-1на той, який ви знайшли у своєму власному dmesgрезультаті:

    sudo sh -c "echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms"
    

    Зауважте, що autosuspend_delay_msзамінили застаріле autosuspendз ядра версії 2.6.38, згідно з офіційною документацією Linux .

  3. Це дійсно тимчасове рішення, але тепер ви можете легко перевірити, чи вирішила ця команда проблему автозаповнення вашої миші або клавіатури.

  4. Якщо ваш USB-пристрій зараз працює нормально, просто відредагуйте сценарій '/etc/rc.local', щоб він виконував цю команду щоразу, коли система завантажиться. Таким чином ви зробите вигляд виправлення постійним . Відредагуйте файл, наприклад, з nano:

    sudo nano /etc/rc.local
    
  5. і покладіть echo -1команду у файл '/etc/rc.local' перед exit 0рядком, ще раз не забудьте змінити номер порту n-nв команді:

        #!/bin/sh -e
        #
        # rc.local
        #
        # This script is executed at the end of each multiuser runlevel.
        (...)
        # By default this script does nothing.
        echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms
        exit 0
    
  6. Перезавантажте комп'ютер

.

Важливо: не забувайте, що вам доведеться виконатиsudo sh -c "тимчасовий" ще раз вручну, якщо ви відключите / підключите USB-пристрій, поки середовище робочого столу вже запущено, навіть якщо ви підключите його назад до тієї ж роз'єму USB. Нормально, лише тому, що файл "/etc/rc.local" викликається лише один раз при запуску системи.

У будь-якому випадку можливі обхідні шляхи. Краще кваліфіковані народи можуть мати більш розумні методи, але я налаштував псевдоніми для U-порта, що стосуються портів. Це дозволяє мені вибірково використовувати прості usb1або usb2команди, якщо мені доведеться відключити / відключити свій USB-пристрій тут чи там. Ти також! Ви також можете створити псевдоніми команд для гри з короткими словами замість того, щоб вводити повну команду. Його легко встановити менше ніж за дві хвилини, а також працює з Alt+F2 :)

Більше ідей, щоб зробити це простіше, також було б дуже бажано.


дякую за цю відповідь На жаль, я не можу перевірити, щоб це підтвердити. Тому не впевнений, чи слід це позначити як відповідь.
klequis

Я спробував, і це не допоможе на Ubuntu 16.0.4.2 VirtualBox 5.1.26
Павло

1

У мене була точно така ж проблема (клавіатура Kinesis, перестала працювати після перезавантаження).

Зрештою я зрозумів, що це пов'язано з оновленням ядра

  • перед перезавантаженням я був на версії 4.4.0-31-generic
  • після перезавантаження це було 4.4.0-38-generic

Завантаження з використанням старого ядра 4.4.0-31 вирішило проблему для мене.

Ця публікація містить інструкції щодо завантаження за допомогою старшого ядра (що дозволяє перевірити, чи виконує старіше ядро ​​для вас).


дуже ймовірно, що моя свіжозбудована машина мала нове ядро, ніж віртуальна машина, якою я користувався. Однак моя проблема полягала не в тому, що клавіатура перестала працювати після перезавантаження, вона працювала нормально, поки я не запустив макрос, після чого він вимкнувся. Більшість моїх макросів використовувалась для загальних ключів програмування. Зараз я використовую редактор Atom та його ярлики / автоматичний тип (як би вони його не називали) робить більшу частину того, що мені потрібно, тому я в цьому задоволений.
klequis

0

Якщо у вас є, laptop-mode-toolsможливо, можна повністю відключити автоматичне призупинення usb, змінивши:

AUTOSUSPEND_TIMEOUT=2

в

/etc/laptop-mode/conf.d/runtime-pm.conf

до

AUTOSUSPEND_TIMEOUT=-1

Зверніть увагу, що у цьому файлі є коментований варіант

untime-pm.conf:# Example: AUTOSUSPEND_DEVID_BLACKLIST="usbhid usb-storage"

Ви можете спробувати пограти з цією опцією, якщо ви хочете точно налаштувати свої налаштування управління живленням.

ПРИМІТКИ:

  • usbcore компілюється в ядро.
  • використовуючи systemd
  • Ubuntu 16.10
  • Ядро Linux 4.8.0-41-generic # 44-Ubuntu

Я також зазначив, що в:
Антоніо Медіна

Не ноутбук, і я навчився жити без нього, але дякую за пропозицію.
klequis

Незалежно від того, працює чи не працює інструмент для ноутбука, не має нічого спільного з тим, чи є система ноутбуком чи ні. Мій завжди підключений до стінного сервера кондиціонерів і запускав його, і встановлення AUTOSUSPEND_TIMEOUT = -1 у файлі /etc/laptop-mode/conf.d/runtime-pm.conf було тим, що остаточно виправило мене після боротьби. з цим я оновлювався до 16.04 з 14.04.
Резти Фелті

0

У мене була ця сама проблема. Для мене рішення було простим, а фактична причина залишилася невідомою.

Вчора я підключив другу комп'ютер до свого ПК. Все працювало чудово. Сьогодні, коли я завантажувався, клавіатура не працювала ні на екрані входу, ні на робочому столі. Це спрацювало під час завантаження, наприклад, я потрапив у біос.

Клавіатура почала працювати після того, як я відключив нову мишку і відключив усі USB-провідники.


Це може бути загальна кількість USB-пристроїв (максимум два). У мене така система. Це може бути або не пов’язано з типом USB-порту, USB 2 проти USB 3. На жаль, у мене в BIOS не так багато варіантів, щоб спробувати обійти його.
Пітер Мортенсен


0

Я читав цей та інші звіти знову і знову за останній рік, і врешті-решт просто відмовився від використання клавіатури, яка викликала проблеми, і перейшла на бездротову клавіатуру.

Поки мене не вразило, що проблема почалася приблизно в той час, коли я створив новий ПК, і це може бути проблемою живлення. Тому я купив живий USB-концентратор для підключення клавіатури. Це вирішило проблему! Зрештою, це не проблема програмного забезпечення, але, мабуть, мій новий комп'ютер має недостатньо живлення USB-виходів (або так вважає моя клавіатура).

Це, можливо, варто спробувати, якщо ви страждаєте від періодичних відключень клавіатури, як описано вище, і нічого з боку програмного забезпечення не спрацювало. Розроблений USB-концентратор не повинен бути дорогим.


1
Або обмеження струму діяло на порту USB? Наприклад 100 мА .
Пітер Мортенсен

0

Це не відповідь, яку я шукав, але ... я витратив два дні і багато годин, намагаючись вирішити цю проблему. Я придбав концентратор PCIe USB 3.0, щоб побачити, чи буде це працювати - не вдалося.

Мій висновок полягає в тому, що цю проблему не варто вирішувати, і є кращі шляхи до цієї мети.

Моє рішення / вирішення полягає в тому, щоб покластися на фрагменти тексту мого редактора. Це означає, що я вкладаю гроші і буду більше покладатися на конкретний редактор (швидше за все, це буде Atom ), але це буде навіть краще, ніж те, що я мав з макросами клавіатури, оскільки фрагменти легше підтримувати, ніж макроси клавіатури.

Я багато чого навчився USB через скидання підсистеми USB .


Я придбав Kinesis Advantage2 близько 3 місяців тому. Просто носив 10 років в о. Це чудово працює. Не маючи проблеми, обговореної в цьому випуску.
klequis

Фрагменти (текстові шаблони) надзвичайно корисні, але вони не можуть керувати комбінаціями клавіш, лише чистий текст (?). Наприклад, Shift + Ctrl + Tab (для переходу на наступну вкладку зліва в Firefox) не можна вводити в фрагмент
Peter Mortensen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.