Librem 11: SeaBIOS/Coreboot does not recognize keyboard. PureBoot does not boot USB

In the last few days I was doing some experimentation on the librem 11. PureOS is great and all but I personally don’t really like debian and wanted to run arch on the librem 11.

So I flashed a couple USBs (I tried Manjaro, Garuda Linux and EndeavourOS). Pureboot seems to be quite picky though and does not want to boot some of the sticks (namely Manjaro and Garuda) showing me this message:

Sticks with PureOS boot fine btw

I did create the USB with either balena etcher and tried dd the iso to the usb as well to no avail.

I then googled around a bit and found out I could try straight Coreboot/SeaBiOS as well. So I did flash the latest version of that.

That one booted all three USBs I made just fine. Though there is a problem for me.

The keyboard are not properly registered by SeaBIOS it seems. With neither the keyboard-cover the librem 11 comes with nor my wireless-keyboard could reliably navigate SeaBios. It would recognize the keyboards for like 2 sec. So I can press ESC on boot But I can’t enter a number to boot from.

If I let it boot the stick oder nvme automatically I can’t use the keyboards to navigate the GRUB-Bootloader at all. Very Inconvinient…

I read on another thread that SeaBIOS is rather restrictive with USB-devices. But I don’t have a wired keyboard at the moment to test with.

So my questions boil down to:

  1. Is there a possibility to allow PureBoot to boot any USB-stick?

  2. Is there anything I need to modify on the isos or the stick to make them bootable on PureBoot?

  3. Is there a fix for the keyboard-problem in seabios?

Generally Pureboot seems nicer for the Librem 11 since I can change settings even when only holding the tablet. I would love to boot any stick though (at my own risk of course)

Otherwise a fix for coreboot would be great so it actually makes at least the detachable keyboard usable.

I did also flash pre-compiled images for the librem 11 both times. I did not try self-compiling them from source yet.

1 Like

Based on my PureBoot experience on the Librem 14, yes, no, and not sure. If PureBoot is not detecting the USB drive, disconnect it, turn off the Librem 11, reconnect the USB drive and turn on the Librem 11 again. You can also try using Ventoy and see if that makes any difference.

Hey thanks for the answer.

The librem 11 does recognize the sticks I am fairly certain at that. They are shown in the boot options when I click USB-Boot. I can then select a partition to boot from (most of the time 2) selecting either of those would sadly result in what you see in the screenshot above.

reconnecting did not really change something for me sadly. Also I am pretty certain I tried ventoy as well. I think the Live USB would boot. I can install it on the stick.

I would put my isos on it and it would not boot from with the same error.

Though tbh I am not 100% certain and might need to check again. Will do so somewhat later today when I get home.

1 Like

Okay, it looks like we have exhausted most options, so I will mention @dos to provide support.

My question would be: Does the provided keyboard work with those other distros?

If the answer is “no” then, whether SeaBIOS gets fixed or not, you aren’t going to be left with a really great result.

I would get yourself a wired keyboard so that you can get past the boot process and then see what the situation is.

What make and model?

1 Like

I maybe should have added that info in the above post.

Generally speaking the provided Keyboard does work when booted into PureOS, Manjaro, Garuda and Arch.

This is true for my wireless keyboard.

Where both of them don’t work is in SeaBIOS (where I could click ESC to choose boot device). But both keyboards do not work in Grub (installed bootloader) as well.

Short summary:
Installed OS/LiveUSB: Both work
SeaBIOS and GRUB: Neither the detachable keyboard nor my wireless keyboard work here (could not test a wired keyboard here)

Its a Cherry Stream Keyboard Wireless, exact Modell is JD-85K.

edit: corected Keyboard

2 Likes

1 - Let me try booting a recent Arch ISO and see what’s going on. I do try a lot of ISOs (and Heads community members run many OSes) but I haven’t tried Arch in a while. Most likely we can get this to work.

