More wacky hardware, I picked up a Samsung Chromebook for cheap.

chrome

I’ve specifically been waiting for a deal on the Samsung Chromebook, as it’s quite unique: It has a Samsung Exynos SOC, which contains ARM CPU and GPU (MALI-T604). Next to NVidia’s efforts, these are some of the most powerful ARM CPUs out there. The GPU is a tiny bit dated though (same one as the original Google Nexus 10), but does support OpenGL ES 3.0 (with an appropriate driver at least).

Why else do I want a Chromebook? To test Ubuntu for ARM. I regularly test on 64bit Intel CPUs, but would like the option to do some more heavy-duty tests on ARM. I do have an Android build, but I want more. So I bought this very specific Chromebook for this.

Installing Linux (Ubuntu)

How to Enable Developer Mode and install Crouton

Follow those instructions above to enable Developer Mode (ESC+REFRESH+POWER, then CTRL+D). Developer Mode wipes the system, and adds a warning message upon boot (WARNING! DEVELOPER MODE).

If it’s a brand-new Chromebook, you may need to force an auto-update. Click on your portrait picture in the lower right corner, then go Settings->Help and wait a moment for auto-update to begin.

Grab Crouton (Link).

Press CTRL+ALT+T to open Crosh.

From Crosh type shell. This will bring up a proper terminal. You can now run Crouton.

sudo sh -e ~/Downloads/crouton -r trusty -t xfce

Where ‘trusty’ is the Ubuntu version (14.04) and gnome is the Window Manager to install. The default Ubuntu version is ‘precise’ (12.04), but that’s old. Other WM’s can be installed by using commas (i.e. xfce,kde,gnome,unity). NOTE: I was only able to get xfce working with Ubuntu 14.04.

Using “list” instead of a -r or -t argument will list all choices. Running crouton without arguments will list all options.

In case you ever need to uninstall, go to the /usr/local/chroots folder and doing:

sudo delete-chroot -y *

Source.

Using Linux on the Chromebook

Crouton is magical. You actually run both ChromeOS and Ubuntu simultaneously. Dual booting is an option (see the Developer Mode article above for ChrUbuntu details), but this is slicker.

To start your alternative Linux, bring up Crosh (CTRL+ALT+T) and type shell. From the shell sudo run your WM start command like so:

sudo enter-chroot startxfce4       # for XFCE
sudo enter-chroot startkde         # for KDE (fails to find $Display)
sudo enter-chroot startgnome       # for Gnome (black screen :(
sudo enter-chroot startunity       # for Unity (if it worked)
sudo enter-chroot                  # to do whatever you want

Then the cool part: Press CTRL+ALT+SHIFT+FORWARD (and BACK) to toggle between ChromeOS and the currently running Linux Window Manager.

OpenGL Benchmarking

First, to log details of the OpenGL driver, install mesa-utils.

sudo apt-get install mesa-utils

Then run glxinfo. You’ll probably want to grep some of that output. Source.

To benchmark install glmark2 (or glmark2-es2, or both).

sudo apt-get install glmark2

Then simply run glmark2. An overlay will popup, and it’ll start testing. Source.

Results

Initial results show that the ARM Mali driver does not ship with Ubuntu, thus it has to fall back on to software rendering. That said, it actually does a really good job on the software rendering, but we’re not taking advantage of the system yet.

ARM has provided a reference on how to create a bootable SD card with the correct drivers:

http://malideveloper.arm.com/develop-for-mali/features/graphics-and-compute-development-on-samsung-chromebook/

I’ve spent enough time on the Chromebook today, so I may try this another time.