A guide to installing Gallium OS on a chromebook. This guide is mostly a rehash of the information found on the wiki, but in my own words and consolidated in one place. Skip past the background section if you're just here for a walkthrough.
This was all done with an ACER CB3-131.
I've been running linux for fun and a little bit of programming work on my acer chromebook for a while now. I've primarily been using crouton with Ubuntu, and was able to have a pretty nice environment with all of my favorite tools (vim, python, ruby, etc...), but I was never totally happy with my setup.
Being able to switch between chrome os and my xfce desktop with a keyboard shortcut was pretty cool, but the desktop always felt a little slow, especially with multiple windows open, and I spent too much time trying to get the trackpad sensitivity setup right. For the longest time I forewent the desktop, and ran a cli only ubuntu install. I'd work with a terminal tab running ubuntu open in chromeos and multiple other tabs for web browsing. This worked pretty nice, but also had it's issues (namely sending ctrl and alt keyboard combinations properly to the terminal). Also, a problem with both of of these setups was installing any sory of serious dev environment, which is fine for the small little hobby projects I'm working on, but I also wanted to have the ability to work on more serious projects. I don't have enough knowledge to say that it's impossible to get virtualbox or docker running properly on chromeos with crouton, but it certainly has me beat.
I finally decided to just pull the trigger and put a full linux os on my chromebook. Enter Gallium OS. Gallium OS is a linux distribution based off of Ubuntu that's targeted specifically at chromebooks. Gallium promises take care of all the tedious linux configuration(sleeping properly, touchpad issues, battery life, etc...) out of the box for chromebooks. So far, for me, it's lived up to the promise.
As anyone who has ever installed Linux knows, all the resources that help you get a distribution up and running on any specific machine are never in one place, so this post is my effort to help consolidate some of those resources and provide a walkthrough on the gallium os install. My goal is to put everything you need for the install on this page, and keep from saying you need to go to an external page to a minimum.
Note that this process will erase any data you have on your chromebook, so make sure you back up any data you don't want to lose before following along.
.iso
and put it on a usb stickNote that the process of downloading the .iso
and creating the usb stick are
usually the longest steps in this process, so they can be done at the same time
you are prepping your chromebook for the install.
.iso
Firstly we'll need to check if gallium supports the chromebook you're trying to target. Have a look at the hardware compatibility list and make note of the the processor model you have and whether or not you'll need to update the firmware (most will probably need to do this).
Go ahead and download the appropriate .iso
for your processor model, found on the preceding hardware compatibiity list.
The instructions for this will vary depending on where and on what machine you
downloaded the .iso
on. I've successfully done this process on OSX, but I
cannot speak to the processon Windows and Linux. Luckily the Gallium docs have a
lot of good information on this.
Here's the reference page from Gallium OS's docs on creating a bootable usb drive
Without your usb drive plugged in run
diskutil list
and make note of the devices listed.
Go ahead and plug the drive in and run diskutil list
again, and identify the
new device listed. This is your usb drive. Note the path to the device, it
should be something like
/dev/disk3
Note that if you misidentify your usb drive you could potentially cause data corruption and / or loss. Make sure that you are sure which device is your usb drive.
For the following section, replace disk3
with the device you identified.
Go ahead and unmount the device.
diskutil unmountDisk /dev/disk3
Now we will put the .iso
on the drive
# replace the filepath and name with wherever you downloaded the .iso file
sudo cp ~/Downloads/galliumos.iso /dev/rdisk3
Note the r
before the disk3
in the above command.
You won't see any output from this command, and it might take a while to run,
but don't worry, cp
is quietly doing it's thing.
When that command finishes OSX might popup and tell you it doesn't recognize the usb drive. That's good, it means everything went as intended. If you see a popup box telling you this, go ahead and click 'unmount'. If you don't see a popup box, run
diskutil unmount /dev/disk3
And now your usb drive will be good to go.
With your chromebook off, hold Esc + F3 and then hold the power button. Your
chromebook should boot into a screen that tells your that chromeos is damaged or
missing (Don't worry, its not). From this screen press ctrl + d
to enable
developer mode.
When you reboot, you'll see the so-called 'scare screen' telling you that os
verification is turned off. That's okay! we know what we're doing. Go ahead and
press ctrl + d
again to go ahead and boot the os.
There are a couple different ways to get a bash shell on your developer mode chromebook.
Now that we've enabled developer mode we can get into a bash shell by pressing
ctrl + alt + t
to get to the chronos shell (chrosh) and typing shell
.
crosh> shell
If you don't want to go through the trouble of signing in with your google account, you don't have to!
From the login screen, press ctrl + alt + f2
where on most, if not all,
chromebooks f2 is the right arrow key at the very top of the keyboard.
This will take you to a login screen. If you have developer mode enabled, you'll
be able to enter the login name chronos
, and no password.
This is not nearly as scary as it sounds. There are several different firmwares out there, but I went with MrChromebox because there's a simple shell script that does all the heavy lifting for you and it's first on the list.
To update our firmwate, we'll download the utility shell script and run it to enable legacy boot mode
Get into a shell and run
sudo crossystem dev_boot_legacy=1
and then
curl -LO http://mrchromebox.tech/firmware-util.sh
sudo bash firmware-util.sh
Tell the script you want to enable legacy boot mode.
After this finishes, go ahead and power down your chromebook to prepare for the next step.
With the power off, insert the usb stick into your chromebook and boot it up.
Note that some chromebooks will only boot from usb 2.0 ports. Usually usb 3.0 ports are blue, while 2.0 is black. To be on the safe side, make sure the usb drive is in a black usb port.
You'll see the white scare screen, go ahead and hit Ctrl + L
and select the
option to boot from the usb stick(this should be selected by default). The live
gallium os will boot up, feel free to poke around in here, but when you're done,
click on the only icon on the desktop to begin the installation process. Click
through and fill in the neccessary information in the setup wizard, and you
should start installing Gallium OS.
After the installation process completes and your machine reboots, you'll see
the white scare screen again. Don't worry, just hit ctrl + l
to boot into
gallium. You'll see a blank screen for a second, and then gallium's loading
screen! From here you can log in with the username and password you setup in the
install process and start exploring your new os. Change the colorschemes, copy
over your config files, or make your
capslock (or search) key do something useful.
Note that you will see the chrome scare screen every time you boot, but your new
os is just a quick ctrl + l
away!