USB Frozen/Disabled at GRUB Bootloader

Hi folks,

I have this very annoying issue whereby my dual-boot setup freezes at the Manjaro GRUB bootloader screen. The timer is stuck on 5 seconds and the keyboard is unresponsive.

I initially thought it was to do with my external display which is connected to a USB-C/HDMI hub however, further troubleshooting has confirmed that this isn’t the issue.

I can confirm 100% that the issue occurs when I have an active USB device connected to any port on my laptop (x2 USB-C and x1 USB=A).

I’m guessing this has something to do with my laptop BIOS. The BIOS has an option to disabled BIOS, but there are no options to enable Legacy USB. When I detach the USB devices, the laptop will boot to GRUB just fine. Oddly, if I tap F9 which brings up the BIOS bootloader, I can then select Manjaro from the list and it will then load the Manjaro GRUB with the USB devices attached, so it works this way.

I still can’t work out why it is freezing like this. I use an external monitor and usually don’t even open the lid of my laptop but now I have to otherwise I won’t be able to boot into Manjaro.

  1. Is there a fix somewhere I am overlooking, maybe in the BIOS?
  2. Is there some way to disable GRUB completely and force my laptop to use the BIOS bootloader screen (F9 on startup). This allows me to select Windows/Manjaro and it will boot just fine with USB devices connected.
  3. Is there something in GRUB I can try disabling that would help? Here is my GRUB config
GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor udev.log_priority=3"
GRUB_CMDLINE_LINUX=""

# If you want to enable the save default function, uncomment the following
# line, and set GRUB_DEFAULT to saved.
GRUB_SAVEDEFAULT=true

# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y

# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"

# Uncomment to enable booting from LUKS encrypted devices
#GRUB_ENABLE_CRYPTODISK=y

# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console


# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'videoinfo'
GRUB_GFXMODE=auto

# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep

# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true

# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false

# Uncomment and set to the desired menu colors.  Used by normal and wallpaper
# modes only.  Entries specified as foreground/background.
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"

# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/usr/share/grub/background.png"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"

# Uncomment to ensure that the root filesystem is mounted read-only so that
# systemd-fsck can run the check automatically. We use 'fsck' by default, which
# needs 'rw' as boot parameter, to avoid delay in boot-time. 'fsck' needs to be
# removed from 'mkinitcpio.conf' to make 'systemd-fsck' work.
# See also Arch-Wiki: https://wiki.archlinux.org/index.php/Fsck#Boot_time_checking
#GRUB_ROOT_FS_RO=true

Eventually I want to get rid of Windows completely, but even when I do, this will still be an issue. I would really appreciate your help with this. Thank you!

System:
  Kernel: 5.15.12-1-MANJARO x86_64 bits: 64 compiler: gcc v: 11.1.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-5.15-x86_64
    root=UUID=5c7e6414-c04a-474b-8dcc-d95acc04d8dd rw quiet apparmor=1
    security=apparmor udev.log_priority=3
  Desktop: KDE Plasma 5.23.4 tk: Qt 5.15.2 wm: kwin_x11 vt: 1 dm: SDDM
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Convertible System: HP product: HP Spectre x360 Convertible 13-aw0xxx
    v: N/A serial: <superuser required> Chassis: type: 31
    serial: <superuser required>
  Mobo: HP model: 86F9 v: 87.74 serial: <superuser required> UEFI: AMI
    v: F.28 date: 03/04/2021
Battery:
  ID-1: BAT0 charge: 60.0 Wh (100.0%) condition: 60.0/60.8 Wh (98.7%)
    volts: 17.3 min: 15.4 model: HP Primary type: Li-ion serial: <filter>
    status: Full cycles: 13
  Device-1: hid-0018:04F3:29F9.0001-battery model: ELAN2514:00 04F3:29F9
    serial: N/A charge: N/A status: N/A
  Device-2: sony_controller_battery_84:17:66:83:74:b6 model: N/A serial: N/A
    charge: N/A status: Full
