Slackware64 14.1 on a Acer Chromebook C720p

In this post I try to explain the steps I took to install Slackware64 on my Acer Chromebook C720p. Here is what I did:

  • Installing a new Coreboot image
  • Installing Slackware
  • Installing a new kernel
  • Fixing suspend if the lid is closed

Installing a new Coreboot rom

Even though the Coreboot version the device ships with includes a SeaBIOS for legacy boot support, there are a few reasons to replace the original firmware:

  • You get a newer version of both Coreboot and SeaBIOS
  • It doesn’t show the Chrome/Google splash screen anymore
  • You’ll be able to upgrade your firmware

To achieve this, I followed more or less this tutorial: Switching to true Coreboot on the C720

This involves that you open up your device (and therefor void your warranty) and remove the write protect screw. But it’s definitely worth it and at least for me it all went flawlessly.

As explained in the above article, don’t put the write protection screw back. Otherwise you won’t be able to upgrade your firmware ROM without opening up your laptop every single time.

Installing Slackware

As soon as you replaced Coreboot, you are ready to install Slackware using your favorite install method. Since the Chromebook doesn’t come with a Ethernet port or a DVD drive it’s probably a USB image you’d want to use. If you stick with the original firmware, you need to add the kernel option mem=1356. But with John Lewis’ firmware this bug is solved.

I didn’t do a full install and removed some of the KDE and XFCE stuff. I also didn’t install any documentation. My Chromebook came with a 32GB SSD which definitely isn’t plenty. You wouldn’t want to waste it on stuff you find online anyway.

Replacing the Kernel

The default 3.10 kernel Slackware 14.1 doesn’t support the touch screen or the touch pad. You need a later kernel version. For your convenience I built a Linux 3.18.1 kernel based on the huge.s configuration. You’ll find the package and the SlackBuild scripts here. But of course you could also build your own kernel or use my SlackBuild script.

Install the linux-chromebook package which installs a new kernel under /boot/vmlinuz-chromebook-3.18.1 along with the modules and a System.map file. You have to edit your /etc/lilo.conf file to boot the new kernel. Add the following lines:

image = /boot/vmlinuz-chromebook-3.18.1
root =
label = Linux-cb
read-only

Since the kernel is based on the huge.s image you probably won’t need a init-ramdisk unless you have a LUKS encrypted LVM disc.

Fixing suspend

These Chromebooks have a known problem if you allow the touchpad or the touchscreen to wake the device from sleep. If you close the lid it touches the touchpad and the buttons touch the touchscreen which leads to a resume right after the machine suspended. For the current session this can be fixed with the following two commands:

# echo TPAD > /proc/acpi/wakeup
# echo TSCR > /proc/acpi/wakeup

You can check whether it worked by checking the output of

# cat /proc/acpi/wakeup

To make this permanent add the two lines to the /etc/rc.d/rc.local script which leads to them being invoked every boot.

Resources