2 - You probably won’t need to make any changes to the ISOs. If there’s something problematic about the ISO that can’t be fixed in PureBoot right away, we can probably manually kexec into it for now to install (after that normal boot should be fine).

3 - Others have already mentioned that SeaBIOS is picky about USB keyboards, they’re right. The keyboard cover not working in SeaBIOS is a known issue currently. The wireless keyboard here is probably similar, I have tried many keyboards that work but there are still many that don’t. I think we are best off pursuing the PureBoot route.

1 Like

@stefan230 Could you try the Arch 2023.11.01 install ISO?

Both PureBoot and SeaBIOS can boot the latest ISO, but the Arch kernel is unable to initialize the built-in display (and i915 panics on shutdown too).

I haven’t figured out whether this is a Linux upstream bug, specific to Arch, etc., but at any rate the kernel in the 2023.11.01 ISO works. I did not try the 2023.12.01 ISO.

You can always update after installation, but if you update the kernel you might still get that problem. External displays still worked, so if you have an issue you could use that to get back to a working kernel.

1 Like

@jonathon.hall

First up. Thank you very much for looking into this. I appreciate it.

I did try the normal Arch Iso and used the latest. What you describe basically resembles what I was seeing as well. Booting the arch-iso would spit i915-messages at me even when in the Live mode.

Personally I would think this is an upstream issue since it was somewhat persistant with derivates as well. I guess the never kernel messed something up there.

I can atleast provide the info that Manjaro and Garuda (both derivatives of arch) would boot when older isos are used. Garuda would experience the same issues you mentioned after being updated. Manjaro on the other hand was fine since they still have older stuff in their repos.

I can work around that. I will try some more isos when I come back home shortly.

My primary concern was that as it is. Neither Manjaro nor Garuda would boot at all. Not even coming as far as the panic. It would just show what can be seen in the photo of the first post.

Both sticks would boot fine with seaBIOS/coreboot though.

I will provide you with version numbers of the isos as well later if you want.

I will test around myself as well and come back here again

Garuda

1 Like

Ah yes thanks, I got caught up in Arch and should have gone back to the original question there. Let me try those as well.

1 Like

I had some time to test some different arch-based isos and see if they boot.

I tested some manjaro isos and some Isos of EndeavourOS.

Isos:
manjaro:

  • 22.1.3-230521 (based on Linux 6.1) date is 21st March 2023
  • 23.1.3-240113 (based on Linux 6.6) date: 13th January 2024

EndeavourOS:

  • Galileo 11-2023 (November 2023)
  • Cassini nova 03-2023 R3 (March 2023)

Both of the tested manjaro-isos did not boot and it comes to the error seen in the first post of this topic. Side Note: I did use the newer stick to succesfully install Manjaro on another intel-based (normal) laptop no problem.

Both of the EndeavourOS-Sticks generally booted. The newer of the two (Galileo) would sadly share its fate with arch and only display a black screen with some mangled white lines.

Cassini Nova booted up just fine and I could even get to the desktop and use the liveUSB no problem. Though Installing did not work as well I hoped it should have but I will have to test that tomorrow in more detail. I also remember I had Cassini Nova on that device before this whole ordeal as well.

