A while ago I obtained a few dozen lightly-used Chromebooks from a business that didn’t have a use for them anymore. While ChromeOS is technically a Linux distribution, it’s heavily locked down and some apps that run natively on Linux don’t behave well on it without subsystems. Fortunately, I was able to figure how to flash CoreBoot onto them, unlocking the ability to install any Linux distribution, or even Windows, with only some minor tinkering.
Table of contents
Installation
Overview
Currently, the firmware is specifically designed to only load ChromeOS, so you cannot simply plug in a Linux USB and boot from it. We need to flash a custom UEFI/BIOS (Firmware) called Coreboot that will let us choose another boot device. However, there are hardware protections in place that makes it impossible to modify the firmware just from the OS.
Developer Mode
In order to make ChromeOS able to run commands as root (regardless of firmware protections), we need to enter developer mode. To do this
- Powerwash any existing users.
Ctrl
+Alt
+Shift
+R
(Required, organization settings disable developer mode) - Reboot, holding down
Power
+Esc
+Refresh
- Press
Enter
to confirm that OS verification is off - Any time you see “OS verification is off” warning message press
Ctrl
+D
to enter developer mode - Open a guest account
- Press
Ctrl
+Alt
+F2
to open a terminal - Login with user
chronos
Flashing Coreboot
To turn off firmware protections, we need to unplug the battery and boot when it’s directly plugged in. Unscrew the bottom of the chromebook, and use a screwdriver to pry open the case. There is a rainbow ribbon cable connecting the battery to the motherboard. Unplug it, and plug in the charger. With the case open, power on the device, open the terminal, and run the firmware utility script
cd
curl -LO mrchromebox.tech/firmware-util.sh
sudo bash firmware-util.sh
The first time, you will be prompted to turn off software firmware verification. Press Y and it will reboot automatically.
After a reboot, repeat the above commands again, and when prompted with a menu select Install/Update UEFI (Full ROM) Firmware
. You will NEED to insert a usb key to save a backup of the firmware.
Installing Linux
Once flashed, Linux can now be installed normally, plug in a USB with a live image on it, press Escape
while booting to open the boot menu, and select the USB. Follow the installation process depending on the distro.
Usage tips
Remapping super key
The Chromebooks do not come with a super key (EDIT: The search button works like the super key, leaving instructions here for posterity), which significantly degrades the GNOME experience. We can get around this by remapping right alt to left super. On Fedora:
sudo dnf update
sudo dnf install input-remapper
sudo systemctl enable --now input-remapper
Then open the input remapper tool.
- Select the keyboard
- Click “new preset” (not the +New button at the top)
- Click “Add”
- Click “Record”, and press the right alt key.
- Click “Key or Macro” in the Output section
- Type “KEY_LEFTMETA” into the key box
- Click “Apply”
- Enable the “Autoload” toggle
Getting speakers working
Linux can’t detect the speakers because they integrate with ChromeOS weirdly, use this script to re-enable them again
cd ~/Downloads
git clone https://github.com/WeirdTreeThing/chromebook-linux-audio
cd chromebook-linux-audio
./setup-audio
sudo reboot
Fractional scaling
Fedora disabled fractional scaling again because people were complaining it makes things blurry. Seems fine to me, use this to re-enable it
gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
Fan control
Without any modification, the fans will constantly run at about 50% power. There are two ways I’ve found to solve this, the first uses the command line, the second is a graphical interface.
Method 1: Using ectool (recommended)
Download the utility with curl
cd ~/Downloads
curl -LO tree123.org/files/utils/ectool
chmod +x ectool
sudo mv ectool /usr/bin
Then use it to automatically adjust the fans with sudo ectool autofanctrl
. This will reset after a reboot. To run it automatically, add it to your crontab
sudo dnf install cronie
sudo crontab -e
And write to the file
@reboot /use/bin/ectool autofanctrl
Method 2: Using ChrultrabookController
Download the graphical app, from what I can see it isn’t packaged in any normal repos
cd ~/Downloads
curl -LO https://github.com/death7654/Chrultrabook-Controller/releases/download/2.7.10/chrultrabook-controller_2.7.10_amd64.AppImage
chmod +x chrultrabook-controller_2.7.10_amd64.AppImage
./chrultrabook-controller_2.7.10_amd64.AppImage
This lets you modify curves and check system temps, as well as a few other things. You may have more trouble getting it to run in the background on startup though.
Installing Windows
Windows can also be installed, while mostly normal, some things won’t work due to driver problems. You will need to navigate the install entirely with the keyboard (press tab to navigate and space to select). You will also need to install the touchpad and other drivers manually, which can be found here (select Acer i5-10210U Spin 713-2W).