Experiments Installing Unix on the ARM-based Samsung ChromeBook

I recently purchased an ARM-based Samsung ChromeBook to play with. This page documents some of my play with it. In particular, I'm capturing my work to install alternate environments on the platform. For the moment I'm focusing on Linux, primarily debian and gentoo, but I've messed around with several others as well (once you figure out the basic process, installing just about any of them is a no-brainer).

As delivered, the Chrome OS is not terribly exciting, but then I did not really expect it to me. It is probably fine for use in the general consumer market, but personally it feels like an Android-lite device. While I can tolerate Android on my cell phone as the phone is an end consumer device for me, using it or some approximate on a portable computing platform is entirely insufficient. Thus, almost from day one I started playing with loading alternate Unix environments on it (ok, I confess, that was the plan all along). I am especially interested in the virtualization capabilities of the new A15 core and that was the actual motiviation for buying the device in the first place.

I'm organizing this page into three main parts, namely:

Finally, here's a couple notes/warnings:

Installing RootFS w/ Default Samsung Kernel

This is best described here. Follow these instructions and you will end up with a functioning system. Generally you need to achieve the following:

  1. Step 1: Set the ChromeBook in developer mode and tell it to crossboot.
  2. Step 2: Partition your storage device (USB or SD Card)
  3. Step 3: Create a root file system on your storage device. You should look for the ARM Hard Float images (often written armhf). You can find images for many of the distributions, probably the easiest is to use either a stage3 tarball from the gentoo distribution (I followed the Gentoo Linux x86 Quick Install Guide and made inline changes to setup the ARM setup with the image. For debian I've been using the debootstrap program as outlined here.
  4. Step 4: Configure the existing ChromeBook kernel, load it into the first two partitions of your storage device, and mark those partitions as good so the system will boot from them.

Reboot. Hit Ctrl-U and watch it boot off your storage device.

Building/using an Alternate Kernel

I'll put something here once I figure out how to make this work.

Helpful Links

Links that were definitely useful

Start here. You have to set the machine into developer mode. Follow the instructions here. This page also provides some useful information on the hardware and on the boot process.

Here is a key page that talks about actually compiling/building a kernel image. This is the first page I've seen on this topic. Looks interesting.

This was the first website I followed to install ubuntu . I continue to follow the instructions from this page to setup my boot disks. Basically you have to blindly type the commands, but they work (except they forget to tell you to write the partition before quitting qdisk....that caught me the first time).

Shows how to use debootstrap to (very) easily install rootfs on a filesystem.

Running Arch Linux on the ChromeBook. These instructions are different than most. I've not explored this, but it looks interesting so I captured it here.

A version of the generic install from the fedora project. This one is funny in that it has a massive disclaimer at the top of the page. Don't think I've ever seen that before. However, this page has something that I've not seen elsewhere. Namely that there is no official Exynox5 kernel support.

Links that I'm saving in hopes that they will be useful to me

Linaro was setup to support the development of linux software/tools on the ARM platform. I've not learned anything useful from this website yet, but I didn't locate it until late in the process and I've not yet read much on this site yet. I have high (hopefully not false) hopes for it tho.

I'm hoping to use this to help me get grub working so I can actually boot xen and a dom0 with ease.