The latest release of PureBoot, Release 27, now boots memtest86+, Debian netinst, and other OSes that rely on framebuffer output!
We worked with the Heads team to implement this change upstream, and it is now in our latest release. Update your firmware with our update instructions!
If you’ve ever tried to boot from PureBoot, and the system seemed to hang after “Starting the new kernel”, this was often the cause. The OS was booting, but it couldn’t display anything.
A framebuffer is just a region of memory representing the image to show on a monitor. By writing to that region, the image changes. This is the simplest way for an operating system to display something. It doesn’t know anything about the graphics hardware, connected monitors, or different display modes, but as long as it writes something to that memory, it will appear on the screen. Firmware provides a framebuffer so basic output is available right away.
When the OS does understand the graphics hardware, it stops using the framebuffer that comes from firmware. This framebuffer is more important when the OS doesn’t understand the graphics hardware.
Memtest86+ doesn’t have an Intel graphics driver, so it relies on the framebuffer. Distributions can also build Linux without the i915 driver, or the i915 module might not be available yet. Many OS installers do include this driver, but the Debian network installation image does not.
In some cases, the Linux modules might not be ready yet when the OS asks to unlock an encrypted disk. That prompt uses the framebuffer, and the graphics driver loads after unlocking the disk.
In a BIOS or UEFI system, the firmware would provide a framebuffer using an interface like VBE or UEFI GOP. In PureBoot, the PureBoot Linux kernel initializes graphics for the first time – coreboot does not do any graphics initialization. Then, when starting the OS, we give this framebuffer to the OS as if it had come from firmware.
This had two problems in PureBoot though:
With solutions to both of these problems, and a few improvements to kexec, framebuffer boot now works!
This fixes several use cases that were often requested. Booting memtest86+ was a question I received at least a few times a month. In the long run, we will work to make this process more robust, and look into more improvements to bring this to Aspeed graphics on server platforms.
Get the memtest86+ GRUB ISO and give it a try on PureBoot 27!
Model | Status | Lead Time | ||
---|---|---|---|---|
Librem Key (Made in USA) | In Stock ($59+) | 10 business days | ||
Librem 5 | In Stock ($699+) 3GB/32GB | 10 business days | ||
Librem 5 COMSEC Bundle | In Stock ($1299+) Qty 2; 3GB/32GB | 10 business days | ||
Liberty Phone (Made in USA Electronics) | Backorder ($1,999+) 4GB/128GB | Estimated fulfillment early November | ||
Librem 5 + SIMple (3 GB Data) | In Stock ($99/mo) | 10 business days | ||
Librem 5 + SIMple Plus (5 GB Data) | In Stock ($129/mo) | 10 business days | ||
Librem 5 + AweSIM (Unlimited Data) | In Stock ($169/mo) | 10 business days | ||
Librem 11 | In Stock ($999+) 8GB/1TB | 10 business days | ||
Librem 14 | Backorder ($1,370+) | Estimated fulfillment date pending | ||
Librem Mini | Backorder ($799+) | Estimated fulfillment November | ||
Librem Server | In Stock ($2,999+) | 45 business days |