Asus Chromebook C201

The Asus Chromebook C201 is Article description::a Rockchip RK3288-C (ARMv7-A, Cortex-A17) based, exceptionally free (libre) software friendly portable computer. It's a lightweight (ca. 980g) and, thanks to the Rockchip RK3288-C system on chip (SoC), pretty fast device. Besides supporting hardware 3D acceleration without proprietary software its most distinguishing feature is, however, that it is one of only a few devices supported by Libreboot. Thus the factory firmware can optionally be replaced with entirely libre firmware. Instructions on how to do this can be found on the Libreboot website.

Peripherals
Mainline support is close to complete, so using should yield the best overall experience of all options.

Obtaining installation media
Create the installation media manually. Alternatively have a look at Devsus.

Installing Gentoo
Consult Asus Chromebook C201/Installing Gentoo for instructions on how to install Gentoo on the Asus Chromebook C201.

Built-in wifi
Built-in wifi requires the proprietary binary firmware blob, provided by :

Furthermore the aforementioned binary expects a nvram,. Create it with the content provided by the ChromiumOS project: https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/master/overlay-veyron/chromeos-base/chromeos-bsp-veyron/files/firmware/brcmfmac4354-sdio.txt

The ChromiumOS project considers this file belonging to the BSP (Board Support Package) and considers upstreaming the file to as being pointless.

For additional background information regarding this nvram, consult the Linux Wireless wiki.

ACPI
This handles alternating between speaker and headphone jack when one is plugged in, as well as lid suspend when the charger is unplugged. Power button support can be added if desired, though keep in mind the device will simply turn on again when the lid is closed.

Pulseaudio configuration
Add the following if using Pulseaudio:

See InstallingDebianOn/Asus/C201#Audio for further information. VEYRON-I2S shipped with alsa, so it's unlikely to need to add Google's UCM files.

HDMI is not tested. It appeared under 3.14 as RockchipHDMI, but is missing under 4.13. Possibly a kernel config or UCM issue.

Keybinds
xbacklight doesn't work, however, a backlight device exists. This script can be used in tandem with xbindkeys as a replacement for xbacklight:

Provide the delta for the backlight as an argument, positive or negative.

This file is read-only by default, add this script to the local service if desired:

This script needs to be marked executable by doing

If reassigning the function keys for another purpose is desired, edit the /usr/share/X11/xkb/symbols/pc file.

In the following example, the search key (LWIN) has been remapped to Caps and set some of the function keys to much-needed movement keys. Also, the power button was remapped to the Delete key:

Restart X for these changes to take effect.

To remove old files in /var/lib/xkb:

Tips and tricks

 * There is only 16GB of internal storage space available. Consider using an SD card for /home and to compile larger packages on.
 * Backing up the ChromeOS partition (mmcblk0) is highly recommended, however it is not difficult restore ChromeOS after a failure. Create a restore USB medium through desktop Chrome or download the files manually to write to a USB drive.
 * Do not disable cros' developer mode! If the kernel fails to boot, the machine will not be able to boot from the install medium and will be forced to "powerwash" the Chromebook. Even if the kernel boots, crossystem/mosys is needed to change these flags. This is the solution if this happens on Libreboot, though wait for partition 5 to complete instead.

Known issues
If the bluetooth module is loaded at any time and the system is suspended, both the bluetooth and wireless driver will stop working. A temporary fix is to blacklist the btsdio module:

does not work here. Query /sys/devices/virtual/thermal/thermal_zoneX/temp to get temperatures. This will average the two CPU sensors up and output in a sane format:

does not display the correct discharge time. This can be obtained through upower:

External resources

 * https://notabug.org/dimkr/devsus
 * https://github.com/Miouyouyou/RockMyy
 * http://www.synkhronix.com/journal/gentoo-chromebook
 * http://www.galexander.org/chromebook
 * https://wiki.debian.org/InstallingDebianOn/Asus/C201
 * https://libreboot.org/docs/hardware/c201.html