I bought my first Chromebook, the Acer C720-2848, so that I could carry a lightweight, inexpensive computer around. I wanted something that I didn't have to worry too much about losing or damaging. Living in New York, everything you own will wear down about 10 times faster than normal, if it doesn't get stolen first. I happily used it as a browsing machine and since I was already using Google's suite of productivity apps, I was able to do most of my document and spreadsheet work on it. I signed up for Nitrous.IO (which I love, btw, but that's for another notebook entry) and there I had it: a cheap, tiny, lightweight workhorse that I could use as a Ruby on Rails dev workstation, provided that I had an internet connection.
A few situations did come up where I wished I were using a real application or one that did not rely on network connectivity. I knew that one could install a full blown Linux distribution on the Chromebooks, so I went forth and Googled.
I found 2 ways to run Ubuntu on a Chromebook, one using ChrUbuntu where the Chromebook boots fully into an Ubuntu Linux distro, and one using the Crouton tool, which actually boots into ChromeOS and chroots into an Ubuntu distro, using the existing (and currently running) ChromeOS kernel.
I tried ChrUbuntu first, and the installation ran without a hitch. There is great documentation on ChrUbuntu's github page here. I followed the linux.com article here, which has concise step-by-step instructions. The Chromebook at the end is set up for dual-boot, and one could reboot into ChromeOS at any time. Everything was great except that the track pad was not responsive. Consultation with The Google showed that some models of the c720 had variations with the hardware used for the trackpad which was not supported byt the drivers. At the time there was not a work-around, other than carrying around an external mouse. Less than ideal, the situation brought me to explore the second option.
Like ChrUbuntu, installing Ubuntu through Crouton was relatively smooth. Integration with the host ChromeOS is pretty good and there is a lot of documentation out there. Switching between the "Linux" and the ChromeOS sides is fast and smooth. There are even extensions that will integrate the clipboard between the two. Since it's using the native ChromeOS which is custom built for the hardware everything runs at a nice speedy clip. Crouton's github page has great documentation and lot's of useful entries in the wiki as well. Here are the basic steps I took to get mine running.
Create recovery media
Before jumping into it, it's imperative that you create a recovery image on a USB thumb drive. Although the recovery images are available online through Google's Recovery Utility app, it's easiest if you create one right from the Chromebook itself to avoid having to hunt for the right one on the app. You will need a spare USB thumb drive at least 2G in capacity handy.
1. On the Chromebook, open a browser window go to the following URL: chrome://imageburner. You be prompted to insert your recovery media. It'll take a while, but it will eventually finish and tell you to remove the media.
Turn on developer mode
Nothing can happen until you enable developer mode on the Chromebook. Doing so will wipe your Chromebook, so it's important that anything important is backed up onto external media, and that you've created the recovery media from above. Different devices have different ways to enter developer mode. On the Acer models, I did this:
1. Turn off the Chromebook. While holding the escape and refresh keys, poke the power button. You will be brought to a recovery screen.
2. Press ctrl+d, and at the scary exclamation point screen, press enter to continue. The Chromebook will enable itself in developer mode and then reboot. It will take a while before it boots up.
3. Accept the EULA, and you're good to go in developer mode.
Note that whenever the Chromebook reboots and you have developer mode enabled, you will get a scary exclamation point screen whenever you reboot. Press ctrl-d at that screen to continue to developer mode.
(If you're not using an Acer Chromebook, you can find out how to enter developer mode on the ChromeOS Developer site. Click on your model for details.)
1. Get the latest release from this link: https://goo.gl/fd3zc. This will download crouton to ~/Downloads
2. Open a shell by pressing ctrl+alt+t
3. At the crosh> prompt, type "shell" and press enter
4. Verify that crouton works (and see some basic help info) by typing
$ sudo sh ~/Download/crouton
Installation is simple, but sometimes it's unclear what targets you need and what the various options do. Basic syntax is something like:
$ sudo sh ~/Downloads/crouton -t unity,extension
The main flags to know are -r, -t, and -n.
-r specifies a release
-t specifies your targets, separated with a comma
-n specifies a name for your chroot, which defaults to your release name. Optional, but specify a name here if you plan to install multiple chroots of the same release, so that you don't end up installing on top of an existing chroot.
By default, crouton will install Ubuntu 12.04 Precise Pangolin. I wanted Trusty Tahr and the Unity desktop, and the integration extensions (for clipboard integration with ChromeOS), so my crouton incantation looked like the following:
$ sudo sh ~/Downloads/crouton -r trusty -t unity,extension
Let the installation run. I think mine took about 20 minutes. Answer any prompts that may come up. Mine only asked for a user name towards the end of installation.
When installation is complete, crouton will tell you how to start your chroot. If you installed Unity like I did, type:
$ sudo startunity
and watch your sub $200 laptop turn into a full blown Linux workhorse!
Launching the chroot
Subsequent launches of this new Ubuntu Unity chroot is easy. Just open a shell with ctrl+alt+t and type shell. At the prompt type
$ sudo startunity
I installed the xiwi target which let's you run your apps in the native ChromeOS tabs and windows. It basically passes through x11 to ChromeOS, essentially making ChromeOS the X-Server. It was great and I liked that I didn't need to completely switch out of one to use the other. The only problem was that I had refresh problems in my IDE (RubyMine). It made it barely usable and I had to revert to normal full-screen x11. Too bad, because I liked it quite a bit.
ChromeOS Updates might break your chroot!
I have encountered twice after rebooting my Chromebook that I was no longer able to launch into my chroots. In most cases, updating the targets would fix this. To update, open a ChromeOS shell and type:
$ sudo sh ~/Downloads/crouton -u -r trusty -t unity,extension
make sure to specify a name with -n if you used a name when creating the chroot.
$ sudo sh ~/Downloads/crouton -u -r trusty -t unity,extension -n my_chroot_name
I've since purchased an Acer CB3-111 that I've been carrying around lately. I like it quite a bit except that the processor is a bit slower. I can definitely notice the difference in speed between the CB3-111 and the C720 when I'm running a full-stack rails application. I like the quality of the build much better than the C720. The keyboard and track pad feels much more solid, and doesn't have the plastic toy clicking and creaking that the C720 tends to have.
I don't think either is a true replacement for my laptop or desktop computers, but it's a great on-the-go workhorse that will give you the most bang for your buck.