Linux on a Chromebook with GalliumOS
May 24, 2018
Are you a mobile programmer interested in a low-cost, lightweight option for hacking on the go? In this post, I describe how to Linux-ify the Samsung Chromebook 3, available now on Amazon for just $200, with GalliumOS, a Linux distribution designed specifically for Chromebooks.
Not all Chromebooks are compatible with GalliumOS, make sure your hardware is supported before starting. I ordered a Samsung Chromebook 3 from Amazon for $200. It had relatively favorable reviews online for the price point and appeared well-supported by the GalliumOS team. Whichever model you choose, record its Hardware ID and Processor from the Hardware Compatibility wiki. For example, Samsung Chromebook 3 has ID CELES and an Intel Braswell processor.
There are two primary options for installing GalliumOS onto your Chromebook:
- Allow your Chromebook to dual-boot into ChromeOS or GalliumOS on system start-up. There is no ability to switch between them without a system restart; if this is a deal breaker for you, you might be interested in crouton.
- Overwrite ChromeOS entirely and only boot your Chromebook into GalliumOS.
This post walks through the steps required for option 1. I imagine I will eventually settle on option 2, but as this is my first Chromebook ever, I want the ability to use ChromeOS from time to time before deciding I can do without it. Since we will not need to wipe ChromeOS, the GalliumOS installation only requires access to the Internet, no external USB drive is necessary.
We must first enable Developer Mode which will allow us to update the firmware (required for most processors) and partition the harddrive for GalliumOS. Enabling Developer Mode will erase local data on ChromeOS so back up everything you want to keep (data in the cloud won't be affected).
- Shut down your device. Boot into Recovery Mode by pressing ESC+F3+Power, where F3 is the Refresh button (clockwise arrow icon).
- The boot screen will say ChromeOS is damaged or missing. Don't worry, everything is fine.
- Press CTRL+D to open Developer Mode. Confirm until you see the "OS Verification is OFF" screen and wait for ChromeOS Developer Mode to load. This step will take awhile the first time, around 10-15 minutes.
- Connect to your WiFi network (required, since we must download a firmware update) and log into the Guest account.
- You will now see an empty Chrome browser window.
Depending on your Chromebook model, a firmware update is required or at least recommended. We will let MrChromebox.tech take care of this for us.
- From the empty Chrome browser, press CTRL+ALT+T to open the Terminal.
shellat the prompt.
cd; curl -LO https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.shto run the MrChromebox Firmware Utility Script (Note:
-LOcontains a capital O, not the number 0).
- You will be presented with several firmware update options. Since we are allowing our Chromebook to dual-boot into ChromeOS or GalliumOS, we only need to select the
Install/Update RW_LEGACY Firmwareoption.
- After selecting this option, follow the on-screen instructions to completion. When it's finished, press Q to quit.
We will use chrx (Chromebook Unix) to install GalliumOS on our Chromebook. It can actually install many different Linux distros, but GalliumOS is its default.
- Make sure you're once again at the shell. (Firmware update steps 1 and 2)
cd ; curl -Os https://chrx.org/go && sh goand follow the instructions to completion. For what it's worth, I chose to allot 9 GB to GalliumOS (the default).
- Reboot and repeat Developer Mode steps 3, 4, 5, and Firmware update steps 1, 2.
- We will now run
chrxto configure our GalliumOS installation. The following command contains my configuration options, so don't copy and paste the following command without modifying it:
cd ; curl -Os https://chrx.org/go && sh go -v -U neal -H voyager -Z America/Los_Angeles -p admin-misc.
- This command will:
- create a system
- set the clock to the Pacific Timezone (if you're in the US, Pacific, Mountain, Central, and Eastern are given by
America/New_York, respectively; see tz database time zones for a complete international list), and
- add the
admin-miscpackage, which installs
vimimmediately after installing GalliumOS; see packages for more possibilities. This final step is just a convenience, we could just as well
sudo apt-get installeach one from within GalliumOS once it is up and running.
- Reboot, and press CTRL+L on the "OS Verification is OFF" screen to boot into GalliumOS. Login with your username and your password (which is the same as your username the first time you log in).
Welcome to GalliumOS! Before you forget, change your password to something more secure: open the Xcfe Terminal from the menu bar and enter
Anything! Well, not anything, but you have a fresh Linux install running on your Chromebook which you can configure to your liking. I start off by installing all the programs I rely on, the essentials, and then modifying the look and feel of the OS to fit my preferred aesthetic. The following steps are entirely optional, they're just what I do on a fresh GalliumOS install.
Install the essentials
- git: version control
- make: build and install programs
- pandoc: universal document converter (e.g., markdown to html, markdown to tex, etc.)
- gnome-terminal: use GNOME terminal rather than native Xfce terminal
- dconf-cli: Required for gnome-terminal
- wget: download files over HTTP, HTTPS, FTP, and FTPS
- curl: allows exchange of requests between servers (curl vs. wget)
- python: programming!
- ruby: to generate this website
- zsh: an improved shell
sudo apt-get update sudo apt-get install -y git make build-essential pandoc wget \ curl dconf-cli gnome-terminal zsh ruby ruby-dev \ python2 python2-dev python2-pip python2-venv \ python3 python3-dev python3-pip python3-venv
- Dark mode: Settings > Appearance > Arc-Dark-GalliumOS
- Invert the X- and Y-axis scroll: Settings > Mouse and Touchpad > Reverse scroll direction
- Speed up the mouse: Settings > Mouse and Touchpad > Mouse speed 5
f.lux warms the computer display to ease your eyes.
sudo add-apt-repository ppa:nathan-renniewaldock/flux sudo apt-get update sudo apt-get install fluxgui
Gogh makes it very easy to customize the GNOME terminal color scheme (does not work on the Xcfe Terminal native to GalliumOS). Run
wget -O gogh https://git.io/vQgMr && chmod +x gogh && ./gogh && rm gogh