Asus Chromebook C201

From Gentoo Wiki
Jump to:navigation Jump to:search

The Asus Chromebook C201 is 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[1]. 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.

Hardware

Make/model Notes
Board Veyron-Speedy filename of device tree binary: rk3288-veyron-speedy.dtb
SoC Rockchip RK3288-C
RAM 4GB 2GB version available, DDR3
Firmware Coreboot with depthcharge payload[2] physical write-protection (screw), Libreboot supported
Boot media eMMC, SDXC or USB

SoC

Component Make/model Status Kernel driver(s) Kernel version Notes
CPU 4 x ARM Cortex-A17 Works 4.15 max @1,8GHz
GPU Mali-T764 Works Panfrost 5.3 OpenGL ES <2.0[3]
USB 2.0 Works 4.15 2 * USB-A
HDMI  ? dwhdmi
Analog Audio Rockchip I2S Works N/A 5.2

Peripherals

Component Make/model Status Kernel driver(s) Kernel version Notes
Display 11.6" @ 1366x768 Works 4.15 xorg-server via fbdev works
WiFi Broadcom Works brcmfmac 4.15 works with proprietary blobs
Touchpad Elan I2C Works elan_i2c 4.15
Bluetooth  ?
Embedded controller Google Works cros_ec 4.15

GCC Optimization

FILE /etc/portage/make.confRK3288 example
COMMON_FLAGS="-march=armv7-a -mtune=cortex-a17 -mfpu=neon -mfloat-abi=hard"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Note
For a hardened system consider appending -fstack-protector-all

Creating installation media

Create the installation media manually.

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 brcmfmac4354-sdio.bin, provided by sys-kernel/linux-firmware:

root #emerge --ask sys-kernel/linux-firmware

Furthermore the aforementioned binary expects a nvram, /lib/firmware/brcm/brcmfmac4354-sdio.txt. 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 sys-kernel/linux-firmware as being pointless.[4]

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

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:

root #echo "blacklist btsdio" > /etc/modprobe.d/blacklist-btsdio.conf

External resources

References

  1. List of supported hardware, Libreboot. Retrieved on June 21st, 2019
  2. Depthcharge, Developer Information for Chrome OS Devices. Retrieved on June 21st, 2019
  3. GNOME Meets Panfrost, blog of Panfrost's main developer Alyssa Rosenzweig. Retrieved on November 16th, 2019
  4. ChromiumOS Git at Google. Retrieved on February 25th, 2019