Memory:
  RAM: total: 7.45 GiB used: 3.71 GiB (49.9%)
  RAM Report:
    permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i5-1035G4 bits: 64 type: MT MCP arch: Ice Lake
    family: 6 model-id: 0x7E (126) stepping: 5 microcode: 0xA6
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 2 MiB desc: 4x512 KiB L3: 6 MiB
    desc: 1x6 MiB
  Speed (MHz): avg: 1300 high: 1301 min/max: 400/3700 scaling:
    driver: intel_pstate governor: powersave cores: 1: 1301 2: 1300 3: 1300
    4: 1301 5: 1301 6: 1300 7: 1301 8: 1300 bogomips: 23968
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_perfmon art avx avx2 avx512_bitalg avx512_vbmi2
    avx512_vnni avx512_vpopcntdq avx512bw avx512cd avx512dq avx512f avx512ifma
    avx512vbmi avx512vl bmi1 bmi2 bts clflush clflushopt cmov constant_tsc
    cpuid cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms
    est f16c flexpriority flush_l1d fma fpu fsgsbase fsrm fxsr gfni ht hwp
    hwp_act_window hwp_epp hwp_notify hwp_pkg_req ibpb ibrs ibrs_enhanced ida
    intel_pt invpcid invpcid_single lahf_lm lm mca mce md_clear mmx monitor
    movbe msr mtrr nonstop_tsc nopl nx ospke pae pat pbe pcid pclmulqdq pdcm
    pdpe1gb pebs pge pku pln pni popcnt pse pse36 pts rdpid rdrand rdseed
    rdtscp rep_good sdbg sep sha_ni smap smep split_lock_detect ss ssbd sse
    sse2 sse4_1 sse4_2 ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust
    tsc_deadline_timer tsc_known_freq umip vaes vme vmx vnmi vpclmulqdq vpid
    x2apic xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl and seccomp
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB filling
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel Iris Plus Graphics G4 vendor: Hewlett-Packard driver: i915
    v: kernel bus-ID: 00:02.0 chip-ID: 8086:8a5a class-ID: 0300
  Device-2: Chicony HP True Vision HD Camera type: USB driver: uvcvideo
    bus-ID: 3-5:3 chip-ID: 04f2:b6a4 class-ID: 0e02 serial: <filter>
  Display: x11 server: X.org 1.21.1.2 compositor: kwin_x11 driver:
    loaded: modesetting alternate: fbdev,vesa resolution: <missing: xdpyinfo>
  Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
  Device-1: Intel Ice Lake-LP Smart Sound Audio vendor: Hewlett-Packard
    driver: sof-audio-pci-intel-icl
    alternate: snd_hda_intel,snd_sof_pci_intel_icl bus-ID: 00:1f.3
    chip-ID: 8086:34c8 class-ID: 0401
  Sound Server-1: ALSA v: k5.15.12-1-MANJARO running: yes
  Sound Server-2: JACK v: 1.9.19 running: no
  Sound Server-3: PulseAudio v: 15.0 running: yes
  Sound Server-4: PipeWire v: 0.3.42 running: yes
Network:
  Device-1: Intel Ice Lake-LP PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:34f0 class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: dynamic noprefixroute scope: global
  IP v6: <filter> type: noprefixroute scope: link
  WAN IP: <filter>
Bluetooth:
  Device-1: Intel AX201 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 3-10:7 chip-ID: 8087:0026 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Logical:
  Message: No logical block device data found.
RAID:
  Hardware-1: Intel 82801 Mobile SATA Controller [RAID mode] driver: ahci
    v: 3.0 port: 3060 bus-ID: 00:17.0 chip-ID: 8086:282a rev: N/A class-ID: 0104
