A Linux distribution for Chromebooks based on XUbuntu exists, you can check out GalliumOS. But you might want more upstream distributions. Since Linux 4.15 (Ubuntu > 18.04), the hardware has been supported officially, but some stuff needs post-installation configuration.
I have tested XUbuntu, Ubuntu, and KUbuntu and I end up using KUbuntu as my daily driver. The Intel OpenGL driver makes Plasma desktop far more fluid than Gnome Shell for some reasons.
This article describes some post-installation specific configuration.
WARNING: THIS METHOD OF HACKING IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND. If you lose your data, brick your device, any other damage or anything else happens (e.g. your cat eats your dog), it is YOUR PROBLEM and YOUR RESPONSIBILITY. Your device warranty will be void and it will be impossible to go back.
Some useful links
- MrChromebox.tech: custom UEFI coreboot firmware able to run Windows/Linux natively. But won’t boot the preinstall Chrome OS directly.
- Chrome OS devices on ArchWiki: I don’t recommend using SeaBIOS if you don’t want to keep ChromeOS since MrChromebox made a FULL UEFI ROM (see above).
Chromebook keyboard layout
Chromebooks have a special keyboard layout optimized for web browsing.
X11 does include a specific layout for Chromebook keyboards. To activate it, run :
|
|
Change fr
(french layout) depending on your keyboard layout.
Right alt
will behave as a modifier to access F1
to F10
, PageUp
, PageDown
, CapsLock
, Delete
…
Touchpad waking up from suspend
When the lid is closed, the screen can push the touchpad and wake the device up.
To check if you are concerned with this issue, execute
|
|
If the line starting with TPAD
reads enabled
then your device will be wakened up with a touchpad click.
Disabling touchpad waking up from suspend
The method consists in printing TPAD in /proc/acpi/wakeup every boot.
One ArchLinux you can follow the ChromeOS ArchWiki article.
On Ubuntu/Debian-based distributions, this can be done with the following steps.
- Make a script called
acpi_wakeup
containing1 2
#!/bin/sh printf "TPAD" > /proc/acpi/wakeup
- Copy the script to system services directory
1
sudo cp acpi_wakeup /etc/init.d/acpi_wakeup
- Make it executable
1
sudo chmod 755 /etc/init.d/acpi_wakeup
- Tell Ubuntu to start it at boot
1
sudo update-rc.d acpi_wakeup defaults
Audio: Alsa Use Case Manager definitions
This section is based on this ArchLinux bug thread.
The Intel Atom Processor Audio Controller chtmax98090 works natively under Linux 4.15 but it isn’t properly configured out of the box. This results in no correct mixer control making sound unusable.
To make audio works you can use plbossart’s Alsa Use Case Manager configuration :
- Clone locally the repository (you may need to install git versioning tool)
1
git clone https://github.com/plbossart/UCM.git
- Copy the UCM (Use Case Manager) definitions
1
sudo cp -rv UCM/chtmax98090 /usr/share/alsa/ucm
- Kill and reinit audio servers
1 2 3 4
alsactl kill quit alsactl init pulseaudio --kill pulseaudio --start
Now audio should work fine.
Power button
You may want to disable power button due to the horrible placement. Please refer to your desktop environment configuration.
Bonus: Use the LED with a Python script
Dell ships the Chromebook with an integrated activity RGB led.
You can talk to the microcontroller driving the led with the following Python script adapted from Can Bülbül’s candy-led project.
|
|
To be able to change led color as an user in group plugdev, you may add an udev rule by writting in /etc/udev/rules.d/40-candy-led.rules
:
ATTRS{idVendor}==\"04d8\",ATTRS{idProduct}==\"0b28\",MODE=\"0660\",GROUP=\"plugdev\"