I will report back tomorrow once I (hopefully finished installing something.

1 Like

alrighty after some more trying and testing I got something arch installed on the librem 11 again. I did use EndeavourOS here since the manjaro isos sadly would not boot for me. But atleast I have something usable by now again (Though I still need to figure out how get autorotate working on kde-plasma on there)

The issue is that there is a kernel regression in newer kernels (I guess some 6.6 and 6.7 kernels) that leads to the i915-driver to crash which results in a black screen. See this: i915 driver issues after 6.6.x (#21) · Issues · Arch Linux / Packaging / Packages / linux · GitLab

So my “fix” for now was to use an older Endeavour-Iso which boots and install it in its offline-variant.

After installing and rebooting all worked fine since I basically installed the Live-Enviroment to my Tablet. Updates will be done, but one needs to make sure to install an alternative (older) kernel so one can still boot. I used a 6.1 kernel in the AUR.

So my issue more or less solved and I atleast have a usable system again. I still wonder though why the manjaro-isos do not work really. I would have liked that instead of endeavour but its all arch in the end so I am happy.

2 Likes

Looks like PureBoot isn’t able to parse the grub.cfg in the Manjaro / Garuda live ISOs (they look the same).

It looks like they have some logic to enumerate the kernels on the live ISO and generate menu entries for them. Since PureBoot doesn’t execute the entire grub.cfg but just picks out menu entries, it isn’t able to find these entries, which results in the error in the OP.

It should be possible to manually kexec into the ISO to install, if you are still interested in this I could figure out the kernel and command line and we could try it. If the installed grub.cfg is simpler (likely I think but have not checked), they’ll work after installing.

Thanks for linking to that related i915 issue, I’ll test the Librem 11 issue and report upstream if it’s an upstream bug.

1 Like

Sorry for leaving you hanging a bit. I had an assignment to finish.

Thats interesting to hear for sure. Trying out manjaro on that thing would be nice. I do not think it will be really that different from endeavour since both of these distros are based in arch.

Also just so other users know as well how to boot an iso that does not work since the same problem might happen with other ISOs.

If you find the time to test this and give a quick rundown I would really appreciate it.

2 Likes

@jonathon.hall Is there anything new on the boot-stuff with manjaro? I would really love to give it a try. Also was there some new knowledge with that i915-bug?

Thank you for all the work so far.

1 Like

Thanks for checking in @stefan230 - this is still in my queue but I expect to circle back to these shortly. The release testing for PureBoot 29 has been taking a lot of time since there are a lot of changes in this release, but I have not forgotten :slightly_smiling_face:

1 Like

I appreciate the heads-up. I this did not come off as naggy or something. I am just interested in this since it might open up more avenues for the Librem 11. Pureboot 29 does seem to have some options to look forward. Good luck with getting all that stuff done ^^

1 Like

Not at all, thanks for checking in! I should have an update soon.

2 Likes

This does work, I tested booting Garuda and Manjaro from the recovery shell. The steps are very similar for both.

For Garuda (KDE Dragonized Edition, garuda-dr460nized-linux-zen-231029.iso, which is latest right now):

  1. Enter recovery shell
  2. Run mount-usb
  3. Select the partition labeled GARUDA_DR460NIZED_RAPTOR
  4. Run kexec --initrd=/media/boot/initramfs-x86_64.img --command-line="misobasedir=garuda root=miso:LABEL=GARUDA_DR460NIZED_RAPTOR quiet systemd.show_status=1 ibt=off driver=free i915.modeset=1" /media/boot/vmlinuz-x86_64
    • Ignore the message about “shutdown: no such file or directory”
  5. Run kexec -e

For Manjaro, I had to go back to the 23.0.4 image dated 2023-10-15 due to the same kernel problem we identified above for Arch. The only difference here is the miso* parameters.

  1. Enter recovery shell
  2. Run mount-usb
  3. Select the partition labeled MANJARO_KDE_2304
  4. Run kexec --initrd=/media/boot/initramfs-x86_64.img --command-line="misobasedir=manjaro misolabel=MANJARO_KDE_2304 quiet systemd.show_status=1 ibt=off driver=free i915.modeset=1" /media/boot/vmlinuz-x86_64
    • Ignore the message about “shutdown: no such file or directory”
  5. Run kexec -e

I installed Manjaro and it booted fine, so this is only needed for the initial install. You will have to partition manually and create an unencrypted /boot partition, since PureBoot requires it. I didn’t test an installation of Garuda but it’s very similar, I expect it’ll be the same.

Thanks for your patience while this was queued up!

3 Likes

@jonathon.hall I very much appreciate the time you have put into this. Do you have some sort of wiki where I could add these steps to so other people can also boot different isos on the librem 11?

1 Like