Linux on the Asus Chromebook C201
I've been messing with Linux on my ARM-based (Rockchip RK3288) Chromebook for a number of years now. Thought I would share my experiences so far as well as a few pieces of upcoming development I'm excited about.
For those not familiar, the Asus Chromebook C201 supports libreboot, and can run a completely free linux-libre kernel. I flashed Libreboot on this device the first day I got it. The process is relatively straightforward, no soldering required. Just a screw to disable the write protection.
The only components not supported by free software (yet) are the WiFi chip and 3D Acceleration. So I have an external AR9271-based WiFi adapter, which is supported by Linux Libre. And while 3D acceleration isn't supported, the desktop experience is still relatively smooth.
Initially, I installed Arch Linux on the Chromebook and replaced ChromeOS entirely. It still used the ChromeOS kernel instead of mainline, which allowed all native components to work. But I've really wanted to run a mainline kernel for some time now. Each time I tried with a mainline kernel, I ended up with a white screen at boot that I couldn't seem to get around.
Recently, I revisited the distributions available for the C201 and it's grown quite a bit. There is a good rundown in this Github repo of what is available.
I've tested out Devuan, PrawnOS, and Arch; all work pretty well. I settled on a modified PrawnOS (Debian-based). I cloned the Github repo, modified the script so it fetches the latest 5.0.7 Linux-Libre kernel instead of 4.17 as support for the RK3288 has improved since then. I did have to go through a bunch of prompts, deciding which new features to enable in the updated kernel, but other than that it wasn't much work. The script produced a flashable image with the 5.0.7 Linux-Libre kernel and it boots up perfectly! I was then able to change the repos from Debian Stretch to Sid and upgrade without issue.
Though not generally a recommended practice, I installed Firefox from an Ubuntu PPA to get a more recent version on Debian.
Since I know this process works, I'm really looking forward to redoing this with Linux-Libre 5.2 when it's out. Not guaranteed, but hopefully in that release will be the Panfrost DRM Driver which will enable blob-free 3D acceleration when used with the Panfrost Gallium3D Driver slated for Mesa 19.1.
- PrawnOS with LXQT Desktop
- Running glxgears
- HTML5 Support in Youtube
- 1080p Youtube - No dropped frames, played smoothly.
Bedrock Linux I've reflashed the device since this experiment, but I was able to install Bedrock Linux on the C201 without issue. This used PrawnOS (Debian) as the base OS and then installed Arch as an additional stratum.
Here is a screenshot showing system info, installed bedrock strata, followed by consecutive apt and pacman searches: https://i.imgur.com/KqjNcS2.png
For this system I don't really have the need to grab some things from Debian & some things from Arch, still it's a really neat OS. Check out /r/bedrocklinux for more!
If you want to and can't seem to re-flash ChromeOS Between messing around, for a while I wanted to restore the Chromebook to its original state, however I kept getting a message that ChromeOS encountered an unexpected error during recovery. Here is a solution to that problem. Press Ctrl+Alt+F3 to view the virtual console during ChromeOS recovery and stop the recovery process when it starts writing to Partition 3 (Power Off, remove recovery media, turn back on). Source.
I think that's about everything I wanted to cover. Hope someone finds this useful.