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.

What is a framebuffer, anyway?

Grid of ones and zeros corresponding to a grid of pixels

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.

Graphical boot in PureBoot

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!

The road ahead

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!

Purism Products and Availability Chart

 ModelStatusLead Time 
USB Security Token Purism Librem KeyLibrem Key

(Made in USA)
In Stock
($59+)
10 business days
Librem 5In Stock
($699+)
3GB/32GB
10 business days
Librem 5 COMSEC BundleIn Stock
($1299+)
Qty 2; 3GB/32GB
10 business days
Purism Liberty Phone with Made in USA ElectronicsLiberty 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 11In Stock
($999+)
8GB/1TB
10 business days
Most Secure Laptop Purism Librem 14Librem 14Backorder
($1,370+)
Estimated fulfillment date pending
Most Secure PC Purism Librem Mini
Librem MiniBackorder
($799+)
Estimated fulfillment November
Most Secure Server Purism Librem ServersLibrem ServerIn Stock
($2,999+)
45 business days
The current product and shipping chart of Purism products, updated on October 18th, 2024

Recent Posts

Related Content

Tags