How to install Linux on a Chromebook

By | October 28, 2018

Acer Chromebook 15Chromebooks are low cost laptops or tablets that run Google’s Linux based ChromeOS (wikipedia). Chromebooks cost anywhere from under $200 (Acer, Toshiba, Asus) to $1,000 for the high end Pixel. They are able to achieve this cost by reducing overhead in these areas: proprietary operating system, local storage capacity, and interchangeable components (RAM, storage, etc). By utilizing the Linux kernel Google does not have to invest in R&D and maintenance of their own private kernel. Through use of cloud storage Chromebooks do not require a large SSD/HDD. By soldering components directly to the board manufacturers are able to save time and money in assembly. (And by forcing users to use Google applications, Google can make more money after the shipment of the product. Relevant.)

Since the inception of the Chromebook around 2011, there have been new iterations each year – the latest of which offer devices that can “bend over backwards” and create a stand out of the display. With touch screen, solid state storage (16-32 Gb is typical), and 8-12 hour long battery life, Chromebooks are an impressive feat of engineering. Google is an advertising company though, and they make their money by collecting user data. If you don’t want to be a part of the product (quote), then you may want to install an operating system of your choice that doesn’t come preinstalled with Google’s services and all the childproofing that comes with it. Using the steps outlined below you can install most Linux distributions, but for the best experience you should use the distro of choice…

GalliumOS

“A fast and lightweight Linux distro for ChromeOS devices.” – https://galliumos.org/

When installing software on top of hardware that was designed and tested with other software in mind, there are a variety of things that might not work as intended. Touch screen, track pad, keyboard – all of the hardware must interface with the system, and having the proper drivers and firmware is a must. GalliumOS is specifically designed to address this challenge and works with most Chromebook devices (compatability table). If you follow the installation instructions from the GalliumOS page you should have your Chromebook up and running in no time. There are a few ways to achieve Linux on a Chromebook – Crouton, chrx, and traditional ISO install. I will be covering the latter.

I am expanding upon the process laid out here – https://wiki.galliumos.org/Installing#Traditional_ISO_Install – since it does assume some background knowledge and familiarity with Linux and the command line. Be warned, by doing this you are voiding the warranty and run the risk of bricking your device.

  1. Prep your Chromebook – https://wiki.galliumos.org/Installing/Preparing. You will most likely need to remove a WP or “write protect” screw from your motherboard to allow the installation of custom firmware. I did #3 – Install full ROM Firmware. It uses a custom Coreboot (Coreboot is used by Purism) and the install scripts are open source.
  2. Prepare installation mediahttps://wiki.galliumos.org/Installing/Creating_Bootable_USB
  3. Reboot and install to disk – “If you have installed custom firmware, press Esc at the BIOS screen and select the USB device.” You should see the GalliumOS boot menu and you can boot into the live image and installer. This boots to GalliumOS and will not make any permanent changes unless you launch the installer on the desktop and install to your SSD. This gives you the opportunity to test your hardware and see if everything works O.K.** before making permanent changes.
  4. Post install and updates – If your keyboard or other hardware isn’t working properly, you might be able to fix it by updating with the prerelease and testing repositories:
    
    sudo galliumos-repodist --enable prerelease
    sudo galliumos-repodist --enable testing
    galliumos-update
    

    This will give you the “bleeding edge” of GalliumOS. If everything works fine you should not enable the prerelease and testing repos. However, the testing repository does have a large security update – read more here.

**My keyboard didn’t work at first, but I was able to get it to work by plugging in my desktop keyboard and enabling the prerelease and testing repositories to get the latest and greatest.Another issue I ran into was that my Chromebook kept booting into the EFI Shell (the black screen with yellow font). It was looking in the wrong place for “grub.cfg”. I was able to resolve this simply by reconfiguring grub with “dpkg-reconfigure” and selecting the first location in the third step of the installation menu (should have a blue background). See this reddit thread for related discussion. You can manually select the boot configuration from the UEFI menu as described here. The UEFI menu can be reached by typing “exit” or hitting escape from the EFI Shell and minimal grub shell, or by pressing escape on boot. Another common boot issue is documented on this github issue.

As you can see the process is somewhat involved, and there may be quirks depending on what Chromebook you have. This post isn’t meant to replace the official GalliumOS install steps, but rather to augment them as new issues may arise with each new release. The reddit community for this project is extremely active and helpful. I found many answers there when doing searches. The GalliumOS wikipedia is also concise, clear, and complete so you don’t have to worry about solving some obscure problem on your own.

If all goes well, this should be your new home screen:

galliumos desktop

Leave a Reply

Your email address will not be published.