Drives:
  Local Storage: total: 465.76 GiB used: 48.69 GiB (10.5%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WD Blue SN570 500GB size: 465.76 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 234100WD temp: 34.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 120.86 GiB size: 118.4 GiB (97.97%)
    used: 14.78 GiB (12.5%) fs: ext4 dev: /dev/nvme0n1p6 maj-min: 259:6
    label: N/A uuid: 5c7e6414-c04a-474b-8dcc-d95acc04d8dd
  ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%)
    used: 31.5 MiB (32.8%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
    label: N/A uuid: E40C-7643
  ID-3: /run/timeshift/backup raw-size: 97.66 GiB size: 95.12 GiB (97.41%)
    used: 33.88 GiB (35.6%) fs: ext4 dev: /dev/nvme0n1p5 maj-min: 259:5
    label: N/A uuid: ffa3e941-d94c-40f3-a409-43d7e9e4f157
Swap:
  Alert: No swap data was found.
Unmounted:
  ID-1: /dev/nvme0n1p2 maj-min: 259:2 size: 16 MiB fs: <superuser required>
    label: N/A uuid: N/A
  ID-2: /dev/nvme0n1p3 maj-min: 259:3 size: 246.53 GiB fs: ntfs label: N/A
    uuid: E2B8B43EB8B41351
  ID-3: /dev/nvme0n1p4 maj-min: 259:4 size: 611 MiB fs: ntfs label: N/A
    uuid: E430B86C30B846F8
USB:
  Hub-1: 1-0:1 info: Hi-speed hub with single TT ports: 1 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-2: 2-0:1 info: Super-speed hub ports: 4 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
  Hub-3: 2-1:2 info: Genesys Logic Hub ports: 4 rev: 3.2 speed: 5 Gb/s
    chip-ID: 05e3:0626 class-ID: 0900
  Hub-4: 3-0:1 info: Hi-speed hub with single TT ports: 12 rev: 2.0
    speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
  Hub-5: 3-2:2 info: Genesys Logic Hub ports: 4 rev: 2.1 speed: 480 Mb/s
    power: 100mA chip-ID: 05e3:0610 class-ID: 0900
  Device-1: 3-2.2:4 info: Sony DualShock 4 [CUH-ZCT1x] type: HID
    driver: sony,usbhid interfaces: 1 rev: 2.0 speed: 12 Mb/s power: 500mA
    chip-ID: 054c:05c4 class-ID: 0300
  Hub-6: 3-2.3:77 info: Terminus Hub ports: 4 rev: 2.0 speed: 480 Mb/s
    power: 100mA chip-ID: 1a40:0101 class-ID: 0900
  Device-1: 3-2.3.1:78 info: Areson Corp 2.4G Receiver type: Keyboard,Mouse
    driver: hid-generic,usbhid interfaces: 2 rev: 1.1 speed: 12 Mb/s
    power: 100mA chip-ID: 25a7:fa23 class-ID: 0301
  Device-2: 3-2.3.2:79 info: Microdia Redragon Mitra RGB Keyboard
    type: Keyboard,Mouse driver: hid-generic,usbhid interfaces: 2 rev: 2.0
    speed: 12 Mb/s power: 400mA chip-ID: 0c45:5004 class-ID: 0301
  Hub-7: 3-2.4:6 info: Terminus Hub ports: 4 rev: 2.0 speed: 480 Mb/s
    power: 100mA chip-ID: 1a40:0101 class-ID: 0900
  Device-1: 3-2.4.1:8 info: Realtek BillBoard Device type: Billboard
    driver: N/A interfaces: 1 rev: 2.1 speed: 12 Mb/s power: 200mA
    chip-ID: 0bda:2171 class-ID: 1100 serial: <filter>
  Device-2: 3-5:3 info: Chicony HP True Vision HD Camera type: Video
    driver: uvcvideo interfaces: 4 rev: 2.0 speed: 480 Mb/s power: 500mA
    chip-ID: 04f2:b6a4 class-ID: 0e02 serial: <filter>
  Device-3: 3-9:5 info: Synaptics type: <vendor specific> driver: N/A
    interfaces: 1 rev: 2.0 speed: 12 Mb/s power: 100mA chip-ID: 06cb:00c9
    class-ID: ff00 serial: <filter>
  Device-4: 3-10:7 info: Intel AX201 Bluetooth type: Bluetooth driver: btusb
    interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 100mA chip-ID: 8087:0026
    class-ID: e001
  Hub-8: 4-0:1 info: Super-speed hub ports: 6 rev: 3.1 speed: 10 Gb/s
    chip-ID: 1d6b:0003 class-ID: 0900
Sensors:
  System Temperatures: cpu: 52.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 288 Uptime: 1h 46m wakeups: 34 Init: systemd v: 250
  tool: systemctl Compilers: gcc: 11.1.0 clang: 13.0.0 Packages: 1242
  pacman: 1239 lib: 338 flatpak: 3 Shell: Zsh v: 5.8 default: Bash v: 5.1.12
  running-in: konsole inxi: 3.3.11

That’s because there is no such thing if the machine boots up in native UEFI mode. Furthermore, the “legacy USB support” in a legacy BIOS doesn’t do what you think it does.

The “legacy USB support” option exists in legacy BIOS firmware because a legacy BIOS runs in the 16-bit real mode of the boot processor (core), with only 1024 KiB of memory address space, of which the top 384 KiB are reserved for direct access to the hardware.

“Legacy USB support” allows such a legacy BIOS to jump into so-called “unreal mode” ─ in and of itself, that’s a little too wordy to explain here ─ with as a result that the 16-bit real-mode code of the BIOS firmware can access the RAM above the 1024 KiB boundary in order to support the emulation of PS/2 input devices for USB-attached input devices─ i.e. keyboard and mouse. And that’s all there is to it.

UEFI works differently. By design, the x86-64 processor architecture always starts up in 16-bit real mode on power-on, because this was needed for both the legacy BIOS firmware code and for booting MS-DOS and the DOS-based versions of MS-Windows ─ i.e. Windows 95, 98 and ME. But on a UEFI system, the UEFI firmware switches the boot processor into 64-bit long mode right away, and thus it doesn’t need to emulate PS/2 input devices, because it has native support for USB.

In that case, logic dictates that the problem is with your motherboard’s firmware, be it UEFI or BIOS.

I don’t know. It’s a little hard to see from all the way over here. :stuck_out_tongue:

Yes, but that is not something a newbie would be able to pull off. You would need to use the EFI stub for having the UEFI boot the kernel directly, and it only works with UEFI boot, not with a legacy BIOS boot.

Alternatively, you could try one of the alternative boot loaders, e.g. refind or systemd-boot. But that too probably requires a little more expertise than you currently have.

No, not likely.

1 Like

Thanks for the detailed reply. Much appreciated! I also put the same post on the HP Community forum, but no reply as yet.

It looks like this is my only potential solution for now. I will look into these alternative bootloaders and give them a go if they aren’t too cumbersome. I can always roll back if it doesn’t work out. Thanks for the suggestion!

1 Like

I tried the rEFInd bootloader which I was able to install fairly easily, but the exact same issue is present. After more troubleshooting, it seems to freeze only when there is a keyboard or mouse connected. It doesn’t freeze if I have a USB pen drive connected for example.

I’ve tried 3 different USB keyboards and they all freeze at the GRUB menu.

This surely has to be some sort of hardware issue with my laptop. It is so incredibly annoying. I can connect a USB keyboard even 1 second after the GRUB bootloader loads, but if I leave it connected, it will freeze. The same exact thing is true for the rEFInd bootloader.

Looks like I am going to have to contact HP. My laptop isn’t long out of warranty, so they may not be interested.