a gif from the 1931 movie Frankenstein
Me, earlier this week

“It’s alive! It’s aliiiiiive!”

Alright, I’m not exactly Dr Frankenstein, but I did exhume the corpse of a forgotten Chromebook from its eternal resting place (my bookcase) to enact a macabre ritual.

My goal? To bring it back to life.

Thankfully I didn’t need any spare body parts or a maniacal god complex for my resurrection, just a few choice terminal commands and an Ubuntu-based Linux distro called Gallium OS.

I’ll get to what Gallium OS is in a bit, but first I need to answer the question you’re probably thinking in your head: “Chromebooks run Chrome OS. It is a Gentoo-based Linux distro. Why do you need to do this?”.

I had several reasons.

This zombie-slow Chromebook is ripe for sacrifice – and I’m happy to be the one doing it!

Firstly, Chrome OS doesn’t work like a regular Linux distro. You can’t install alternative desktop environments or other web browsers or any other sort of ‘traditional’ app directly.

Side-note: Google has made it possible to run Linux apps on Chromebooks but these use a separate OS container and the feature is not supported on older models.

Which brings me to my second point: this is an old Chromebook. We’re talking ‘cob-webbed and comatose’ old. It was supposed to stop getting Chrome OS updates in June (but this was postponed for a year). After that? It’s on its own.

Thirdly, and most importantly, is the performance aspect. Using Chrome OS on this Chromebook is painful. Background extras on The Walking Dead exhibit more energy than this thing. While it retains an eerie echo of usability, don’t be fooled: it vanishes under scrutiny, giving way to a sense of deep despair…

All of the above is a long-winded way of me saying this addled Chromebook is ripe for sacrifice.

Installing Gallium OS on a Chromebook

The resurrection process

When researching how to install Linux on a Chromebook I have to confess that the process read like a horror show. Stories of bricked devices, broken hardware, and needing to dive into the guts of a machine to extract write protection mechanisms from the motherboard!

Thankfully the reality (for me) wasn’t quite that bad.

Chromebooks do ship with custom (and in some cases locked down and read-only) firmware. You do have to get hands dirty (at the command line) to get things configured correctly.

Chromebooks ship with custom firmware that doesn’t let you boot from a USB

Also, the more recent a Chromebook is, the more hassle it is to load an alternative OS (assuming the hardware is supported by the Linux kernel at all which, despite best efforts, is not a given).

The first step to install Gallium OS on my Chromebook was to enable Chrome OS developer mode. On my 2015-era model this meant: reboot into the Chrome OS recovery mode, pick the developer mode option, then let the device wipe and reset itself.

Then came the part I was dreading: flashing modified firmware to enable USB booting. This is a risky procedure. It is possible to damage your device irreparably. Reddit is full of stories from people who have. But provided you follow the well documented instructions on the Gallium OS wiki you can get through it.

The rest of the process is as you’d expect: flash the relevant OS .iso to a USB or SD card (using a different computer, of course), boot from it, try things out, then install.

So how well does this Ubuntu-based distro run?

Monstrously well.

Shock! Gallium OS Works Great!

a gallium os screenshot taken on a chromebook
Gallium OS 3.1 ‘Bismuth’

I use Gallium OS 3.1 ‘Bismuth’. It’s a version based on Ubuntu 18.04 LTS — yes, 18.04 — and ships with the Xfce 4.12 desktop environment by default. Xfce is not a DE I’ve had a lot of hands-on experience with in the past so I’m excited to get the chance to play around.

I should stress that the Chromebook I’ve revived was never a speed demon, not even when it was new. Its vivid 11.6-inch IPS screen (which folds back into a tablet) is its sole redeeming feature. The rest of the device is terrifyingly ancient: dual-core Intel Celeron N3050 processor; meagre 16GB eMMC storage; and 2GB of RAM — less memory than a severed goldfish!

Yet within these limitations Gallium OS runs much better than Chrome OS did.

All of the optimisations and performance tweaks Gallium OS devs make for Chromebook hardware become apparent in use. All core hardware “just works” out of the box, including touchscreen, touchpad, wifi, bluetooth, sound, and every port. Even the unique Chrome OS keyboard layout and its associated hot keys are correctly mapped too.

But most surprisingly of all is the battery life: it’s fantastic for a 6 year old device. I could probably eke a bit more out of it using TLP or something like Slimbook Battery 4.

OS experience

My modest tweaks to Gallium OS

Since Gallium OS doesn’t come with many pre-installed apps — I like a minimal install anyway — I did install a few creature comforts (or proprietary ghouls, depending on your view point).

Additionally, the full Ubuntu archive is accessible so (almost) any app I need is an apt install away.

I like Gallium OS’s ‘one panel’ desktop layout, but I did change theme, icon set and font; tweak the format of the default clock applet; and add a few spacers to the bottom panel. I also replaced the stock battery applet with one better able to relay battery status at a glance.

All told, my “Frankenbuntu” is beautiful. While it’s an older OS base than I’d have liked, and I’m missing some of the nice quality-of-life improvements Xfce 4.14 & 4.16 offer, it’s still a solid set-up.

Life after death, proven

Obviously no amount of clever OS optimisations will improve the underlying hardware. Even running proper Linux this ancient Chromebook is still one best suited to ‘light’ tasks.

But given that I didn’t use this machine at all before now it’s a colossal improvement.

So that’s my hallowe’en tale; I did a trick and got a treat. Maybe some foolhardy folks out there will be inspired by my story and consider exorcising a few Google-shaped ghosts of their own — after all, there is life after death.

Feature chromebook Gallium OS ubuntu 18.04 LTS