Home  |   About  |   Energy  |   Politics  |   Software  |   Music

29 October 2015

Convergence Preview - 02 - Frustration

I will start this note with a worn cliché. I was not expecting it to be easy, but I was certainly not expecting it to be this hard. Almost one month later and dozens of hours spent, I still do not have a fully functional Linux desktop operating system running on my Chromebook.

I now feel I have reached a turning point and must try a different approach to this project. Here I report the various methods I tried to get Ubuntu (my desktop system of choice) running on the Acer CB5-311 Chromebook 13, and how they all failed.

I started from what was apparently the easiest approach, booting Linux from a USB stick. This way I would not be messing up the original system, leaving ChromeOS intact in the SSD. Theoretically, this method would allow for an easy return back to ChromeOS if needed.

There are various handicraft methods published on the web on how to boot Linux from a USB in a Chromebook. I started with the easiest one I could find, described in the video below. Even though I tried a few other methods, this would end up being the one reaching the farthest.

This method fails on the very last step. It requires the fall back into a legacy BIOS from which the boot medium can be chosen. This is made with the Ctrl+L key combination, but on my Chromebook it simply issues a beep and does not show any boot selection menu. I tried similar methods, that always fail at this same moment, when some key combination is required to fall back to the legacy BIOS. As can be seen from the comments at YouTube, there are perhaps hundreds of users hitting this same issue, but no fix or workaround seems to have been published.

Guide Strepken tells me that I have to format the USB stick with an elusive ChromeOS software, but I am yet to find it. Moreover, this Ctrl+L issue seems to be related to the firmware itself, it takes place before any external drive is read.

With these simple methods failing, I then turned to a more advanced option: ChrUbuntu. This is an Ubuntu re-distribution tweaked to run on Chromebooks, relying on a series of scripts published by Jay Lee. One of such scripts was especially crafted to install ChrUbuntu on flash USB and SSD drives.

The instructions looked somewhat simple, and there I went. It basically requires the activation of the legacy BIOS (that I had already done before) and then the download and execution of an install script that dumps ChrUbuntu into the desired removable drive. All was going well running the script when it suddenly halted with a mysterious "Cannot write to '-' (Broken pipe)." error message. I would soon learn that this problem affects dozens of users and again no fix or workaround is known. Another avenue was closed.

At this time I decided to quit trying to boot Ubuntu (or ChrUbuntu) from a USB and moved on to the internal SSD. I would prefer to leave ChromeOS intact, but I would eventually learn that if needed, repairing it to its mint state is fairly straightforward.

There is a ChrUbuntu channel at Reddit, where about one year an anonymous user posted a specific script to install ChrUbuntu on the Tegra K1 Chromebook (another hat tip to Guido Strepken). Once more the method looked fairly easy: download the script and execute it. The script partitions the SSD by itself, leaving ChromeOS in one half and installing ChrUbuntu on the other; the user is able to specify the amount of space assigned to ChrUbuntu, up to 24 Gb. This time all went well, no error messages came up.

Now, with the two systems installed, I had to figure how to tell the Chromebook from which it should boot. Luckily, this was explained down thread at Reddit. I thus managed to boot from the ChrUbuntu partition, but all I got was the command line. I tried starting the desktop environment with startx but I just got a "cannot connect to X server" message. Searching among the installed packages I came to the conclusion that the ChrUbuntu script simply did not install any desktop environment. I am not certain this is a bug or a feature, but in itself this was not a serious problem, I could always install one myself.

Or so I thought. Installing the desktop environment requires a network connection, and there lies the real problem. Using tools such as iwconfig and iwlist I was able to locate the wireless card and scan for available networks; my home network was correctly identified. But when I try to set the connection key I get a mysterious error message and the connection can not be established.

After such a long trail of failures, I decided to step back and hit DuckDuckGo again for some more reading. At this moment my impression is that Ubuntu is not really the most friendly option for a Chromebook. Apart from that, I can no longer afford to spend so much time on this project as I did these past few days. I am not yet giving up, but I will leave Ubuntu for now and study other alternatives to get a desktop Linux running on this architecture.

As a side note, so far I am really lacking a "Linux on Chromebook" community. All the inquiries I have posted at Reddit and Google+ have been left unanswered. Remarkably, it has been only at AskUbuntu where folks have actually tried to help with my issues, even if without a successful outcome. The Ubuntu community might be just too strong for my own good, I possibly made the mistake of expecting a similar level of involvement in this fringe domain of Chromebook hacking.

Further updates on this project will come up at some point.