Description
A user reported that with the Teensy 3.6 based kint36 keyboard controller (for the Kinesis Advantage), waking their computer wouldn’t work.
I looked into this a bit, and noticed:
- When I suspend my laptop, QMK first goes into USB suspend mode, but then is re-initialized for some reason — maybe the computer removes power and restores it? Not sure how to confirm that. The device is connected directly to my ThinkPad X1 Extreme’s USB port.
- After being re-initialized, the device stays in ChibiOS’s USB state READY (connected, but not enumerated), so any key presses are discarded and the computer can’t be woken up.
- During my testing, somehow the device stayed active once (haven’t been able to reproduce more than once), and when I hit the KC_WAKE key, it did power the computer back on, but then it hung indefinitely.
I also tested with the Teensy++ 2.0 based kint2pp keyboard controller, and KC_WAKE doesn’t work there either. Haven’t added serial debug statements to that board yet, though, so I’m not sure if it’s the same symptom.
Any ideas why the device would re-initialize after suspend-to-ram?
When USB devices are plugged into a computer while it’s suspended, I assume they are not enumerated, but should they end up in ChibiOS USB state SUSPENDED?
Describe the Bug
System Information
Keyboard: kint36, kint2pp, possibly others
Revision (if applicable): e1f6fa5
Operating system: Fedora Linux
qmk doctor
output:
Ψ QMK Doctor is checking your environment.
Ψ CLI version: 1.0.0
Ψ QMK home: /home/michael/kinx/qmk_wakeup
Ψ Detected Linux.
⚠ Missing or outdated udev rules for 'atmel-dfu' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'kiibohd' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'stm32' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'bootloadhid' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'usbasploader' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'massdrop' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'caterina' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
⚠ Missing or outdated udev rules for 'hid-bootloader' boards. Run 'sudo cp /home/michael/kinx/qmk_wakeup/util/udev/50-qmk.rules /etc/udev/rules.d/'.
Ψ Git branch: master
Ψ Repo version: 0.16.9
⚠ Git has unstashed/uncommitted changes.
⚠ The official repository does not seem to be configured as git remote "upstream".
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 11.2.0
Ψ Found avr-gcc version 11.2.0
⚠ We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.
Ψ Found avrdude version 6.4
Ψ Found dfu-util version 0.11
Ψ Found dfu-programmer version 0.7.2
Ψ Submodules are up to date.
Ψ QMK is ready to go, but minor problems were found
Any keyboard related software installed?
- AutoHotKey (Windows)
- Karabiner (macOS)
- Other: