Выход из режима ожидания с USB-клавиатуры перестает работать после отключения / повторного подключения клавиатуры
Пробуждение из режима ожидания с 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
из терминала.
изменить: я хотел уточнить точные шаги, которые я выполняю:
- Компьютер включен, проснулся и USB-клавиатура подключена.
- Я приостановил ноутбук с помощью
sudo systemctl suspend
из терминала. - При подвешенном ноутбуке я отключаю USB-клавиатуру.
- Пока ноутбук подвешен, я снова подключаю USB-клавиатуру.
- Я нажал клавишу на клавиатуре USB, ожидая, что она разбудит ноутбук. Ничего не произошло. Ноутбук не просыпается.
Если я не выполню шаги 3 и 4 (то есть, если я не отключу и снова не подключу клавиатуру USB), я смогу разбудить ноутбук, нажав клавишу на клавиатуре USB.
1 ответ
Когда USB-порт с подключенной клавиатурой LS находится в режиме SUSPEND, шина находится в состоянии ожидания LS, D- высокий, активность отсутствует. Для пробуждения система ожидает последовательности сигналов пробуждения - "K-состояние" должно генерироваться с клавиатуры (в режиме LS состояние K имеет D+ = высокий уровень, противоположный состояниям шины FS/HS).
Когда вы отключите клавиатуру в состоянии ожидания, аппаратная логика порта будет ощущать "USB отключение" (состояние SE0), и порт перейдет в состояние "отключено". Это отменит режим пробуждения.
Чтобы компьютер проснулся в такой ситуации, вам нужно включить что-то вроде "пробуждение при горячей замене". Я не уверен, доступна ли эта функция.