When I install Manjaro using the live ISO, I can use the UBS wireless keyboard on boot menu. Even after install it works great. As soon as I run update-grub or install a new kernel (which runs grub-install), I can no longer use the USB keyboard to select the desired boot option. This being a laptop I can still use the built-in keyboard, without problems.
The keyboard is perfectly usable in BIOS.
Does anyone have an idea what I can do to keep being able to use the keyboard during boot menu?
I’m using grub, everything is up to date, using KDE. I have tried connecting the keyboard to the always-on USB port, connecting it via a hub, etc. Nothing changes. (it worked in any configuration before running the first grub-install/update-grub).
inxi output:
Host: nak Kernel: 6.6.30-3-MANJARO arch: x86_64 bits: 64 compiler: gcc
v: 14.1.1 clocksource: hpet avail: acpi_pm
parameters: BOOT_IMAGE=/boot/vmlinuz-6.6-x86_64
root=UUID=61458c95-b3dd-44e0-8845-7acfaec121dd rw quiet splash
udev.log_priority=3 video=eDP-1:1024x768
Desktop: KDE Plasma v: 6.0.4 tk: Qt v: N/A info: frameworks v: 6.2.0
wm: kwin_x11 vt: 2 dm: SDDM Distro: Manjaro base: Arch Linux
...
Device-2: 1-1.4.3:9 info: Logitech Unifying Receiver
type: keyboard,mouse,HID driver: logitech-djreceiver,usbhid interfaces: 3
rev: 2.0 speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 98mA
chip-ID: 046d:c52b class-ID: 0300
I’ve tried switching to the unstable branch, nothing changed (currently still on unstable).
Keyboard model is Logitech MX Keys.
EDIT: Once Manjaro loads, the keyboard works perfectly (at login screen also), just at grub boot screen I cannot select the desired boot option.
Edit your /etc/mkinitcpio.conf
and place the keyboard
hook before autodetect
.
Note: For systems that are booted with different hardware configurations (e.g. laptops with external keyboard vs. internal keyboard or headless systems), this hook needs to be placed before autodetect in order to be able to use the keyboard at boot time, for example to unlock an encrypted device when using the encrypt
hook.
– mkinitcpio - ArchWiki
2 Likes
Hi @Yochanan, thanks for your reply. I made the change and ran update-grub, but it did not help:
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base udev keyboard autodetect kms modconf block keymap consolefont plymouth filesystems fsck)
I think I need to access the keyboard before boot. The grub boot menu is shown before the OS is selected. It must have something to do with grub and not any setting inside the OS I think.
EDIT: this got me thinking so I added usb_keyboard in /etc/default/grub, then ran update-grub again:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash udev.log_priority=3 video=eDP-1:1024x768"
GRUB_CMDLINE_LINUX=""
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos usb_keyboard"
but this also did nothing.
Edit2: i tried adding the at_keyboard and usb modules too. also i added them to the GRUB_TERMINAL_INPUT variable:
GRUB_PRELOAD_MODULES="part_gpt part_msdos at_keyboard usb_keyboard usb"
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console,usb_keyboard,at_keyboard
Have you run sudo mkinitcpio -P
before update-grub?
I did it now, then reran update-grub. no success. What bugs me is that the live iso for example allows me to use the usb keyboard to select boot options, so I definitely know it is possible. I’ve checked the grub config in the live iso and didn’t see anything different that seemed relevant.
Check your BIOS for any Legacy USB options, and enable them if they exist. Additionally, if there is a Fast Boot option in your BIOS, disable that.
See if this makes any difference.
You might also try different USB ports for the Logitech receiver; try USB2, for example; or a USB connector at the back of the machine.
Cheers.
1 Like
The laptop does not have any USB related options in BIOS. They have pared down the features one is able to control via BIOS on the new Lenovo machines. Advanced settings are also no longer available via hidden keys combo.
I tried every port. Interesting thing, when booting straight out fo bios (F10 save and exit), when reaching the grub menu the keyboard is usable. This seems to point out a hardware issue, however, I’m not sure why the keyboard was available in grub menu until the first update-grub.
Update. Apparently this is not OS related. As I said before, the new Lenovo laptops have extremely basic firmware menus. There is no “Enable legacy USB” option. However if I edit the boot order and add “Boot from USB HDD” as the first option (even if no USB drive is connected to any USB port), the USB ports get initialized during POST and the keyboard is recognized in the GRUB menu.
When booting the live ISO the “Boot from USB” is enabled (you wouldn’t be booting the ISO otherwise), that’s why the live ISO always had USB keyboard enabled in grub menu. Also I think the boot-repair utility changes the firmware boot order and removes boot from USB as first option.
1 Like
This topic was automatically closed 36 hours after the last reply. New replies are no longer allowed.