Replace ChromeOS with Lubuntu 22.04 on Acer Chromebook 15 (CB5-571 Series)

While clearing out the storeroom in preparation of the new year, I was excited to rediscover an old Chromebook sitting forgotten in a nondescript bag. This was a prize from a previous hackathon/competition, but is not remotely powerful enough to do anything more than casual web surfing. After verifying that it was working fine, and showed little signs of battery degradation, I decided to replace ChromeOS with a lightweight Linux distro in an attempt to make it a more versatile.

Chromebook Hardware Specifications

The specific model I had was the Acer Chromebook 15 CB5-571-C4T3, released in March 2015. The key specs of this model are:

One interesting thing I observed is that the memory module seems to be soldered onto the mainboard, disallowing the swapping/addition of memory modules.

Warning – you will lose all data on your Chromebook during the following process. Please backup accordingly.

Step 1: Enable Developer Mode

This is a well documented process that consists of the following steps:

  • Hold down the Esc + Refresh buttons, then press the Power button
  • Let go once the Chromebook has restarted
  • On the “ChromeOS is missing or damaged” screen, press Ctrl + D
  • On the next screen, it will ask to turn off OS Verification – press ENTER to proceed
  • System will confirm that OS verification is off, before restarting itself. No action needed.
  • System will boot into Developer Mode, essentially doing a factory reset in the process

If you need more information, a quick google search will yield more comprehensive guides.

Step 2: Disable Firmware Write Protect

We need to install a custom firmware that allows us to boot OSes other than ChromeOS. However, the BIOS in Acer Chromebook CB5-571 series is protected by a write-protect screw. The location of the write-protect screw can be found in this Super User thread.

To disable write-protect, open the rear casing of the Chromebook, and remove the write-protect screw. Unfortunately, none of the screwdrivers I had was able to fit the screw head – thus I used a pair of pliers to grip and twist the sides of it to unscrew.

Test that everything still works, and reassemble the case when done. Boot into ChromeOS in developer mode.

Step 3: Open a Virtual Terminal

Open a virtual terminal by pressing Ctrl + Alt + F2.

If you do not have the F2 key, then substitute it with the Ctrl + Alt + (Search/Launcher + →) combination (see explanation).

Enter chronos as the user, and it should login without needing a password.

Reference Guide: https://chromium.googlesource.com/chromiumos/docs/+/HEAD/developer_mode.md#vt2

Note: we cannot use the ChromeOS Shell (crosh) within the GUI as it comprises of a subset of basic CLI commands targeted for troubleshooting.

Step 4: Install Custom Firmware

Next, I followed MrChromebox.tech’s ChromeOS Firmware Utility Script guide to replace the original firmware with an “unlocked” custom firmware.

The following is the output from running the script to install the Full ROM firmware:

ChromeOS Device Firmware Utility Script [2023-11-03]
(c) Mr Chromebox <mrchromebox@gmail.com>
*******************************************************
**   Device: Acer Chromebook 15 (CB5-571, C910) (YUNA)
** Platform: Intel Broadwell
**  Fw Type: Stock ChromeOS w/RW_Legacy
**   Fw Ver: Google_Auron_yuna.6301.59.116 (04/30/2017)
**    FW WP: Disabled
*******************************************************
**      1) Install/Update RW_LEGACY Firmware (greyed out in UI)
** [WP] 2) Install/Update UEFI (Full ROM) Firmware
** [WP] 3) Set Boot Options (GBB flags) 
** [WP] 4) Set Hardware ID (HWID)
** [WP] 5) Remove ChromeOS Bitmaps
** [WP] 5) Restore ChromeOS Bitmaps
*******************************************************
Select a numeric menu option or 
R to reboot  P to poweroff  Q to quit
2

Install/Update UEFI Full ROM Firmware 

IMPORTANT: flashing the firmware has the potential to brick your device, requiring relatively inexpensive hardware and some technical knowledge to recover. Not all boards can be tested prior to release, and even then slight differences in hardware can lead to unforeseen failures. 
If you don't have the ability to recover from a bad flash, you're taking a risk.

You have been warned.

Also, flashing Full ROM firmware will remove your ability to run ChromeOS.

Do you wish to continue? [y/N] y

Note: After flashing UEFI firmware, you will need to install a UEFI-compatible OS: ChromeOS will no longer be bootable. See https://mrchromebox.tech/#faq

Press Y to continue or any other key to abort. y

Create a backup copy of your stock firmware? 

This is highly recommended in case you wish to return your device to stock configuration/run ChromeOS, or in the (unlikely) event that things go south and you need to recover using an external EEPROM programmer. [Y/n] n

Downloading Full ROM firmware 
(coreboot_edk2-auron_yuna-mrchromebox_20231029.rom)

Persisting device HWID

VPD extracted from current firmware 

Disabling software write-protect and clearing the WP range 

Installing Full ROM firmware (may take up to 90s) 

Full ROM firmware successfully installed/updated. 

IMPORTANT: 
The first boot after flashing may take substantially longer than subsequent boots -- up to 30s or more. 
Be patient and eventually your device will boot :) 

Press [Enter] to return to the main menu.

After running the script, I rebooted the system and waited patiently for the Chromebook to boot. Once it got past POST, it expectedly failed to boot from the disk. I needed to install a UEFI-compatible OS that fit within the Chromebook’s hardware specs.

Step 5: Install Lubuntu 22.04

I chose Lubuntu as I am familiar with its base (Ubuntu), and it seems to have a light memory footprint – this is especially important given that there is only 2GB available.

I did consider installing ChromeOS Flex, but the device did not meet the minimum hardware requirements.

Installing Lubuntu onto the Chromebook follows an ordinary Linux distro install that comprises of:

  • Downloading the ISO
  • Creating a bootable USB
  • On target device: boot from the USB and go through the installation guide

Step 6: Resource Consumption Stats

Condition #1 – Idle with Terminal only

When the system is idling, htop shows the following utilization:

  • Both CPU cores hovering around 2%
  • Memory approximately 485M/1.79G

Output of free:

$ free -h
       total     used     free  shared  buff/cache  available
Mem:   1.8Gi    445Mi    852Mi    52Mi       532Mi       1.2G
Swap:  1.0Gi     32Mi    991Mi

Side note: swap was manually configured/enabled after Lubuntu was installed.

Condition #2 – Firefox Playing YouTube only

The maximum YouTube playback quality with smooth framerate was 1080p with standard FPS. htop shows the following utilization:

  • Both CPU cores show: ~50% during playback, ~90% during playback with buffering
  • Memory approximately 1.28G/1.79G

Output of free:

$ free -h
       total     used     free  shared  buff/cache  available
Mem:   1.8Gi    958Mi    324Mi   283Mi       547Mi      432Mi
Swap:  1.0Gi    172Mi    851Mi

Summary

I found the entire process to be quite straightforward and simple, thanks to MrChromebox’s utility script that did most of the heavy lifting. Given the limited specs of the Chromebook, I will probably use it as a test machine for other projects, such as Flatcar Container Linux 🙂

Leave a comment