3 ways to run 'normal' Linux on a Chromebook

For those who need to tinker, here are some ways I've found to run alternative Linux distros on a Chromebook.

asus chromebook c200 lid detail july 2014
Image: Michael Homnick

I’ve had the good fortune of having a Chromebook Pixel to work on for the last few months. And, despite what my preconceived notions told me, I’ve actually quite enjoyed working and living in ChromeOS on a day-to-day basis.

But, I’m a nerd. And nerds need to tinker, which means that I needed to try every possible method of running “traditional” (i.e. “not ChromeOS”) Linux distributions on this laptop as humanly possible. Here are the three methods currently available and my experiences with them.

First and foremost: Installing Linux directly on a Chromebook and wiping out ChromeOS.

This is, by far, the most complicated approach to running a Linux distro on your Chromebook Pixel. It basically involves installing a custom BIOS (SeaBIOS) that will allow the laptop to boot a traditional OS. It’s not a terribly complicated procedure – any Linux power user will have no trouble doing it – but it definitely requires a few more steps than the other options. (See here for a step-by-step guide on installing SeaBIOS and getting a distro installed.)

I tried a few different distros using this method: Ubuntu Studio, openSUSE and Debian. I managed to get all three to a point where everything functioned well (touchscreen, Wi-Fi, suspend, etc.). Though, in all honesty, Ubuntu Studio required the least post-install tweaking to get a well-behaving system.

Performance was spectacular. The Chromebook Pixel is aging a bit at this point (it first came out nearly two years ago), but the combination of a nice SSD and a quite capable quad-core i5 makes this a peppy little beast of a laptop. In fact, it performed better than a similar Sony laptop (which had more RAM), likely thanks to the SSD.

The only annoyance is that every time you boot the Chromebook, you need to hit “Ctrl-L” in order to access the SeaBIOS before your distro will actually boot. Not a huge deal…but not 100% awesome.

I ran this setup for a few weeks and performed my entire job on it without trouble – including recording/editing audio and video and playing games (“Civilization V” and “XCOM: Enemy Unknown” both play quite well – high visual settings and high frame rates on the Pixel). I see no reason why the performance on the newer, non-ARM Chromebooks would be a problem (other than limitations of CPU and RAM on some of them).

The second option: Run Ubuntu inside ChromeOS.

Crouton is a tool for Chromebook that will allow you to install Ubuntu to run alongside ChromeOS. And we’re not talking dual-booting here. You can literally hit a key combo to switch between actively running instances of ChromeOS and Ubuntu. (I recommend this excellent tutorial by Whitson Gordon to get this setup. Luckily, it’s a pretty easy process.)

This is quite a cool solution. ChromeOS, as it turns out, is downright enjoyable to use the vast majority of the time. But sometimes you just need to be able to load up Inkscape or The Gimp, which Chromebook has no great tools for.

One interesting/kinda cool thing to consider: ChromeOS is based on Gentoo. Crouton works by installing a version of Ubuntu inside a Chroot session. So if you take this approach, you’ll be running Ubuntu on top of Gentoo. Which is fancy.

Performance is quite excellent. It’s not as fast as running, say, Debian directly on the hardware; ChromeOS is taking up some RAM and CPU cycles, after all. But, if you were running Crouton and let someone else use it, they would never know they were also running ChromeOS. Even encoding video was roughly as fast if I were running the Linux distro without ChromeOS.

Plus, Crouton allows you to utilize all of the hardware on your Chromebook via ChromeOS. This removes any need to configure your OS or patch your kernel, thus making it a much quicker process to set up. This is a nifty thing. Oh, and they share the clipboard. So you can copy text from GEdit in Crouton and paste it into a ChromeOS window.

There are two major downsides, however.

The first is that starting Crouton each time requires you to open a terminal, open a shell within that terminal, and then run a start command. Not a big time sink, to be sure, but it is somewhat annoying that you can’t just click a button to launch it. That would rule.

The other problem is that Crouton runs full screen. This isn’t a deal breaker, but it would be cooler if you could run the Ubuntu environment within a ChromeOS window.

And it’s all thanks to a wonderful little extension named, quite aptly, “crouton integration.” You just install that little puppy on ChromeOS (it’s free and open source) and you will now have Crouton running inside a ChromeOS window. You can move it and resize it, and the true resolution of the Crouton session will update based on how you resize it. Heck, you can even make it go full screen if you want it to.

So I now have Ubuntu (running whatever Desktop Environment I like) running inside a Chroot session, in a resizable window, within a Chroot session running on top of Gentoo.

A few days into this deployment, performance appears to be identical to running a standard (full-screen-only) version of Crouton. I’ve experienced no downsides to this approach whatsoever. No slow down. No crashes. It’s been solid as a rock.

Personally? I’ve landed on running Crouton in a window inside ChromeOS as my preferred setup. Normally, I tend to run openSUSE, and don’t get me wrong, openSUSE ran well on the Pixel, but…I really like ChromeOS. It’s nice. And Crouton accomplishes everything else I need. It’s a pretty slick way to go.

Now, if I could just run any Android app I want from the Google Play store on ChromeOS… I don’t think I’d ever need to leave.

Seriously. Chop-chop on that one, Google.

Copyright © 2015 IDG Communications, Inc.

The 10 most powerful companies in enterprise networking 2022