Skip to main content

PrawnOS on Asus Chromebook C201P

can you find the secret

Sometime during late 2019 I found a cheap Asus Chromebook C201P on Tradera, the Swedish version of ebay, and of course I couldn't resist buying it. I was looking for a new EDC laptop, something a little lighter in weight compared to lugging around my refurbished ThinkPad X200 with extended battery and that hefty charger. I wanted something slim and lightweight that could live in my backpack while I'm out and about and it would primarily be used for reading math pdfs, do some coding, surfing, listening to SomaFM (Deep Space One, Drone Zone) or MPD streams, SSHing into other machines and maybe watch a YouTube video or two.

My requirements was pretty minimal and the most resource heavy program I planned on running was probably Firefox so I was even considering maybe going back to using some old classic Asus Eee mini PC, but IIRC they are quite heavy compared to their size and the battery time on those tiny machines sadly leaves a lot to be desired.

Specs

Stuff
CPU Rockchip RK3288 1.8 GHz
GPU ARM Mali-T760
DISPLAY 11.6” HD (1366x768)
HDD/SSD 16GB eMMC
RAM 2GB DDR3
OS Chrome OS
DIMENSIONS 287x194x18mm
WEIGHT 0.98 kg


Ports and connectivity
HDMI 1
Card Reader
2x USB Type-A 2.0
Wi-Fi 802.11ac
Bluetooth 4.0
Audio jack combo


Features
Web camera HD webcam
Microphone Digital microphone
Speakers

As you can see this is not a powerhouse of a computer but it serves my modest needs well.

Anyway, I bought the C201 and it arrived in the mail a few days later. It looked almost unused and it worked just fine. I've never really played around with Chrome OS before so I did a few test runs and it seems convenient, easy to use and looks OK but it's obviously not for me.

What first struck me is that I actually think the keyboard is pretty good even though it is missing some vital keys and some are renamed as per usual on Chromebooks, it's very comfortable to type on. With only 2 gigs of RAM it surprised me how snappy it is. The screen looks nice and the battery time is amazingly good compared to my other machines.

So why did I want this particular Chromebook model?

Libreboot

You can easily flash Libreboot onto it!

Before even thinking about doing this I think one should pause and read through this information thoroughly a couple of times first.

Flashing the firmware is easy, albeit a little scary. You just have to follow these instructions very carefully. Basically it amounts to:

  1. Gaining root privileges on ChromeOS
  2. Configure verified boot parameters
  3. Take it apart and remove a write-protect screw and put it back together again
  4. Pray to an $entity of choice
  5. Flash Libreboot to SPI, which either can be done internally, via software or externally, with a SPI flash programmer
  6. Optionally, re-insert the write-protect screw

I chose to flash my C201 via the software route, and there was a couple of anxious seconds here and there but in the end everything went smoothly.

The practical benefit of this is that you get a few extra seconds at boot up for choosing boot medium (internal, SD card, USB, etc).

Linux

After flashing the firmware it was time to try get some Linux distribution working on the C201. The distro of my choice is the Universal Operating System Debian and Libreboot recommends it so it was a no brainer.

InstallingDebianOnAsusC201 gives you decently detailed instructions on how to install Debian. I tried and failed miserably. The instructions are somewhat dated at this point and I think it would be pretty easy to modify them to get it working with more recent releases of Debian but I simply lack the know-how so I started searching for alternatives.

This list was particularly helpful and allowed me to explore a number of alternatives of which Arch ARM was the least worst experience but, even after finding some useful hacks, there were so many issues I never got it to a stage where I felt comfortable enough to actually use the machine for anything important which defeated the whole purpose of getting this laptop in the first place. I never even considered overwriting the internal eMMC so I ran everything from a SD card just to be sure I wouldn't brick the device.

Long story short, I finally gave up on getting a usable Linux system on my C201 and it ended up collecting dust for many months.

PrawnOS to the rescue!

PrawnOS

I don't remember how I found it exactly but one day I managed to stumbled upon PrawnOS.

A build system for making blobless Debian and mainline Linux kernel with support for libre ath9k wireless, dmcrypt/LUKS root partition encryption, and graphics acceleration using panfrost.

  • No blobs, anywhere.
  • Sources from only main, not contrib or non-free which keeps Debian libre.
  • Currently PrawnOS supports xfce and gnome as choices for desktop enviroment.
  • full root filesystem encryption
  • mesa with support for panfrost for graphics acceleration
  • functional sound, touchpad, keyboard mappings
  • Patches for reliable USB on veyron devices.
  • Patches to support the custom GPT partition table required to boot on veyron devices.
  • Support for Atheros AR9271 and AR7010 WiFi dongles.
  • Support for CSR8510 (and possibly other) bluetooth dongles.

