Skip to content

Instantly share code, notes, and snippets.

@tggreene
Last active May 8, 2022 10:56
Show Gist options
  • Save tggreene/38bc7602b3c945dd0dec07b5f1dec7cd to your computer and use it in GitHub Desktop.
Save tggreene/38bc7602b3c945dd0dec07b5f1dec7cd to your computer and use it in GitHub Desktop.
Arch Issues

Bluetooth failing on boot

If you've ever had a message like:

Bluetooth: hci0: Failed to load intel firmware file ibt-20-1-3.sfi (-2)

displayed during the boot process (particularly if you have a LUKS partition and with mkinitcpio-bluetooth configured) this might solve the problem.

When the AX200 bluetooth device would encounter a problem (typically occurring during sleep/wake or hard resets) and (presumably) would need to have it's driver reloaded, the initramfs image would be unable to load it and you'd be left having to type a password for LUKS in using the integrated keyboard.

The solution is extremely simple (and documented in the mkinitcpio-bluetooth README), make the driver files available in the initramfs:

/etc/mkinitcpio.conf or where-ever you keep mkinitcpio configuration:

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=(/usr/lib/firmware/intel/ibt-20-1-3.sfi.xz /usr/lib/firmware/intel/ibt-20-1-3.ddc.xz)
# assuming your firmware files are xz compressed

It should now be able to load or recover the bluetooth device on startup automatically.

Bootloader Defaulting to Windows

If you've had the experience of your bootloader defaulting to Windows (or another undesirable OS on your multi-boot setup), even with the boot order set to Arch Linux first, with a result that looks like this:

            Arch Linux
=>      Windows Boot Sector
   Reboot Into Firmware Interface

It means that you're presumably using systemd-boot and have at some point accidentally tapped d with the OS highlighted. It's very simple to fix, just select the OS again and tap d to disable it, ? or h should bring up a small menu with more details too.

For some reason I haven't dug out yet I was unable to fix this with any amount of tinkering with bootctl and /boot/loader/loader.conf. But that's my problem!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment