Showing posts with label Ubuntu. Show all posts
Showing posts with label Ubuntu. Show all posts

Jan 26, 2013

Ubuntu on $199 Acer's C7 Chromebook


Maybe you think the price of Acer's new $199 C7 Chromebook is appealing and that the hardware doesn't look bad, but you're a little worried about using Chrome OS to get your work done. Or maybe you're looking for a small, cheap laptop to run Ubuntu, and you're not really interested in buying a computer running a Windows license you'll never use. If either of those sentences describe you and you aren't afraid of the command line, it's actually pretty easy to convert the cheapest Chromebook yet into a nice little Linux laptop.

Because Chromebooks use a special BIOS and bootloader that is distinct from the ones used in standard Windows laptops, you can't use them to boot just any operating system. This is where ChrUbuntu comes in—it's a version of Ubuntu 12.04 LTS modified to work with Chrome OS hardware. Once it's installed you should be able to use the C7 to do just about everything you could do with a standard laptop running Ubuntu, and the Chrome OS partition is left on the disk so you can still boot into it and use it if you're so inclined.

These instructions should technically work with any Chromebook, but of all the ones on sale today, the C7 is perhaps best-suited to run alternate operating systems. It comes with a roomy (if slow) hard drive out of the box, and can easily be upgraded with more RAM and an SSD to speed it up. The recent Samsung Chromebooks, by comparison, take a less upgrade-friendly approach.

Preparing the Chromebook

Our first step toward getting ChrUbuntu on the C7 is to put it in developer mode. This is a multi-step process: first, turn your Chromebook off, and then press the power button while holding the Refresh (F3) and Esc keys simultaneously. This will boot the Chromebook into Recovery mode (which you'll also need to use to reload Chrome OS if you replace the hard drive—Google's instructions for creating Chrome OS recovery media are here).

If you booted into Recovery mode properly, you should see a screen telling you to insert recovery media. Instead, you'll want to press Crtl+D to toggle developer mode. This will prompt a reboot and a wait of several minutes while your Chromebook is reset. This will also erase any data on your drive, so proceed with caution if you've got anything you want to keep stored on the Chromebook itself.

After entering developer mode, your Chromebook will boot to a scary screen telling you that OS verification has been disabled. You can either wait until this screen disappears, at which point the laptop will boot into Chrome OS, or you can press Ctrl+D again to bypass it. After loading in developer mode, connect to a wired or wireless network, but don't log in—you still have to install the developer mode BIOS before you can install an alternate OS.

At the login screen, press Ctrl+Alt and the Forward (F2) button to bring up the Developer Console command prompt. At the "localhost login" prompt, enter chronos and press Enter. Type sudo bash and press enter, and then chromeos-firmwareupdate --mode=todev. If you see a message telling you that you can press Ctrl+U to run your own self-signed OS kernels, you're ready to install ChrUbuntu!

Installing ChrUbuntu

Type exit to take a step back to the chronos user command prompt. Now, we'll need to download and install the ChrUbuntu files. As of this writing, you'll need to type wget http://goo.gl/i817v; sudo bash i817v and press enter to initiate the setup process, but you may want to check the ChrUbuntu blog to make sure a newer version hasn't been released.


The installer will check to make sure you're running a developer BIOS and show you a message about using an unofficial Chromium OS kernel to enable 64-bit functionality. You won't need to worry about any of this, so just press Enter to continue.

You'll now need to decide what size to make your Ubuntu partition, which will depend on whether you've replaced the built-in hard drive with an SSD. I'm still using the stock 320GB hard drive, so the maximum size recommended by the installer was 292GB; I entered 290GB just to give Chrome OS a little extra breathing room.

Press Enter and the system will partition your disk, reboot, and begin running through Chrome OS's first-time setup process again. You'll have to repeat a few of the steps from above—connect to a network, and press Crtl+Alt+F2 again without logging in. Type chronos to login, and then wget http://goo.gl/i817v; sudo bash i817v to start the ChrUbuntu installer again. Now that you've partitioned your disk, the OS files will begin downloading—the complete size of the download is about 1GB, so it will take some time.

Once the install is completed, the computer will reboot into a fully functional Ubuntu install with a default username and password that are both set to "user." These should probably be changed or deleted.

If you reboot your Chromebook, by default it will continue to boot into Chrome OS, which lives on in its own dedicated partition. If you'd like ChrUbuntu to be the default, open up the Terminal in ChrUbuntu (or the Developer Console command prompt in Chrome OS) and enter sudo cgpt add -i 6 -P 5 -S 1 /dev/sda to change the default boot partition. Changing it back to Chrome OS is as easy as disabling developer mode when you boot the Chromebook, or entering sudo cgpt add -i 6 -P 0 -S 1 /dev/sda at the terminal.

How does it do?

Once you've got Ubuntu running on the C7, it works just as a standard laptop running Ubuntu would. You can install and run anything from the Ubuntu Software Center or other sources and you have full access to the filesystem, making the C7 a much more versatile computer than it is with just Chrome OS installed.

Happily, all of the major hardware—Wi-Fi, Bluetooth, audio, the webcam, and the GPU—appears to be working normally, and the Chromebook's function keys also perform as they do in Chrome OS. This means that games and video content should play normally, and the laptop goes into and out of sleep mode without a hitch.

The trackpad is a bit problematic, however: tap-to-click works fine but two-finger scrolling doesn't. You'll also probably run into some edge cases where things don't work perfectly. Video out over HDMI works, for example, and Ubuntu has multi-monitor and extended desktop support, but audio over HDMI doesn't appear to work as intended. Battery life also continues to be a weak point for the C7—in our testing it gets a little under four hours in Chrome OS, and while we didn't have time to perform extensive scientific testing under Ubuntu, the numbers should be similar or perhaps slightly worse.

The ChrUbuntu blog put out a call for C7 testers a few weeks ago—if you're using ChrUbuntu on the C7 and are experiencing problems, that's the place to report them.

Whither Windows?

We noted in the original review that the C7 Chromebook was just a lightly modified version of one of Acer's Windows laptops, the Aspire One 756. Using some BIOS files intended for that model, I spent some time trying to replace the Chromebook BIOS with the standard one to allow for booting of Windows and other operating systems not supported by the Chromebooks' boot loader.

Unfortunately, such an operation is more complicated than it seems. Standard Acer laptops have a "crisis boot" mode that allows for emergency re-flashing of the BIOS, but that doesn't work on a Chromebook. The Linux flashrom utility used in Chrome OS doesn't support flashing the BIOS ROMs you can download from Acer's support site.

Finally, even if you could find a BIOS file compatible with flashrom, the C7's BIOS appears to be hardware-locked, which is standard for Chromebooks. The original Cr-48 Chromebook prototype had BIOS protection that could be bypassed by applying some electrical tape to the motherboard, but the C7 doesn't have any such quick fix that I could find. It's probable that more enterprising minds will be able to figure out how to convert the C7 into a cheap run-anything laptop, but in the hours I spent trying to unlock the laptop I was unable to do so easily. If you'd like to run Windows apps on the C7, the most feasible solution is probably going to be a virtualization program like VirtualBox, which installs and runs without issue on the C7 once Ubuntu is up and running. - source