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

837
illabout

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

Я использую Linux, в частности NixOS (хотя думаю, что этот вопрос будет актуален для любого дистрибутива).

Пробуждение из режима ожидания работает нормально, если я не отключаю USB-клавиатуру во время режима ожидания.

/sys/bus/usb/devices/1-7.1это клавиатура под вопросом. /sys/bus/usb/devices/1-7.1/power/wakeupустанавливается enabledкак до, так и после приостановки.

Мой ноутбук - Lemur 8 от System76. Нет никаких параметров BIOS, связанных с пробуждением USB от приостановки.

Я приостановил работу ноутбука, запустив его sudo systemctl suspendиз терминала.


изменить: я хотел уточнить точные шаги, которые я выполняю:

  1. Компьютер включен, проснулся и USB-клавиатура подключена.
  2. Я приостановил использование ноутбука с sudo systemctl suspendтерминала.
  3. При подвешенном ноутбуке я отключаю USB-клавиатуру.
  4. Пока ноутбук подвешен, я снова подключаю USB-клавиатуру.
  5. Я нажал клавишу на клавиатуре USB, ожидая, что она разбудит ноутбук. Ничего не произошло. Ноутбук не просыпается.

Если я не выполню шаги 3 и 4 (то есть, если я не отключу и снова не подключу клавиатуру USB), я смогу разбудить ноутбук, нажав клавишу на клавиатуре USB.

0
Так что не отключайте клавиатуру. Если ваша система приостановлена, как вы ожидаете, что она распознает, что новое устройство подключено? DavidPostill 6 лет назад 0
Моя клавиатура на самом деле подключена к KVM-переключателю, поэтому, если я хочу использовать другой компьютер, мне нужно будет эффективно «отключить» USB-клавиатуру от данного ноутбука. Тем не менее, я подтвердил, что KVM не связан с этой проблемой, и он сохраняется, даже если я просто отключаю / подключаю обычную USB-клавиатуру прямо к ноутбуку. illabout 6 лет назад 0
Я не уверен, как ноутбук сможет распознать, что новое устройство подключено, когда оно приостановлено. Вот почему я задаю вопрос. Я предполагал, что можно будет разбудить ноутбук от ожидания независимо от того, когда я подключил клавиатуру. Если невозможно разбудить ноутбук с USB-клавиатуры, если клавиатура не была подключена * до * того, как ноутбук был приостановлен, тогда я бы принял это как ответ. illabout 6 лет назад 0
«Моя клавиатура на самом деле на KVM-переключателе». Это другой вопрос. Пожалуйста, [отредактируйте] и добавьте эту важную информацию к вашему вопросу. DavidPostill 6 лет назад 0
Как я уже говорил в своем предыдущем комментарии, я проверял, что проблема все еще существует без использования KVM-переключателя. Это происходит при использовании клавиатуры USB, непосредственно подключенной к компьютеру, как описано в вопросе. Поэтому переключатель KVM не имеет отношения к этому вопросу. illabout 6 лет назад 0
Я согласен, что если проблема возникла * только *, когда клавиатура была подключена через KVM-переключатель, то это была бы соответствующая информация. Однако это не так. Проблема возникает независимо от того, используется ли переключатель KVM. illabout 6 лет назад 0
Пожалуйста, уточните, какие именно действия происходят: удаление клавиатуры с KVM, удаление KVM с компьютера, удаление клавиатуры с компьютера, переключение KVM без отключения питания? Симптом может быть таким же, но причина и корректирующие действия будут другими. А если вы используете KVM, зачем вам что-то отключать? fixer1234 6 лет назад 0
@ fixer1234 Как я уже говорил в предыдущем комментарии, проблема возникает независимо от того, использую ли я KVM-переключатель. Тот факт, что я использую KVM-переключатель, не является частью вопроса. Как описано в вопросе, если я просто подключаю / отключаю USB-клавиатуру непосредственно к ноутбуку, я испытываю проблему. Я добавлю немного больше объяснений к вопросу о точной последовательности шагов, которые я выполняю. illabout 6 лет назад 0
Важно ли использовать KVM. Отключение клавиатуры от компьютера всегда вызывает проблему, которую вы описываете. Если вы работаете через KVM, а KVM остается подключенным, у вас не должно возникнуть проблем при переключении KVM или отключении клавиатуры от KVM (по крайней мере, пока KVM переключен на другой компьютер; не уверен, что KVM переключается на рассматриваемый компьютер). Если проблема возникает при подключении KVM, по крайней мере, при переключении на другой компьютер, это указывает на плохой KVM (другая причина). fixer1234 6 лет назад 1
@ fixer1234 «Отключение клавиатуры от компьютера всегда вызывает проблему, которую вы описываете». Если это правда, то вы можете добавить это как ответ, и я приму это. (Конечно, если вы добавите какую-либо ссылку, было бы лучше для других людей, которые посещают этот вопрос). illabout 6 лет назад 0
@ fixer1234 «Если проблема возникает при подключении KVM, по крайней мере при переключении на другой компьютер, это указывает на плохой KVM (другая причина).» Это определенно полезно знать, хотя кажется, что это другой вопрос, чем тот, который я задавал. Может быть, я должен создать новый вопрос, конкретно задавая вопрос о приостановке при подключении KVM. (Хотя я думаю, что вы в основном уже ответили: «плохой KVM») illabout 6 лет назад 0
Ответ Али Чена уже охватывает, почему проблема возникает, если вы отключаетесь напрямую от компьютера. KVM поддерживает соединение USB при переключении на другой компьютер. Я не уверен, обеспечивает ли он также подключение USB при переключении на текущий компьютер (т. Е. Компьютер видит коммутатор как устройство, а коммутатор передает сигнал клавиатуры), или KVM просто полагается на подключенную клавиатуру для этого , В последнем случае отключение клавиатуры от KVM приведет к разрыву USB-соединения. fixer1234 6 лет назад 1

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

3
Ale..chenski

Когда порт USB с подключенной клавиатурой LS находится в состоянии SUSPEND, шина находится в состоянии ожидания LS, D- высокий уровень, активность отсутствует. Для пробуждения система ожидает последовательности сигналов пробуждения - клавиатура должна генерировать «K-состояние» (в режиме LS K-состояние D + = высокий, в противоположность состояниям шины FS / HS).

Когда вы отключите клавиатуру в состоянии ожидания, аппаратная логика порта будет ощущать «USB отключение» (состояние SE0), и порт перейдет в состояние «отключено». Это отменит режим пробуждения.

Чтобы компьютер проснулся в такой ситуации, вам нужно включить что-то вроде «пробуждение по горячему подключению». Я не уверен, доступна ли эта функция.

Где искать настройку «пробуждение при горячей замене»? Будет ли что-то, что я смогу включить в BIOS? illabout 6 лет назад 0
@illabout, я понятия не имею. На аппаратном уровне я знаю, что xHCI имеет очень широкие возможности прерывания, «прерыватель», а регистр состояния USB (USBSTS) имеет бит 4, который позволяет «обнаруживать изменение порта», который, в свою очередь, получает информацию от каждого порта PORTSC (состояние и контроль), и каждый PORTSC имеет бит 25, который включает событие Wake-On-Connect. См. Https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf. Кто-то должен включить этот пробуждение функция, вам нужно проконсультироваться с людьми Linux. Ale..chenski 6 лет назад 0