I immediately downloaded the latest release and dd'd the image do a SD card to try it out. In all honesty, my expectations were low to non-existent, it all sounded to good to be true, but god damn everything worked! Full disk encryption, audio, graphics! All the weird issues gone. No fiddling needed and I had a fully operational Debian system at my disposal. A wonderful feeling.

What more could you ask for?

The Wi-Fi issue

The built-in WiFi card requires the proprietary non-free binary firmware blob brcmfmac4354-sdio.bin which is, by design, not included in PrawnOS which is of course completely understandable since it aims to provide a completely libre system. I, of course, knew all of this beforehand but I did a very good job of ignoring it.

While I'm all for Free Software and try my best to avoid running proprietary software when I can, at the end of the day I'm a pragmatist I guess. Some people are willing to go great length to ensure they only use free software (e.g. AsusC201-usb-wifi-from-webcam !1 ).

I was now in the absurd situation where I had a fully functional system with a fully functional built-in WiFi-card not working due to self-imposed ideological restrictions. The situation felt ridiculous, to say the least. But I had some options:

  1. Try to build and install non-free drivers for the internal WIFI, post-installation of PrawnOS
  2. Try to build PrawnOS with the standard mainline kernel including binary blobs
  3. Buy a USB WiFi adapter

I briefly looked into the first two possibilities. The first one seemed to be impossible or at least hard while dealing with the libre kernel. The second option seemed more doable but a little over my head so I opted for buying a AR9271 WiFi adapter from China. When it arrived it was the wrong chipset so I had to order another one and made sure it had the AR9271 chipset this time.

It arrived at last.

bulky AR9271

Antenna not included in picture.

This adapter was so bulky and inconvenient that I finally ordered the more expensive Penguin Wireless N USB Adapter for GNU / Linux (TPE-N150USB) from Think Penguin. The package mysteriously disappeared somewhere and never arrived. I contacted Think Penguin about this and they were kind enough to do a reship. It was a long waiting time but I was very happy when it finally arrived.

AR9271

The adapter works very well and thanks to PrawnOS no compiling of drivers necessary. At this point I finally had a usable completely libre laptop! Quite a project with a lot of waiting.

Conclusion

It was a lot of hassle to get the Asus Chromebook C201P to a point where I could use it as intended. A combination of stupidity and bad luck I guess. It now lives in my backpack, I carry it with me almost everywhere I go and I use it daily. I'm really satisfied with how it all turned out but the road to get there ...

It works well for everything I do. It's light weight, the charger is tiny and the battery life is very good. I still like the keyboard a lot and the WiFi adapter is great and small enough not the be in the way.

neofetch

After using my C201P for a couple weeks I didn't boot into Chrome OS even once so I made the decision to nuke the internal eMMC and attempt to install PrawnOS to it. This was scary but it worked out just fine without any complications whatsoever. Since eMMC is only 16GB I opted for having /home on a SD card. To achieve this is I pretty much followed this guide Keyfile-based LUKS encryption in Debian. This makes the startup a bit slower but it's absolutely something I can live with. As a side note, without FDE the startup is blazing fast.

I have my usual i3wm setup with a homemade battery indicator for i3blocks written in Python and a small script to show disk usage on both / and /home.

i3wm

I thought that the lack of an Ethernet port and only having two USB ports, where one of the USB ports is always occupied by the WiFi adapter, would be a nuisance but it's been totally fine so far.

But I'm considering investing in a USB to Ethernet Adapter and maybe a CSR8510 Bluetooth USP adapter.

On the software side I have no major complaints. Hibernation can sometimes be a little shaky but besides this everything works as expected. I've been using this system for a while now and it seems stable enough.

Here's a picture of the obligatory laptop stickers for good measure so customs easily can identify me in the future.

c201 hacker stickers

Since there was a lot of waiting time I stitched together a crusty padded laptop bag with a builtin pocket for the charger, adapters and stuff. It's a little oversized but it works.

bad

Not the most charming picture though.

Lessons learned

  • Living libre can be hard.
  • I know a lot less about Linux than I think.
  • Always know what you're getting yourself into.

UPDATE Thu 25 Mar 2021 10:09:01 PM CET

I think the following two blog posts from cafebedouin.org are worth reading.


  1. I'm actually working on replicating this. More on this in a later post 

A simple bash alias to find nikola dr4fts

I use the static site generator Nikola to summon this blog into existence. I'm a slow writer and I often forget which posts I'm working on. Nikola has builtin functionally for dealing with dr4fts so by adding the following alias

alias drafts='grep -rnw ~/path/to/posts -e dr4ft' #4=a

to my ~/.bash_aliases I get a list of unfinished posts. This is trivial but convenient, unfortunately this post will now give a false positive.

Update Sun 02 May 2021 01:47:33 PM CEST

Got tired of the false positive. 4=a.

Juanachute

juanachute

Juanachute "El Papal Lot" from Björklunds Kafferosteri.

