Saturday 25 July 2015

Build your own Chromebook

Build your own Chromebook

Neil Mohr helps you install Google’s other OS on an old laptop

The first question in your head is “why would I want to install Chrome OS, even on my old laptop, when there are perfectly adequate awesome full-fat Linux distros to choose from?” Good question, and the answer is not everyone wants a full-fat distro, nor can everyone use a full-fat distro. Part of the success of Chromebooks — and they are successful with 5.7 million Chromebooks being sold in 2014 and 7.3 million predicted for 2015 (source: Gartner) — is their cut-down, lightweight Gentoo-based OS. If you want to give someone easy, no fuss access to Google services it should be a tempting choice.


The good news is that it’s easy to install Chromium OS, which is the open source project name for the official Google Chrome OS, which is only available through officially licenced Chromebook PCs. While it looks superficially different with a bluetheme running through it, Chromium OS taps into the same Google Accounts and services and it offers the same advantages of automatically picking up your plugins and the rest, which are stored in the Google cloud.

Built on Gentoo, it is Linux based and so has all the advantages of the Linux kernel, but keep in mind it was only rolled out in late 2009, so if you’re planning on trying it on hardware older than that you might not have as much luck. Having said that we tried it on a standard Lenovo X200 laptop from 2008 and everything worked without a hitch. A general rule of thumb is: any standard Intel hardware should work without a hitch. One thing we do know is that non-Intel wireless adaptors do cause issues, we’ll go into this in more detail in a moment.

A number of sites have maintained builds of Chromium OS. It’s unlikely you’ll want to build it yourself from source, so there are versions ready for VirtualBox and for running and installing off a USB drive. We’re using the build maintained at arnoldthebat.co.uk as they remain current as of May 2015. Another popular build is over at the Hexxeh web site chromeos.hexxeh.net. This doesn’t appear to be maintained as of April 2013, but it will still work.

TAKE CHROMIUM OS FOR A SPIN


You’ve got an array of options for trying Chromium OS. The easiest of them is to download an image, write it to a USB drive or SD card and boot this from your laptop or PC. There are live disc versions too, but with writable media you’re able to save your settings and carry the OS around with you.

It’s not advertised within the OS but there’s a command which easily copies the OS partitions to an internal hard drive. This does wipe all existing data but with cheap SSDs it’s not beyond the realms of possibility you could buy a dedicated drive. We did try dualbooting Chromium with Linux Mint, but it seems Chromium saw this as a repair state and wouldn’t play ball. Let us know if you have more luck, as it seems a relatively straight-forward process of recreating the two ROOT-A and STATE partitions, dd over these from the USB drive and update Grub.

Install and update Chromium OS


Create your own Chromebook from scratch.

1 GRAB A BUILD
Grab the latest special build from tinyurl.com/o7re7lt, these retain all previous drivers, including Broadcom wireless plus untested Realtek and Atheros wireless cards. Note the Cx86OS and Camd64OS for 32- and 64-bit support, so ensure you grab the correct version for your hardware to make the most of your memory.

2 BOOT MEDIA
The 7ZIP file is about 1GB in size and is a 2.4GB uncompressed IMG le. This needs to be dd’d to a suitably large USB device or SD card. You are able to run and use Chromium OS from this but obviously for speed installing it on an internal SSD or HDD is the best option:
$ sudo dd if=<ChromeOSname.img> of=/dev/sdbX bs=4M

3 START CHROMIUM OS
Boot your laptop with the USB stick. You’ll likely need to do the magic F12/Del/Special key to adjust the BIOS/UEFI boot priorities. You don’t need to log into an account as you can use the Guest browse option. Press ‘Ctrl-Alt-T’ to open the developer Chrome Shell crosh. Type shell to open a real Linux shell.

4 INSTALL CHROMIUM OS
Warning! The next command will wipe the entire internal hard drive, we didn’t have much luck with dual booting. If you’re prompted for a password use password, next at the shell $ /usr/sbin/chrome-install --dev /dev/sda and away the install will go. Once complete remove the USB stick and reboot.

5 GET THE API KEYS
Everything will work but parts of the OS won’t be able to access Google services without signed keys. Subscribe to this Google Code group tinyurl.com/cmvwma6 then access console.developers.google.com, and select ‘Create Project’. Enable Drive API/SDK, Google Maps Geolocation API, Google Now for Chrome API.

6 ADD THE KEYS
The keys are case sensitive, so carefully enter them, when asked for the password, which is password. To do this open Crosh, $ shell , $ sudo su , $ mount -o remount,rw /, $ cd /etc , $ vi chome_dev.conf in vi enter the keys as detailed in the boxout (see below). Press Esc wq!, logout and log back in and Chromium Files should now have access.

Google API keys


This part of the walkthrough isn’t strictly required and frankly it’s a pain in the bum to implement as the keys are long and if your font obfuscates 1, L and I then it’s a pain to enter as well. But if you want the Chromium Files app to work nicely with your external Google Drive account, this is the way to do it.

You’ll need to get the keys from console.developers.google.com. Under API you need to select Credentials followed by ‘Create New Client ID for Installed Applications and Other type’, then select ‘Create New Key’. Two entries with your API, ID and Secret key will be listed. The second major step is adding the environmental variables to Chromium. In vi add the following three lines to the end of the configuration file along with your new keys.

GOOGLE_API_KEY=
GOOGLE_DEFAULT_CLIENT_ID=
GOOGLE_DEFAULT_CLIENT_SECRET=