Invest in the Future You Want to See.

A First Public Offering of Purism Stock on StartEngine. Minimum $500.

Invest Now

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
10 business days
Librem 5In Stock
10 business days
Librem 5 + SIMple
(4 GB Data)
In Stock
10 business days
Librem 5 + SIMple Plus
(10 GB Data)
In Stock
10 business days
Librem 5 + AweSIM
(Unlimited Data)
In Stock
10 business days
Librem 11In Stock
10 business days
Most Secure Laptop Purism Librem 14Librem 14In Stock
10 business days
Most Secure PC Purism Librem Mini
Librem MiniApr 2024
Shipping April, 2024
Purism Liberty Phone with Made in USA ElectronicsLiberty Phone
(Made in USA Electronics)
Apr 2024
Shipping April, 2024
Most Secure Server Purism Librem ServersLibrem ServerApr 2024
Shipping April, 2024
The current product and shipping chart of Purism Librem products, updated on March 26th, 2024

Recent Posts

Related Content