Paraphrasing its description; a coffee from Costa Rica that grows at 1800 meters above sea level, with flavors of caramel and hazelnuts and a little sweetness.

I got it as a christmas gift from my parents (thank you!) and today I noticed that I had one proper cup worth of beans left so I decided to make myself some coffee and write a little review about it. I know that you are not supposed to save coffee beans for this long but I'm not a snob when it comes to these things.

The grounded beans has a very nice color and almost looks a little like cacao The smell is fruity with a sharp freshness.

The actual coffee brew, made with a french press, has IMHO a sweet citrusy taste. The citrusy sourness is maybe a bit too much for my taste but it is on the other hand well balanced with the sweetness. There is a hint of something I associate with expensive dark chocolate, maybe with a vague resemblance to nuts? To me the sweetness is more like the sweetness of a fruit rather than caramel.

This is probably not something I would buy for myself but definitely very enjoyable and interesting.

It looks like it's not available anymore which makes it even more fun to have had the opportunity to try it.

“A mathematician is a device for turning coffee into theorems”

― Paul Erdos

weatheri3blocks: my frist public repo

I've always had the idea in my mind that programmers are extremely harsh critics and being the sensitive soul I am, I've never managed to muster up the courage necessary to publish anything.

Always loved the free software/hacker ethos of sharing and collaboration but I've always been too scared and awkward to take part in anything, impostor syndrome, my code isn't good enough etc etc, resulting in that I've always just taken stuff from the community and never participated and giving anything back.

I guess this is my way of trying to improve upon myself and in some sense put my self out there.

So if you happen to use the tiling window manager i3 together with i3blocks and you want a tiny weather block weatheri3blocks might be of interest to you.

weather i3blocks

Pretty colors and fontawesome icons included of course!

There are probably tons projects out there doing exactly this but way better but I wanted to see if I could diy-it.

noise cancellation

I finally made the decision to buy a pair of good quality headphones with active noise cancellation. I've been considering this for some time now but at last I did the boring obligatory market research and ordered what I thought looked like a good choice. They were expensive as fuck in relation to my meager income but so worth the hefty price.

While I'm not an audiophile I think the sound quality is excellent! There are lots of features many of which thankfully can be turned off in the settings. You can connect them to surveillance capitalism products like Alexa, there is a weird touch screen, they can pause audio when you start talking or take them off but what I value the most is the ability to be able to be connected to two devices at once. I found it annoying with my previous headphones where I had to disconnect them from my computer and then connect them to my phone or vice versa. This is now a problem of the past and I now rarely miss phone calls or text messages. It is very convenient! Sadly enabling this feature is at the expense of being able to use LDAC so I loose some sound quality but given the convenience this brings it's totally worth it. It's a fair deal in my book.

But side-features is not what this post is about.

adaptive noise cancellation

While getting older I've grown more cynical towards "techy solutions" to problems but I'm honestly astonished of the ridiculous amount of life quality these headphones has given me. My everyday life has improved immensely.

For those who know me AFK it's no secret that have a major problem with anxiety. Combine this with noisy annoying fucked up neighbors in a not so optimal neighborhood and add a sprinkle of sound sensitivity to the mix, the end result is not a pretty picture. For years I've felt uncomfortable in my own home, mostly due to sounds. The solution has often been either avoidance or blasting high volume audio into my ears. Neither of which are for obvious reasons particularly desirable.

This problem is now almost gone from my life. Nowdays I feel more free and like I can do whatever I want in my own home. I can read a book, watch some TV-show or sit down and hack some code whenever I want. Importantly I can now much more easily focus and dedicate time to my studies in mathematics. It gives me a sense of normality.

For those unfamiliar with major anxiety disorders one of the most frustrating aspects of it are the self-imposed restrictions it brings with it, it is hard to explain and put into words because you could certainly "just" get up and do whatever you like but there is a inherent mental barrier stopping you, forcing you to gaze inwards and go over thoughts over and over again. You almost feel paralyzed unable to initiate actions locked into your own downward spiraling mind. Unable to do normal everyday tasks. Feeling a little more free to have autonomy in my life means so much to me.

I've should have gotten noise cancellation headphones years ago, it would have saved me so much time and energy.

While I'm not magically cured of my problems this is still such a huge improvement in my life.

On the other hand, maybe this is a form of escapism, trying to avoid the consensus auditory reality but if I've found a tool that truly makes me function better as a human being in almost every respect, should I not then use it? The question is rhetorical. Maybe this would be a more questionable behaviour if I didn't work on more practical permanent long-term solutions to my AFK problems simultaneously. I'm working on it. :)

I worried about how this would impact social interactions with my partner but so far it's been all good. My partner is fortunately enough very understanding and patient with me and the headphones are pretty good at picking up conversations nearby directed at you so this hasn't been a problem at all, so far.

I should also note that the technology is pretty interesting in its own right.