Моя клавиатура перестает работать без видимой причины.
После использования Ubuntu в течение 2,5 лет в качестве виртуальной машины на хосте Windows (virtualbox) я наконец сделал решающий шаг, переформатировал свой жесткий диск и вчера собрал систему с Ubuntu. Сегодня утром у меня перестала работать клавиатура.
Я вижу много сообщений об Ubuntu и USB-клавиатуре или мыши, которые перестают работать случайно. Они указывают на то, что Autosuspend отключает питание USB-устройств для экономии энергии, и когда USB-устройство несовместимо с некоторыми устройствами, поэтому USB не «просыпается», как следует.
Я попробовал предложение, размещенное в этой ссылке
, но не повезло. Я также попробовал другое предложение, которое состояло в том, чтобы загрузить без клавиатуры, а затем подключить его после запуска Ubuntu.
Вот некоторые подробности
Проблемная машина
Кинезис, который у меня уже 8 лет, позволил мне продолжать играть на клавиатуре. Если я не смогу решить эту проблему, мне придется вернуться к Виндозу, который был бы настоящим обломом.
Любые предложения о том, что можно попробовать, или способы отладки, очень приветствуются.
Редактировать: Я копался в драйверах USB, о которых в Linux я ничего не знаю. Однако я обнаружил, что ноутбук имеет порты USB 2.0 и 3.0. Рабочий стол (с проблемой) только USB 2.0. Все еще копаем ...
У меня была такая же проблема с Ubuntu 16.04 (Xenial Xerus) и я так много искал любого решения.....
Решение находится в конце этого ответа , если вас не волнует контекстная история. Контекст может выглядеть как неиспользуемая блабла (может быть и так), но я думаю, что это могло бы помочь читателям проверить, является ли проблема, которую я решил на своем ПК, той же самой, что и их.
Я отчаянно безуспешно тестировал почти все советы, которые я нашел в интернете, перезагружаясь после каждой попытки:
usbcore. autosuspend=-1
параметрCONTROL_RUNTIME_AUTOSUSPEND=0
man laptop-mode.conf
& man laptop_mode
)опции usbcore autosuspend=1
в '/etc/modprobe.d/usb.conf' тоже были неэффективны rules
для udev
'/etc/udev/rules.d/usb-power.rules', рекомендуемый Serge Y. StroobandtПосле прочтения всего этого технического материала я понял только, что причина в том, что мое значение '/sys/module/usbcore/parameters/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
я не понимал, почему мне отказывали в разрешении даже в режиме sudo. Я не пытался как корень, потому что не думал, что это может быть проблемой. Вот ошибка :(
Благодаря комментариям Алекса Деккера и Брайса я научился отключать autosuspend только для своей мыши. Но, конечно, мои первые попытки не увенчались успехом с этой башкой: Permission denied error
, так что мне пришлось ждать понимания моей путаницы root/sudo, прежде чем команда echo -1
, предложенная Алексом, наконец, сработала.
Я также нашел лучший способ выполнить команду в качестве пользователя root без входа в систему в качестве пользователя root. Разница между использованием корневой оболочки и командами root хорошо объяснена на официальной странице вики-страницы RootSudo в Ubuntu. Я люблю учиться таким вещам, но эй! Почему всегда нужно учиться болезненным способом? LOL
OMG, это была настоящая головная боль, и потребовалось много времени для того, чтобы такой ноб, как я, понял, как я обычно говорю "ни мозга, ни прибыли". Мой явно нуждается в большем количестве тренировок.
Так что давайте перестанем говорить о себе и пойдем исправлять это! Пожалуйста, продолжайте ниже...
Я настоятельно рекомендую второе решение для вашего незадействованного внешнего жесткого диска, чтобы не разряжать батарею ноутбука зря. Но я даю вам оба решения, потому что кто любит свою свободу, должен любить друг друга и свободу :)
Открыть терминал и выполнить:
sudo sh -c "echo -1 > /sys/module/usbcore/параметры/автоподвеску"...[129717]Второе решение для того, чтобы ваш ноутбук не разряжался зря...
Это действительно временное решение, которое позволяет вам мгновенно проверить, исправит ли эта команда проблему с автоподвеской мыши или клавиатуры.
Если ваше USB устройство (устройства) теперь работает нормально, просто отредактируйте ваш '/etc/rc.local' скрипт, чтобы он запускал эту команду всякий раз, когда система загружается. Таким образом, вы сделаете исправление вида постоянным. Отредактируйте файл, например, с помощью nano:
sudo nano /etc/rc.local
и поместите команду echo -1
в ваш файл '/etc/rc.local' перед выходом из строки 0
#!/bin/sh -e.
#
# rc.local
#
# Этот скрипт выполняется в конце каждого многопользовательского уровня выполнения.
(...)
# По умолчанию этот скрипт ничего не делает.
echo -1 > /sys/module/usbcore/parameters/autosuspend
выход 0
Перезагрузите компьютер
(Пожалуйста, ознакомьтесь с важной запиской в конце)
.
Варианты питания для USB-устройства находятся в разделе /sys/bus/usb/devices/n-n/ power
. Что такое n-n
для конкретного устройства требует нескольких манипуляций, чтобы выяснить это, но это не сложно. В примере ниже показано, как я определил, что номер USB-порта моего беспроводного приемника мыши 3-1
, поэтому, пожалуйста, адаптируйте его к своей ситуации:
Отсоедините USB-устройство, откройте терминал и выполните команду sudo dmesg
Подключите USB-устройство обратно, а затем снова выполните sudo dmesg
в терминале, чтобы проверить изменения
Вот как выглядит конец вывода моей команды dmesg
после того, как я подключил мышь обратно в слот:
[40208.575249] usb 3-1: новое полноскоростное USB-устройство номер 8 с использованием xhci_hcd.
[40208.705233] usb 3-1: найдено новое USB-устройство, idVendor=062a, idProduct=4102
[40208.705240] usb 3-1: новые строки устройств USB: Mfr=1, Продукт=2, Серийный номер=0
[40208.705245] usb 3-1: Продукт: 2.4G Беспроводная мышь.
[40208.705248] usb 3-1: Производитель: MOSART Semi.
[40208.707679] вход: MOSART полу. 2.4G Беспроводная мышь в виде /устройств/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:062A:4102.0007/вход/вход24
[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
.
**Заметка:** этот трюк касается идентификатора порта USB, а не идентификатора устройства. Например, если я подключаю мышь к следующему USB-порту, в результате `dmesg` она будет идентифицирована как `usb 3-2`. Но это решение #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.
Это действительно временное решение , но теперь вы можете легко проверить, исправила ли эта команда проблему с автоприостановлением мыши или клавиатуры.
Если ваше USB устройство теперь работает нормально, просто отредактируйте ваш скрипт '/etc/rc.local', чтобы он запускал эту команду при каждой загрузке системы. Таким образом, вы сделаете исправление вида постоянным. Отредактируйте файл, например, с помощью nano:
sudo nano /etc/rc.local
и поместите команду echo -1
в ваш файл '/etc/rc.local' перед выходом из строки 0
, еще раз не забудьте поменять номер порта n-n
в команде:
#!/bin/sh -e
#
# rc.local
#
# Этот скрипт выполняется в конце каждого многопользовательского уровня выполнения.
(...)
# По умолчанию этот скрипт ничего не делает.
echo -1 > /sys/bus/usb/devices/3-1/power/autosuspend_delay_ms
выход 0
Перезагрузите компьютер
.
Важно: не забывайте, что Вам придется снова выполнить "временную" команду sudo sh -c
вручную, если Вы отсоедините/отсоедините Ваше USB устройство, пока окружение рабочего стола уже запущено, даже если Вы подключите его обратно к тому же самому USB-разъему. Обычно, только потому, что файл '/etc/rc.local' вызывается только один раз при загрузке системы.
В любом случае, обходные пути возможны. У более опытных людей могут быть более умные методы, но я настроил псевдонимы для порта в Ubuntu. Это позволяет мне использовать простые команды usb1
или usb2
выборочно, если мне придется отключить/подключить мое USB устройство здесь или там. Вы тоже! Вы также можете создать псевдонимы команд для воспроизведения коротких слов вместо того, чтобы набирать полную команду. Это легко установить менее чем за две минуты, а также работает с Alt + F2 :)
Больше идей, чтобы сделать это проще, также было бы очень приятно.
Это не тот ответ, который я искал, но ... Я потратил два дня и много часов, пытаясь решить эту проблему. Я купил концентратор PCIe USB 3.0, чтобы проверить, сработает ли он, но он не работает.
Я пришел к выводу, что эту проблему не стоит решать, и есть более эффективные способы решения этой проблемы.
Мое решение / обходной путь - полагаться на функцию фрагментов текстового редактора. Это означает, что я буду вкладывать средства и больше полагаться на конкретный редактор (скорее всего, это будет Atom ), но он будет даже лучше, чем то, что у меня было с макросами клавиатуры, поскольку фрагменты легче поддерживать, чем макросы клавиатуры. .
Я многое узнал о USB из Сброс подсистемы USB .
ഞാൻ അതേ പ്രശ്നമുണ്ടായിരുന്നു (കൈനിസ് കീബോർഡ്, ഒരു റീബൂട്ടിന് ശേഷം പ്രവർത്തിക്കുന്നത് നിർത്തി).
ഞാൻ റീബൂട്ടിന് മുമ്പ് 4.4.0-31-ജനറിക്
പഴയ 4.4.0-31 കേർണൽ ഉപയോഗിച്ച് ബൂട്ട് ചെയ്യുന്നത് എനിക്ക് പ്രശ്നം പരിഹരിച്ചു.
ഈ പോസ്റ്റിൽ ഒരു പഴയ കേർണൽ ഉപയോഗിച്ച് എങ്ങനെ ബൂട്ട് ചെയ്യാമെന്നതിനുള്ള നിർദ്ദേശങ്ങൾ ഉൾപ്പെടുന്നു (1198215] പഴയ കേർണൽ നിങ്ങൾക്കായി തന്ത്രം ചെയ്യുന്നുണ്ടോ എന്ന് കാണാൻ നിങ്ങളെ അനുവദിക്കുന്നു).
Если у вас есть ноутбук-инструменты
, возможно, вы сможете полностью отключить функцию автоматического отключения 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"
Вы можете попробовать поиграть с этой опцией, если хотите точно настроить параметры управления питанием.
ПРИМЕЧАНИЯ:
sudo swapoff /path/to/swapfile/to/be/deleted
, не удаляя никакого другого.
– Ruslan
26 October 2017 в 18:42
У меня была такая же проблема. Для меня решение было простым, а истинная причина осталась неизвестной.
Вчера я подключил к компьютеру вторую мышь. Все нормально работало. Сегодня, когда я загрузился, клавиатура не работала на экране входа в систему или на рабочем столе. Во время загрузки заработало, например зашел в биос.
Клавиатура начала работать после того, как я отключил новую мышь и повторно подключил все провода USB.
Я читал этот и другие отчеты снова и снова в течение последнего года, и в конце концов просто отказался от использования клавиатуры, которая вызывала проблемы, и переключился на беспроводную клавиатуру.
Пока мне не пришло в голову, что проблема началась примерно в то время, когда я построил новый компьютер, и это могла быть проблема с питанием. Поэтому я купил USB-концентратор с питанием от и для подключения клавиатуры. Это решило проблему! В конце концов, это была не проблема программного обеспечения, но, видимо, у моего нового компьютера USB-выходы с недостаточным питанием (по крайней мере, так думает моя клавиатура).
Возможно, стоит попробовать, если вы страдаете от периодических отключений клавиатуры, как описано выше, и ничего со стороны программного обеспечения сработало. USB-концентратор с питанием не должен быть дорогим.