All Chromebooks already come with Coreboot out of the box. There is of course some proprietary Google stuff but custom Coreboot firmware is available on MrChromebox.tech that gets rid of at least some of it, completely uninstalls ChromeOS and allows you to install GNU/Linux directly as on any other PC.
For ASUS Chromebook C201 from 2017 there is even Libreboot available.
Now one just needs to upgrade SSD, if possible, as Chromebooks sometimes have just 16 GB SSD. Simpler option is to buy 128 GB SD card.
Chromebooks seem to be an overlooked easy and rather cheap way how to get a Coreboot GNU/Linux laptop, however, do some Chromebook specific privacy-risk remain even after you get rid of ChromeOS and replace the original firmware?
Here I just list quotes with links for things that I have mentioned above.
As a new user I am limited to two links per post, so rest of the links are written as
All ChromeOS devices (Chromebooks, Chromeboxes, Chromebit, etc) released from 2012 onward use coreboot for their main system firmware. Additionally, starting with the 2013 Chromebook Pixel, the firmware running on the Embedded Controller (EC - a small microcontroller which provides functions like battery management, keyboard support, and sensor interfacing) is open source as well.
MrChromebox provides upstream coreboot firmware images for the vast majority of x86-based Chromebooks and Chromeboxes, using Tianocore as the payload to provide a modern UEFI bootloader.
The firmware used by ChromeOS devices is built around serveral open-source projects, and consists (mainly) of a hardware init component (coreboot) and one or more payloads (depthcharge for Verified Boot and ChromeOS, SeaBIOS for Legacy Boot Mode) which are subsequently executed. The firmware resides on an SPI flash chip and uses the layout shown below. The shaded sections at the bottom are read-only, which is enforced by the firmware write-protect screw on the main board (sometimes with a sticker as well on some newer models). When we talk about updating the firmware on ChromeOS devices, we’re referring to … the entire firmware image (often referred to as a “full ROM”).
(UEFI) Full ROM
- A complete firmware image which includes updated/customized versions of the hardware init component (coreboot) and UEFI boot payload (Tianocore); Chromeboxes have the option of a Legacy Boot (SeaBIOS) firmware also, since some specialized Linux distros run on them are not yet UEFI compatible (e.g., roon)
- Removes the developer mode boot (white “OS verification is OFF”) screen
- Completely removes the ability to run ChromeOS (and ChromeOS Recovery Mode), creating a small risk of bricking your device
- Offers the best support for booting all OSes besides ChromeOS
- Adds full hardware support for virtualization (vmx / VT-x)
- Fixes many bugs and/or idiosyncrasies associated with the stock firmware
- UEFI firmware contains updated EC firmware as well, which brings additional fixes on most Chromebooks (mainly keyboard related)
- Requires installation of a UEFI-compatible OS after flashing
- Essentially turns your ChromeOS device into a “regular” PC / laptop
The (UEFI) Full ROM firmware is the best option for all users who no longer need/want to run ChromeOS (ie, want to run Linux/Windows exclusively), and who don’t mind opening their device to disable the firmware write-protect.
On many Intel-based Chromebooks, you can simply boot a Linux ISO via the stock firmware’s Legacy Boot mode and install like you would on any other PC. When installing Linux via ISO in conjunction with the stock firmware + Legacy Boot Mode, there are sometimes issues booting the install media due to bootloader conflicts (e.g., Syslinux) or setting the graphics mode (GRUB/Ubuntu 16.10) or broken sleep/suspend due to the TPM (all CR50 devices). Because of this, most devices will benefit from running the latest UEFI Full ROM firmware, which should be flashed prior to OS install when running Linux and not dual booting w/ChromeOS.
(MrChromebox’s) coreboot, SeaBIOS, Tianocore, and EC firmware repositories, along with the source for the scripts on this site, are also available on github:
These repos contain not only the source used to build the current firmware releases, but also the build scripts and configurations used as well. The only components not included are the various binary “blobs” which are not redistributable; if you want to build your own firmware, you have to extract these blobs from your existing factory firmware (there are instructions for doing so on
chromium.org; these are written for Haswell devices but apply more broadly).
If you know about some better resource about replacing SSDs and adding other extra memory into Chromebooks, please let me know.
Other open firmware laptops
I am well aware of many other options for laptops with free/open source hardware init (a.k.a. BIOS).
On x86 architectures there are the Intel Core (2) Duo ThinkPads from years 2006-2008 that can be used with Libreboot. System76 laptops that some come with Coreboot and other open firmware. Purism’s Librems with PureBoot blend of Coreboot.
For ARM architecture there is MNT Reform and PINEBOOK Pro which both come with Uboot.
Here I just want to explore the less discussed option of Chromebook as open firmware laptops. Just so I’ll be aware about all options that are available.
- Liberboot Thinkpads
- System76 Coreboot
- Purism’s PureBoot
- MNT Reform Uboot
- PINEBOOK Pro Uboot