Repurposing Chromebooks

From Modding Fridays
Jump to navigation Jump to search

Every Chromebook installation is different, however they all follow the same logic. This is an attempt to make a pattern guide, rather than a step by step HOWTO. This short guide builds upon all the great work at https://mrchromebooks.tech and is meant to be a bit of TL;DR of all the resources there, for people who are already familiar with Unixy stuff and PC hardware, and just want to know what is the overall process.

Edk2 boot splash.png

Motivation

With Android smartphones, Chromebooks are probably one of the most exemplary materialization of the cognitive dissonance taking place in the capitalist creative destruction driven ICT industry. These computers would not exist without plethora FLOSS and related projects, and at the same time all this technological openness is by design obfuscated and restricted to create an ecosystem that is as closed as possible, and designed for planned obsolescence. This approach has been championed by Google and the computer manufacturers producing these devices. Good job everyone. 👍‍

Maybe you're working in an institution and you have several dozens of these machines that are not supported by Google anymore, or you're a family that was asked to invest in a Chromebook for your child to do their homework and the machine is now useless and impossible to sell second hand, or you simply want a new laptop for cheap to use for self-hosting, or main machine.

Part 1: homework

In the past decade, many people have put a lot of working documenting, and reverse-engineering parts of these devices to allow their repurposing. That does not mean every Chromebook can be saved from e-waste. What it means is that:

  • if you already have a Chromebook, there is a good chance it can be repurposed, but it's not 100% sure.
  • if you are looking at acquiring a Chromebook to repurpose it, it's better to check supported models before buying random ones.

Check this regularly updated listing: https://docs.mrchromebox.tech/docs/supported-devices.html

It's good to know that hardware configuration varies a lot from one model to another. Depending where you live, you could get one of the early models for as low as €10,-. The oldest Chromebooks are roughly as powerful as a RPi3 or RPi4.

Part 2: preparing the environment and the ChromeOS hidden shell

Note: don't be scared by all the scary different kind of shitty splashscreens you may encounter when you reboot. They've really tried hard to make it feel like you're damaging your computer.

  • put the machine in developer mode. it involves several 🧙‍♀️ short cut rituals 🧙‍♀️ that may vary from one machine to another. See https://mrchromebox.tech/#chromeos for generic instructions
  • whole OS will be wiped/reinstalled as a result
  • new boot screen has a new warning from now on about OS verification being off, proceed by hitting Ctrl-D
  • you need to reconfigure the whole machine (account creation, etc)
  • when ChromeOS is in developer mode, you can access a non restricted shell, just type shell in the ChromeOS terminal's shell (yes I know). To open a ChromeOS terminal hit Ctrl-Alt-T
  • From the "shell" shell you can become root with sudo su and can do lots of the usual Linux things if needed or simply inspect the machine

Part 3: installing MrChromebox coreboot UEFI firmware

  • open a terminal, enter the "shell"
  • install and run the firmware-util.sh helper script to check if your device has Write Protection enabled (wget/curl/etc are your friends)
    • If no (green [WP]), proceed with Install/Update UEFI (Full ROM)
    • If yes, you need to disable Write Protection. Depending on the model this could mean either removing a screw, adding/removing a jumper, or simply temporarily disconnecting the battery. Check the wiki to see which method is needed for your model.
  • when you sorted this out restart the install
  • if all good, next reboot you will be greeted with the rabbit logo of the modified coreboot firmware you just installed

Part 4: Install another OS

  • congrats this is not a Chromebook anymore, but just a regular boring PC laptop :)
  • install your linux or whatever else OS can run on this hardware