How to Install Any Linux Distro on a Chromebook

WARNING: This process will erase all information from the Chromebook hard drive. As with all firmware flashes, there is a chance of something going wrong, rendering the device useless. Proceed at your own risk.

Chromebooks are everywhere. Google’s little Linux based PCs have been booming since their introduction several years ago in everything from homes to businesses, and even educational settings. Many users, especially Linux users, can’t get past the fact that the devices are hopelessly hamstrung by their ChromeOS operating system which both cuts down on the number of apps the device can run and makes it dependent on an Internet connection to get anything done.

Acer C7 running Gentoo

So, what does a Linux user believing in the potential of their little (sort of)Linux laptop do? Break everything Google did.
In many cases, Chromebooks are supported by the FOSS Coreboot project, meaning that there is a completely unlocked, free and open source version of the Chromebook BIOS just waiting to be installed. With a few relatively simple steps, that $300 Chromebook can become a full fledged Linux laptop running just about any distribution. It should be noted that you should check which type of processor your Chromebook is running first, this method only supports Intel based Chromebooks. Another thing to keep in mind before getting started is that there are a ton of different Chromebooks. This method was tested with the extremely common Acer 7XX series, but it should work(maybe with subtle differences) on other Chromebooks as well.



Make Sure It’ll Work

Before doing anything, make sure that this will work on your Chromebook. After all, it wouldn’t be too good to get halfway through this only to find out that your Chromebook isn’t supported. The developer who has been working on getting these Chromebook ROMs up and running as well as developing the script to install them easily has an excellent table on his website to check if your Chromebook is supported. Before doing anything else, go over to https://johnlewis.ie/custom-chromebook-firmware/rom-download and check. The goal is to have full ROM support, but ‘BOOT_STUB’ should work, but really isn’t ideal, and isn’t recommended.

Getting the Chromebook Ready

Developer Mode

The first step in getting the Chromebook ready to run full-fledged Linux is putting it into developer mode. On most Chromebooks, this can be done by holding down the ‘Escape’ and ‘Refresh’ keys and pressing the ‘Power’ button. This will cause the device to boot into recovery mode. It will display a message saying that ChromeOS is damaged or missing. It isn’t. That’s just the default message for recovery. Press ‘Ctrl’+’D’ on that screen. It will then display a screen informing you that OS verification is off. That’s a good thing when you’re trying to install an unsupported OS, so press ‘Enter,’ and let the device reboot. When it’s done, it will display another message screen saying that OS verification is in fact off. Press ‘Ctrl’+’D’ again. The Chromebook will take several minutes to clean off the hard drive and reboot again. Finally, it’ll be in developer mode. Some older Chromebooks have a physical developer switch. In that case, just flip the switch and turn the device on. Yes, it is that simple on the older ones.

There is a second step to making sure you have full developer access. Once the device reboots into ChromeOS again, press ‘Ctrl’+’Alt’+’F2’ to drop into the command line. If you see the warning that OS verification is off again, don’t worry. It’ll do that until the new BIOS is flashed and the hard drive is reformatted. Just wait 30 seconds or press ‘Ctrl’+’D’ to skip the message. From the command line, login as ‘chronos.’ It won’t prompt you for a password.

Next type sudo bash followed by chromeos-firmwareupdate –mode=todev this will ensure that all developer features are enabled:

$ chronos
$ sudo bash
# chromeos-firmwareupdate –mode=todev

Once the command finishes, reboot again if the Chromebook doesn’t do so automatically.



Flash the BIOS

When the Chromebook is done rebooting, drop once again into the shell with ‘Ctrl’+’Alt’+’F2.’ Login and enter Bash again.

$ chronos
$ sudo bash

Now it’s time to get that new BIOS. Thankfully, there is a super convenient script for getting that downloaded and flashed. If for some reason, you want to do it manually, it can be done, but it’s not going to be covered here. When you’re ready, type the following into the console.

$ cd; rm -f flash_chromebook_rom.sh
$ curl -O https://johnlewis.ie/flash_chromebook_rom.sh
$ sudo -E bash flash_chromebook_rom.sh

The script will ask what you want it to do. The best option at the time of writing this is #5 Flash Full ROM. Of course, you can opt for one of the others if you know what you’re doing. Depending on your Chromebook, the script may prompt more information. Answer accordingly using the information on the table on the developer’s website as a reference as needed. When the script completes, everything should be ready for Linux.

Install Linux

Power down the Chromebook and get ready to install Linux. Get an install CD or USB and plug it into the Chromebook. Turn the Chromebook back on, and when the SeaBIOS screen is displayed, pres ‘Escape.’ This should display the boot menu. Select your install medium, and get started. If you don’t see it there, try booting into the “Payload” section. Let it boot up, and immediately reboot from the command line and try accessing the boot menu with ‘Escape’ again.

Once the Chromebook boots into the install medium, you should be able to install Linux like you normally would on any other computer. Of course, it would be a good idea to pick a a distribution that is new enough to have firmware support for the Chromebook’s devices, or be prepared to compile a custom kernel. Feel free to clear off the entire HDD in the install process, just make sure to have a BIOS boot partition on the drive if you’re going to leave it GPT. Most installers will handle that for you, though. Once the installation finishes, you will have a fully functional Linux laptop!



Comments and Discussions
Linux Forum