qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
18.27k stars 39.35k forks source link

[Bug] GRUB doesn't register keypresses after shutdown & boot #17583

Closed LittlePlanlessFool closed 2 years ago

LittlePlanlessFool commented 2 years ago

Describe the Bug

I have a dual boot setup for Windows 10 and Linux. When I sellect Restart in Windows, GRUB does register keypresses again, but doesn't after having shut down and booting again.

System Information

Keyboard: Corne Revision (if applicable): Choc Operating system: Win 10 / Arch qmk doctor output:

Ψ QMK Doctor is checking your environment.
Ψ CLI version: 1.1.0
Ψ QMK home: C:/Users/mh4uS/qmk_firmware
Ψ Detected Windows 10 (10.0.19044).
Ψ Git branch: keymap
Ψ Repo version: 0.16.9
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 10.1.0
Ψ Found avr-gcc version 8.4.0
Ψ 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

Any keyboard related software installed? None

Additional Context

Seems to be a general problem to every boot process, like BIOS, UEFI, Mac Recovery

drashna commented 2 years ago

The corne looks to have NKRO enabled,

So do you have NKRO toggled on (you can easily test that), or have FORCE_NKRO defined? If either is the case, then this can cause issues in some cases.

Also, if you have SPLIT_USB_DETECT defined, this can cause weird issues on boot, too.

LittlePlanlessFool commented 2 years ago

I don't have NKRO in my rules.mk or FORCE_NKRO defined. Should I add NKRO_ENABLE = no to rules.mk?

LittlePlanlessFool commented 2 years ago

did that, now it works. Thanks!

awilkins commented 1 year ago

Arrived here from the issue linked above (thanks @lesshonor).

It does seem like NKRO has an influence ... I booted to GRUB, moved the cursor up and down successfully, and then toggled NKRO ... and it stops working. Then tried toggling it back off ... and nothing. And then couldn't successfully move the cursor in GRUB over about 4 hard resets no matter how many times I hit Fn + Y, which is what MAGIC_TOGGLE_NKRO is bound to on my board.

Sadly VIA doesn't have MAGIC_UNHOST_NKRO available to bind to a key, that would be the next thing I try, just so I could be sure I was disabling it, rather than having a 50/50 chance of toggling it on.