Пробуждение из режима ожидания с клавиатуры 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.

1 ответ1

3

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .