[Guide] Ubuntu Install on Acer C7 Chromebook (and Review)

Chromebooks are essentially disposable laptops. But surprising for most, they are not completely terrible and headache-inducing. Some even have OK screens and decent keyboards. Which makes them a bargain. But, they run Chrome OS, a glorified browser and you can’t install your own OS. Except … you actually can. If you find you do your best work in front of a keyboard and you want a cheap and cheerful workhorse with all the trimmings of a full Linux distro to play with, then read on. The C7 won’t replace my Macbook Air anytime soon, but it’s handy to have all the same.

Many people re-purpose older hardware for Linux use, but let’s say you were looking for a brand new machine. There’s a dearth of dedicated Linux laptops on the market for a reason (if you do want one, check out Dell’s Sputniks or System76, I have used neither, they are just more well-known). Those who want to run Linux on other hardware can usually find a way to do so already. Linux already dominates mobile devices and high-end servers, but mainstream consumer availability is still not ideal. Chromebooks are just that – low-end x86 hardware, designed specifically to run Google’s Linux-based Chrome OS out of the box – an OS that features the Chrome browser as it’s central function.

Chromebooks share common specifications – usually 2-4GB of RAM, enough for moderate web browsing and web apps (remembering that it’s Linux, not Windows based), just enough storage to get by (usually 16GB of flash-based storage) and decidedly unexceptional everywhere else. The presumption is that you’ll use online Google Drive storage, of which you receive +100GB with each Chromebook. The first Chromebook advertisements two years ago touted the ability to lose or destroy Chromebooks easily without losing anything. It’s all cloud, all the time.

There are exceptions of course, the Chromebook Pixel, with it’s boutique display panel and desktop-class CPU, and a number of Chromebooks which feature ARM-based Exynos processors. As expected, these have their pros and cons. A summary of the current lineup (around 12 models) can be found here, which start from $199 (like the Acer C7 I purchased) and average around the $200-$300 mark.

DSC_0226The keyboard layout is more similar to a standard keyboard
than a Chromebook, with the exception of the function keys.

Why not Chrome OS?

If you love and live in Google’s ecosystem, then Chrome OS is perfect for you. It’s slick and fluid, your account carries across and it’s exceptionally good at keeping updated, requiring zero ongoing maintenance. It’s especially good if you’re restricted by mostly single-tasking tablets, and/or you want a full keyboard and browsing capabilities, at a fraction of the cost. You can get a surprising amount of things done in the browser, assuming you have a solid network connection, especially with the large amount of Chrome webapps available. There is some local storage available (Chrome OS itself consumes around 4-5GB), and it’s available in the built-in file manager, but it’s usefulness is somewhat limited.

However, if like me, you’re trying to rid yourself of Google wherever possible because you enjoy privacy, or you don’t always have a network connection available, or you want to run full-blown desktop apps, then Chrome OS is no good. I moved to Firefox on the desktop quite a while ago for a multitude of reasons, and you can’t change to Firefox in Chrome OS. In fact, you can’t really do anything except drop to a shell or launch an in-tab shell (known as crosh). But, that doesn’t mean you can’t re-purpose the hardware.

DSC_0229An increasingly rare sight – VGA and ethernet ports.

These sound just like dreaded Netbooks!

Netbooks at their peak were based on anaemic single-core Atom processors from 2008, more suited to embedded devices, had comically low-resolution screens, and ran full-blown versions of desktop Windows, on local storage with limited network connectivity. A formula for abject pain and suffering, like trying to tow a caravan with a scooter. I had an Asus EEEPC which I took travelling, and I’m convinced it was the novelty of actually having a small portable device (before the advent of accessible tablets), that made them appealing.

Technology has moved on since then, so nowadays, for less money than netbooks, you can get a Sandy-Bridge based compact dual-core machine and a sane screen/keyboard combination. Of course, a high-end Ultrabook (you can thank Intel for that term) or Macbook is still going to be better in just about every way, but we’re talking a teutonic difference in cost here. The objective is seeing just how much we can do with less, and learning along the way.

DSC_0246SSD and RAM upgrades are straight drop in. The fan is also easily removable for cleaning.
Enjoy it while it lasts, folks.

Which Chromebook, then?

I found that the newer models, including the HP Chromebook and Acer C720, were more physically locked down than previous models. Specifically, ala Macbook/Ultrabook Style, the RAM is soldered onto the board and the SSD utilizes the M.2 socket, itself a replacement for mSATA. NGFF SSD‘s are available, but not particularly common yet. With plans to double the RAM (around $24 for another 2GB DDR3 stick) and add an SSD (<$65 for a 60GB Sandisk SSD), I ended up with the Acer C7 which was < $200 shipped. It has an Sandy-Bridge based Intel Celeron 847 1.1ghz Dual-Core CPU and expandability options. If you were planning to stick to Chrome OS, then one of the newer Haswell-based Chromebooks with less expandability and better battery life would be a better option, but that’s no fun.

The Acer C7, ticked the right boxes. 1366×768 on a 11.6″ screen, removable battery, VGA and HDMI out, built-in Gigabit port, 3 x USB2, even an SD Card slot. As you’d expect, all components are decidedly average, and the plastics are definitely from the ‘fleet’ side of the Acer production line – utilitarian at best. I’ve seen this plastic before, I just can’t remember where, maybe 80’s car interior parts. The screen maxes out at 200nits, and it’s glossy. The Atheros-based AR5B22 wifi chip is the highlight, supporting dual-band N and providing better throughput than my Macbook Air. The chiclet style keyboard is workable if a bit cramped and flexy, though I’ve been told I have a notoriously heavy typing style. The trackpad will make you appreciate keyboard shortcuts and USB mice.

If you’re wondering why the C7 is called the Parrot Cassowary, I don’t know either. You can check out the names of the other Chromebooks here, including it’s distant cousins, Stumpy and Lumpy.

All up, it’s < $300 for a 4GB machine (expandable to 16GB), with a 60GB SSD and an eBay 5500mAh spare battery which brings total runtime to more than 10 hours. That’s a hefty amount of bang for buck. The cheapest ‘standard’ laptop I could find for comparison was around $450, for comparable (or worse) specifications in a bulkier package. Strictly speaking, you don’t need the extra RAM or SSD, Ubuntu will run fine on a single-core machine with less than 256MB of RAM without breaking a sweat if you don’t overdo the 3D animations.

DSC_0238The factory stick battery is rated at 2350mAh @ 14v. Enough for a 5 hour runtime in a dark cave.

So let’s get on with it, what’s the catch?

I wanted to install Ubuntu onto the C7, which is supported by all three methods listed below. It can be a bit daunting if you’re a beginner, but remember that Chromebooks were designed to take massive user stupidity and still recover and keep on Chroming, so some of them are locked down tight. If you want to run another distro, it’s also quite possible, but you’re mostly on your own, unless you use method number 3. Naturally, back your stuff up beforehand, just in case. If you want to install Elementary OS, check out this guide.

Method 1 – Crouton (Project Page)

It runs Ubuntu in a chroot environment under Chrome OS. Which means that you can switch at any time between the two instantly. There’s no re-partitioning required. I didn’t use this method, but installation by all accounts is painless, the project is under active maintenance, and the project page describes the process far better than I can. It’s also good if you want to be able to fall back to a browser at any time, or you actively use your Chrome OS install.

Method 2 – Chrubuntu (Project Page)

It re-partitions the drive and creates an Ubuntu partition for dual-booting. All of this is handled by a script created by Jay Lee which makes installation quick and painless. You can also choose between various DE’s, Kubuntu, Lubuntu, Xubuntu and other variants are available, as well as LTS versions. I chose this method initially, but before that, I upgraded the storage from the included 320GB Seagate Momentus Thin (which is barely faster than a solar eclipse) with the zippy 60GB Sandisk SSD. To do so:

* Open ‘chrome://imageburner’ in Chrome OS (or alternatively visit here if you forgot to do this beforehand).
* Follow instructions to create recovery USB stick (4GB or larger – You could also use the SD card slot)
* Power off, replace disk with SSD and then boot up
* Error screen will show, follow instructions
* Chrome OS is now installed on new drive

Now that’s done, you’re ready to install Chrubuntu:

* Enable Developer Mode BIOS – Boot while holding ESC + Refresh (which is F3).
If you want to learn more, Google’s developer device page for the C7 is here, which also includes physical disassembly diagrams. * Press Ctrl-D at the Recovery Screen (the white boot screen where the BIOS usually shows).
* On the Chrome OS login screen, press Ctrl+Alt+F2, this will drop you to a shell.
* Login as ‘chronos’, no password.
* Run ‘curl -L -O http://goo.gl/s9ryd; sudo bash s9ryd’. Case sensitivity is important, this will download and run the install script.
* The install will begin and you’ll be prompted with how much space you want to allocate to the install. A good recommendation is to leave 1GB for Chrome OS and put the rest to your new Ubuntu install.
* The machine will reboot once the first part is complete. Repeat the above process again, until logging in as chronos.
* Run the same command again, but you can append flags this time ‘curl -L -O http://goo.gl/s9ryd; suo bash s9ryd [variant] [version]’.
* [variant] can be default (ubuntu-desktop), kubuntu-desktop, lubuntu-desktop, xubuntu-desktop, edubuntu-desktop, or ubuntu-standard (CLI only).
* [version] can be lts (LTS – 12.04), latest (13.10 as of now), dev, or 12.10.
* Installation will continue, with a few prompts for localisation. On my connection, this took about 15 minutes as the entire distro is downloaded.
* Once completed, Chrubuntu will boot up, login with ‘user’ ‘user’. You’re done.
* For safety, it will revert back to Chrome OS next boot. If you want to make the Chrubuntu boot by default, run
‘sudo cgpt add -i 6 -P 5 -S 1 /dev/sda’

Method 3 – BIOS Flash (Project Page)

If you have no use for Chrome OS at all, and you want to get rid of it completely, then you’ll need to flash to a third-party firmware. I chose this option as I prefer the disk to be clean. The factory CoreBoot BIOS only allows booting from USB devices if it contains a signed image, which we don’t have. We want to be able to boot off a standard MBR USB boot disk with our favourite distro, so we’ll need to implement SeaBIOS. Note that this method does require temporary hardware modification.

* First, backup your existing BIOS by dropping to a shell as in Method 2.
* Run ‘flashrom -r backup.img’. Save this .img to a USB stick or somewhere safe.
* Download the latest SeaBIOS build (27102013) for the C7, kindly modified by John Lewis. 
* Run ‘flashrom –wp-status’ – the machine should report that write-protect for the BIOS is enabled.
* Run ‘flashrom –wp-disable’ – it won’t let you because it’s locked.
* We need to disable write-protect temporarily, this will involve turning the laptop on it’s side while it’s running, taking the back cover off and shorting the two pins with a small jumper or aluminium foil while the machine is running. This is more fun than it sounds, John has a nice write up with pictures here.
* Re-run the above command, write-protect is now disabled.
* Flash the new BIOS, with ‘flashrom -w [new bios name]’. It will take a couple of minutes.
* Remove the short, you’re good to go. You’ll notice when you boot now, there is an option for USB devices.
* Install whatever OS you want on it.

So there you have it, a fully functional Ubuntu laptop, with expandability and battery swap out, for a fraction of the cost of a standard laptop. All Ubuntu package and distribution upgrades can be applied without issue. System firmware updates are also applicable if you boot back into Chrome OS, unless you used Method 3 above. I found performance to be perfectly acceptable, except when loading up a bunch of pages at the same time, or heavy flash sites. Also, don’t expect to play Crysis in a VM, while mining for Bitcoin and transcoding 4K.

DSC_0240The Atheros dual-band wifi chip performed admirably. Wireless AC is a future drop-in upgrade.

Addendum – Xubuntu Tweaks

Getting Xubuntu to work correctly with this Acer C7. There are a few adjustments required to get things to work correctly, which I’ve compiled here.

Trackpad

The C7 (and 720) use a Chromebook specific trackpad which utilizes the cyapa kernel module. You’ll need to run newer than kernel 3.11 to get it working if you’re running Ubuntu. Make sure the following modules are listed in your /etc/modules

loop
lp
rtc
i2c-i801
i2c-dev
chromeos-laptop
cyapa

If you find the trackpad not sensitive enough or want to tweak it further, edit /usr/share/X11/xorg.conf.d/50-cros-touchpad.conf (it may also be called 50synaptics.conf) and add the following. You can also try adjusting the figures to suit your preferences. The last two options control the minimum movement required to trigger a ‘move’.

Option “FingerLow” “15”
Option “FingerHigh” “30”

Option “HorizHysteresis” “15”
Option “VertHysteresis” “15”

Power Button

The power button by default will power-off the machine instantly. This can be jarring, to make it play nicely with the OS-specified actions for the button, ensure that your /etc/systemd/logind.conf

HandlePowerKey=ignore

Wireless & Bluetooth

Some people have had issues with wireless disconnecting, if so, then add to your /etc/modprobe.d/ath9k.conf

options ath9k nohwcrypt=1 blink=1 btcoex_enable=1 enable_diversity=1

You can also try disabling wifi power saving mode – create /etc/pm/power.d/wireless.sh (make sure to chmod +x)

#!/bin/sh
/sbin/iwconfig wlan0 power off

If you never use Bluetooth, save some power by disabling the BT module. Add to your /etc/modprobe.d/blacklist.conf

blacklist btusb

Volume Icon

Xubuntu has an occasional bug which sometimes displays the Volume Icon incorrectly, modify your /usr/share/dbus-1/services/indicator-sound.service

Exec=/usr/lib/indicator-sound-gtk2/indicator-sound-service

Function Key Shortcuts

Add these shortcuts in Keyboard settings to enable the functions. Install xbacklight with apt-get first:

Brightness Up: ‘xbacklight -inc 10’
Brightness Down: ‘xbacklight -dec 10’
Volume Up: ‘pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo — +5%’
Volume Down: ‘pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo — -5%’
Volume Mute: ‘pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle’

(You can run pacmd list-sink to show your PulseAudio devices)

DSC_0230You don’t need a Kensington lock because nobody is going to steal this.

Advertisements

10 thoughts on “[Guide] Ubuntu Install on Acer C7 Chromebook (and Review)

  1. Thanks a lot for the tutorial; I used method 3. I already had ChrUbuntu and was fine with it except for the fact of the loud beep and big warning on startup and the required CTRL-D to continue in developer mode. Not very user friendly for the other members of my family, and a big risk of having someone wiping everything by following the suggestion in the warning.

    I installed Xubuntu 15.04, and as expected, sleep mode did not work, and neither did the touchpad.

    To fix the sleep mode, I followed the instructions on the ArchLinux wiki:
    https://wiki.archlinux.org/index.php/Chrome_OS_devices#Fixing_suspend

    I followed the systemd method, without the “bad handling of EHCI USB” part because it broke all USB functionality (then both the touchpad and the external USB mouse did not work!), and without the cros-sound-suspend.sh script.

    To fix the touchpad, the solution was very simple. To comment or remove the following line in /etc/modprobe.d:

    causes failure to suspend on HP compaq nc6000 (Ubuntu: #10306)

    blacklist i2c_i801

    No other fix was necessary; wifi works perfectly. I only configured the keyboard shortcuts.

  2. First, Thank you!! Second, what is the “suspend” version of your bios builds, such as:

    coreboot-parrot-seabios-suspend-27102013.rom 11-Aug-2014 11:03 8388608
    coreboot-parrot-seabios-windows-27102013.rom 11-Aug-2014 11:03 8388608

    Thanks,
    Martin

      1. Thanks John, somehow I thought you generated these bios builds? There are at least 4, with “suspend” in their name:

        coreboot-butterfly-seabios-suspend-27102013.rom 11-Aug-2014 11:03 8388608
        coreboot-lumpy-seabios-suspend-27102013.rom 11-Aug-2014 11:03 8388608
        coreboot-parrot-grub2-suspend-27102013.rom 11-Aug-2014 11:03 8388608
        coreboot-parrot-seabios-suspend-27102013.rom 11-Aug-2014 11:03 8388608

        Are these by chance builds with suspend/sleep implemented, whereas the others do not?

        Martin

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s