chromebookin it

Along with aches, sun burns and copious insect bites one of the bumps along the way during my trip a couple summers ago was my trusty Thinkpad dropping dead on me as I made my way over to Vancouver Island. My dad very kindly donated his old Acer which kept me going for a while. Later when I found some work and a place to stay in Victoria a friend gave me a slightly beat up but more powerful Sony Vaio which while not very portable was a great machine for a freebie.

Until last weekend, when after another round of abusing my friends via photoshop (and being soundly punked in return) the magic blue smoke was released and the Vaio booted no more. I ran out on a Sunday afternoon to see what I could find for a replacement and after talking myself out of throwing the better part of a pay cheque down on another Thinkpad I walked out of a Best Buy with a neat little Arm powered Samsung chromebook.

A friend who recently grabbed an x86 model suggested that rather than go with my gut and hose ChromeOS in favor of a full blown linux install I should give ChromeOS a try, but as I am wont to tinker I ignored this advice and set about screwing around with it. The preferred methods of supplanting ChromeOS seem to be Crouton or ChrUbuntu. The first lives in a chroot along side ChromeOS kernel and the second seems to do some weird munging of ChromeOS components into a weird Ubuntu image, neither of which appealed to me very much.

Instead I grabbed a couple of cheap SD cards and tried the very detailed Arch install instructions and then gave the even easier (dd this img file and go) Debian instructions. I'd never used Arch before and was quite pleased when I encountered their smooth wifi setup tools. Debian reminded me how to find the man pages for wpa_supplicant, but both were pretty straightforward.

After all that I discovered why people have been doing "weird" hybrid things with ChromeOS components rather than making full blown replacements. As usual, it's the fucking graphics drivers. The Exynos 5 chip in this machine has a Mali T604 GPU with a small number of shaders and provides a nice jank-free Youtube and Netflix experience in ChromeOS but vesafb while it works just as advertised, isn't quite up to those tasks. Although this video shows some promising WebGL performance with both. Personally I didn't have much luck with video playback under vesafb, maybe there's a way to get software scaling going but I couldn't suss it out.

Faced with this I briefly flirted with the idea of sticking with stock ChromeOS and limping along with the nifty dev tools available but since everything is mounted as noexec it's kinda pointless unless you're building and flashing ChromiumOS yourself.

The issue seems to revolve around a driver called "armsoc" which looks like it was forked from some OMAP thing a while back and seems to be under active development with the chromiumos project. I'm not exactly sure what the deal is with this thing that everyone is copying binary's around but I suspect it has to do with xorg ABI versions or some such nonsense. Arm also seems to provide closed binary blobs as well as open drivers which I haven't messed with yet but I expect will be disappointing for all the common reasons.

I haven't yet figured it all out but I did find my way to the limadriver project. It's a full on free driver for the Mali GPU family and seems to have an amusing backstory including a 16 year old core contributor so I think I'll give that a try. It seems more my speed.

In the long run though I see this machine as a great thing to have in my bag all the time but I expect I'll probably get a real machine again at some point. Assuming I can find one with a genuine English keyboard. Seriously if it's that hard to figure out which machine to ship to which province how does anyone in Europe buy a computer!?