Reviving Chromebooks with Ubuntu: Autonomous Servers, Planned Obsolescence, and Permacomputing
A tutorial and slight manifesto on reviving end-of-life Chromebooks. How to make them into autonomous servers, and why we need to rethink computing in the age of climate collapse.
Chromebooks are a ubiquitous staple mostly in educational spaces. They are small, cheap, and efficient laptops usually given out to students to do their work. Made by Google, the entire OS mainly acts as a web browser to access Google’s cloud resources (Google docs, sheets, etc).
What happens to the thousands of Chromebooks in schools after a few years pass? They end up in an end-of-life (EOL) state, unable to receive updates from Google. Laptops from 2018 are thrown away, scrapped, or auctioned off because they no longer will work. Is it because the hardware is broken or obsolete? No. It’s because Google wants to increase sales, and so after a few years they intentionally strand thousands of machines.
The history of the Chromebook is a history of planned obsolescence, a perfect example of how computing operates within capitalism - to maximize profit at the expense of all else. These complex machines are meant to be thrown away, tossed aside, and scraped. The rare earth minerals, the labor involved typically in the global south being carried out by an exploited labor force, the resources used to transport these materials, and the fossil fuels used in their mining, transport, development, and manufacturing. All of these resources and work are discarded. These computers could become free computers for low-income families or people who just need a new computer to do work in our ever-evolving digital world. But instead, they go to waste.
This article is broken up into two parts. The first is an actual tutorial on how to make a Chromebook boot to an up to date Linux install.
The other part of this article will go into the reasonings behind this, and talk more about planned obsolecnece, computers, capitalism, permacomputing, and post-scarcity anti-capitalist futures.
Click here to skip to that section.
Considerations, Limitations, and Constraints
This tutorial will be specifically for installing Ubuntu onto an external drive, and being able to tinker with a Chromebook to allow it to boot to that drive while maintaining the original ChromeOS. There are many factors and reasons why I went this route, and some considerations to keep in mind.
While this project is for a specific purpose, keep in mind that you don’t have to go this route. Do whatever you want, modify things to how you want them to be.
So why did I choose to boot to an external drive while keeping the original ChromeOS?
These machines are going to be used to help build an autonomous wireless community network. This network will be not only for normal times, but also for emergencies. With that being said, not everyone will be familiar with or able to operate a Linux install, let alone be a server admin. So I want to maintain the ability for a nontechnical person to pick one of these up and just use it as a client. Keeping the ChromeOS on there allows for someone to just quickly use the machine. This allows them to be more versatile.
The onboard memory is small, the models I got my hands on have 16GB of onboard eMMC storage. That is basically nothing. You could overwrite the ChromeOS with something like Ubuntu or Linux Mint, but then you have to do some annoying disk partitioning to separate the home directory, and either way you will need an external disk to use these as a server anyways. So it’s easier to just install it all on a USB drive or external hard drive.
“But why not use other regular (non Chromebook) laptops?” You should try and reuse any and all computers you can. I’m not saying that Chromebooks should replace using an old laptop. Other laptops are actually easier to use because they have actual BIOS installed, and you can usually just replace the internal hard drive. What I’m saying here is not to overlook Chromebooks for their potential to do the same thing. They require slightly more work but it’s better than then ending up in a landfill. This is not to say that Chromebooks are better in any way either. This is a tutorial to help people save EOL Chromebooks, not to discount you on reusing an old Thinkpad.
Using an external drive to boot and use as your main drive means that you can take the USB/drive out and use it on really any computer. So it gives you more versatility. In an emergency situation, imagine if you had one of these Chromebooks and the screen gets damaged. Well, just take your drive and plug it into any other computer, and boot to it. This gives you more options when it comes to use, especially because the storage on a Chromebook is soldered-on, you don’t have an easy way to remove data from the soldered-on drive.
Raspberry Pi’s are expensive and overrated. The original platform I was using to make these networks was a Raspberry Pi, but if you haven’t looked at the prices of them after Covid, they are crazy expensive. There are plenty of nerds with a ton of them gathering dust from old projects. But to expect other people to have one already or even source one is ridiculous. Most of the clones are also expensive. You can get a used Chromebook (or an entire pallet of them) for less than $30. Chromebooks are also more powerful and have a screen, keyboard, and battery for even less than a barebones Raspberry Pi. There is a place for them if you need access to GPIO pins. One upside to a Pi is power consumption, but again, that depends on how you are powering them. Since Chromebooks are pretty efficient, they are good on battery life. The same way you would more than likely charge a battery bank is how you would recharge a Chromebook.
Overall, we want to create a resilient system here. Making things modular, portable and able to adapt to situations. If you install everything on a machine with a soldered-on drive, it will be hard to get information off that drive compared to installing it to an external source. With this you can both have a drive that can work on any computer, but also have a Chromebook that can double as a server when someone is there to manage it, but also can default back to just an internet client that anyone can pick up and use.
Upsides & Nuances & Downsides
There are a couple of points I want to illustrate so you can know if you can know things ahead of time. There are some positives and negatives and some weird small stuff but it’s easy and small enough to make reviving Chromebooks possible.
Making a bootable Linux USB/drive means you can plug that drive into any other computer and start rockin’. In an emergency situation this mean that you can quickly switch to other machines if needed and keep things running.
This is way cheaper than a Raspberry Pi if you are not needing GPIO pins. To make an actual portable Raspberry Pi requires so much that is already built into the Chromebook.
Nuances / small things:
Chromebooks are built to run ChromeOS, and with that comes some small annoying things about dual booting. When the computer is first started you will always need to wait 30 seconds after a stupid splash page, or press Ctl+D to boot to ChromeOS or Ctl+L to boot to an external drive.
There are some steps you have to take to get the Chromebook to even boot to a USB. This might mean opening up the laptop and removing a screw. The alternative though is worse - these devices ending up in e-waste landfills or being scrapped with chemical and polluting processes.
Tutorial on enabling dev mode, enabling USB booting, and getting Linux running on a Chromebook
First, you will need a Chromebook (I will go over sourcing later on)
A USB drive to flash the Ubuntu installer (or any linux flavor)
A USB drive to install the OS on or an external drive.
Might need a screwdriver depending on your model.
This tutorial is based on another tutorial by Fascinating Captain, but I ran into some issues and nuances that aren’t mentioned in his original article. There are also multiple other paths to take depending on your Chromebook model, and the models I have fall into that.
Enter developer mode by turning off the machine, then holding the ESC + Refresh buttons while pressing the power button.
Press Ctl+D and then Enter.
Login or enter a guest session.
Open Chrome and then Ctrl + Alt + T to open a terminal.
Then type shell to open a bash shell.
sudo curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh
See if “Install/Update RW_LEGACY Firmware” is blue. If not and [WP] is on every line, you can’t use software to remove the write protection and need to remove the WP screw.
(If needed) remove the WP screw.
Rerun the original script, if “Install/Update RW_LEGACY Firmware” is not blue skip to running: bash <(curl https://johnlewis.ie/flash_cb_fw.sh)
Either way, the firmware will be installed.
Reboot then enter a terminal with Ctrl + Alt + T or Ctrl+Alt+F2 (the back button) then enter this command in the terminal: sudo crossystem dev_boot_usb=1 dev_boot_legacy=1
Some models may require this command to be run instead, it will tell you. Run: sudo crossystem dev_boot_usb=1 dev_boot_altfw=1
Create bootable Linux installer USB.
Reboot the machine and when at the “OS Verification is OFF” page press Ctl+L with the boot USB in then press ESC to list the drives and boot to it.
Install Linux to another external USB or external drive.
Reboot and press Ctl+L to boot to the external drive or Ctl+D to boot to Chrome OS
1. Enable Developer Mode
Entering developer mode will erase everything on the Chromebook. More than likely it’s already empty, but if you have been using it already backup your data off the machine because it will be wiped.
With your Chromebook turned off hold down the ESC and Refresh While keeping them held down, press the power button once. You may need to hold the power button for a couple of seconds depending on your model.
The next screen will look scary and say “Chrome OS is missing or damaged.” that isn’t true. Press Ctrl+D to bypass this screen.
Turn off OS verification on the next page by pressing “Enter”
The Chromebook will reboot after that.
On the OS verification is OFF screen press Ctrl+D to bypass this message.
You will see a timer counting down in the top right hand corner of the screen. It may also boot to a black screen that spins and says “Preparing the system for development mode”. Just wait until this finishes. The Chromebook will reboot and you’ll see the screen with the red exclamation mark.
Developer mode is now enabled! To boot into ChromeOS, press Ctrl+D. Don’t press enter because that will enable OS verification which you don’t want.
After that, it will take you to a Chromebook page, press “Get Started” and connect to a Wifi network.
Optional: Set up Chromebook with Google account
After accepting Googles BS terms and conditions, there will be an option to setup the Chromebook with an account. You can do this if you want, but keep in mind if you are using an old Chromebook you more than likely won’t be covered by security patches so keep that in mind.
Entering Guest Mode without a Google account
Guest mode can be found at the bottom of that screen when you are first setting up the Chromebook. You can activate everything through a guest session, just be aware that your history won’t be saved.
Modifying Chromebook BIOS with new Firmware
Next we will open a shell to get the firmware installed.
Open a terminal by logging into a guest session (or your own user if you picked that) and opening chrome.
Then press Ctrl + Alt + T this will bring up a terminal window that will show:
Type in the command ‘shell’ and hit enter and it will open an actual bash shell so you can modify files.
crosh> shell chronos@localhost / $
Chromebooks don’t have a traditional BIOS
Chromebooks don’t use BIOS to boot to external drives but uses firmware to determine what boots. What we are doing is installing our own firmware on top of the default boot firmware to make something like a BIOS.
For those whose eyes glazed over: the fake BIOS will allow us to boot to an external drive like a regular computer.
Installing the firmware will depend on your Chromebook. There are two ways to modify the settings to flash our own bios.
I would first try MrChromebox’s firmware script as it will print out a good amount of information. It will tell you if you can disable Firmware Write Protect through software or if you need to open up the computer to remove a screw. (It’s super easy and simple don’t worry).
So first we will run the nice script, figure out if we can override Firmware Wipe protect through software, or if we have to open the computer up.
Navigate to this page:
And it will include the commands to use.
Change directories to /usr/local because by default ChromeOS won’t let you save new data to a home directory. And then pull down the firmware installer.
cd /usr/local sudo curl -LO mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh
That will run the script and show you what options are available.
We are looking for “Install/Update RW_LEGACY Firmware”. If yours is blue you can rewrite it without needing to pull the read/write screw from the computer.
Mine would now allow me to do any of the above, and each line had [WP] meaning I could not rewrite the firmware without removing the WP screw. This is very common. If your script “Install/Update RW_LEGACY Firmware” is blue, skip this next section.
Physically removing the Read/Write Screw (Depends on your model)
This sounds pretty crazy but it’s really easy to do. More than likely you are doing this to an old Chromebook that is already EOL. You just need a screwdriver and the ability to read to get this done.
If your script from before said [WP] in red next to everything then you need to remove the WP screw. Get a screw driver and take the screws off.
VERY IMPORTANT! Before opening the computer, turn the power off. Completely off. Safety first!
You are looking for an area on the motherboard labeled “WP Screw” or “Write Protect Screw”
Unscrew that and now you can write custom firmware to your board!
Screw your backplate back in, reboot, and press Control + D to boot into the ChromeOS. Go back to /usr/local and rerun the script either by using the same command as before, but since you already downloaded it you can just type in:
Flashing the new boot firmware
If your machine had “Install/Update RW_LEGACY Firmware” in blue from the script, or if you physically removed your WP screw and reran the script, then press enter and it will install a custom boot loader.
That is the easy way, your model might give you problems like mine did. I removed the WP screw, reran the script and then the option for “Install/Update RW_LEGACY Firmware” was still greyed out. There is another option that will work, but now that you know that write protection is turned off, running the alternative should work.
Flashing firmware if mrchromebox’s script was greyed out (Skip if it was blue and ran)
My specific Chromebook the Dell Chromebook 11 3180 didn’t like mrchromebox’s script and yours might not either. John Lewis made another slightly older script that will work on other models that the mrchromebox script doesn't run on.
Open a new terminal window with Ctrl+Alt+T and do the following (One per each line):
shell (This will bring up a bash shell) cd /usr/local bash <(curl https://johnlewis.ie/flash_cb_fw.sh)
This will run the installer. Based on your model there will be various options to choose from.
If you run this script and you don’t see the option “Modify my Chromebooks RW_Legacy slot” you more than likely can’t flash this boot loader. This depends on a ton of things and there isn’t an easy way to give you an exact list of which ones will work 100%.
Choose the option “Modify my Chromebooks RW_Legacy slot”
Type in the number that is on that list.
The terminal will flash and present you with a screen where you have to type in a prompt that is generated. This will be different between Chromebooks but for my case this is what I had to type:
If this bricks my kefka, on my head be it!
Some scary text will come up, if it says success then you are good to go.
Enable USB Boot
If your firmware flash was successful you will be able to reboot into ChromeOS no problem! Now we have to enable USB booting. Load into ChromeOS by pressing Ctl+D.
If you logged into a google account you will be taken to the Chrome login screen. Press Ctrl+Alt+F2 and login using the password chronos
If you are using a guest session just go Ctrl+Alt+T then type shell to open a terminal and get a bash shell.
When at the terminal type in:
sudo crossystem dev_boot_usb=1 dev_boot_legacy=1
If you do that and get an error about using dev_boot_altfw run this instead:
sudo crossystem dev_boot_usb=1 dev_boot_altfw=1
After that when you reboot and get to the startup screen press Ctl+L and it should bring you to a screen that looks like a traditional BIOS!
Install Linux to an external drive
Now you just need your new OS flashed onto a flash drive so you can install Linux onto either another USB drive or an external hard drive. Either way is the same.
Create a bootable Linux installer
Etcher is the best software to do this, other bootable USB creators like Rufus might cause problems and not let you boot correctly. Etcher is also incredibly easy to use and installs on everything.
Here is the etcher website!
If you need a walkthrough of using Etcher, follow this tutorial. It’s pretty simple.
You basically need to download the latest Ubuntu (or any linux flavor) ISO to your machine, load that into etcher, put in your USB drive and press go.
I opted to use Ubuntu Desktop because it makes it easy to turn these into portable servers without fussing with other Linux flavors repositories.
When you are on the linux desktop download page, scroll down and select the acutal latest version. The LTS version is old but still covered with patches but you might as well install the latest and greatest.
Boot to an external drive to install Linux
Plug in your newly created installation USB and power on the Chromebook. Once you get to the page that says “OS Verification is OFF” press Ctl+L to boot to our custom BIOS like firmware.
Press esc to list the available drives to boot to, choose your USB Linux installer.
Run through the installation, make sure you plug in the drive you want to use where you will be installing Ubuntu/Linux.
Go through the installer like normal, you can pick “Install Ubuntu” or try, either way you want to run the installer. Make sure to select the option “Install third-party software for graphics and Wifi hardware and additional media formats”
Then it will bring another screen to decide where your Ubuntu install will go. Be sure to pick the other external USB or external drive where Ubuntu will be installed. If you want to do fancy partitioning go ahead, but choose “Erase disk and install Ubuntu”. This will obviously erase the disk so use something empty, or backup the data.
Finishing the install
There you have it! After the installation finishes you should be able to reboot, then press Ctl+L to boot to USB, then esc to list your drives, select your drive and you are ready to roll.
Some Chromebooks don’t initialize the SD card slot until after boot, meaning you cant boot directly from an SD card but can still use the SD card when Ubuntu loads.
You can also remap the keys to make them feel like a normal computer, as the special keys may not match what they were used for on the Chromebook.
There is a handy script that might fix all of this for you but, with my install everything worked out of the box without any fuss (besides the special keys)
School districts and cities often time will auction Chromebooks off at super low prices. Sometimes you can grab entire pallets, thousands of these computers for less than $50. Look for local auction websites, in my area in Dallas I use LSOAuctions as an example.
Facebook marketplace is another place to look. I hate Facebook as well and refuse to actually use it I know. Most people reading this are anti Facebook or weird Linux nerds but here is a bit of advice: most people are using Facebook marketplace to sell cheap shit. Whether you like it or not, you can find some good deals on old computers on there.
You can also just call school districts and see if you can get in touch with someone in their IT department. Try and get ahold of someone who works on a helpdesk or who handle computer provisioning. There are people whose entire job is to take care of the computer stock. I’ve seen some concerning replies across social media from sysadmins at school districts who just literally threw away the chromebooks. So dumpster diving might be a good idea too if you really want them for free.
I won mine at auction, but most importantly when I went to pick them up I met a man who ran a computer recycling warehouse full of Chromebooks and old laptops.
Chip stewardship in the age of climate collapse: How removing profit and stopping planned obsolescence can help us form new relationships with technology.
Many of us view technology in an adversarial light. We see a world and cultures around the world being reshaped by technology. We feel at the same time more connected to the world of instant information, and yet at the same time so separated and atomized. Is this because of the technology itself? Or is the technology and its negative and positive impacts shaped by our socioeconomic conditions?
The reason why technology is so alienating, so pervasively interrupting our lives, making us feel ever-connected to the web where everything we do feels like some form of digital work - is because of capitalism.
This technology is being leveraged for one purpose: profit. And our social and political relations influence how technology is manufactured, how it’s used, and how it becomes a tool of oppressive corporate and state control compared to a tool for revolutionary global solidarity and action. Capitalism is driven by metrics such as GDP that completely divorce the economy from reality. The profits go up, the GDP goes up and that’s considered to be good. While all of it ignores the environmental, social, and political impacts that are caused by chasing these profits and endless economic growth.
Computing is based on these relations and came from the needs and wants of both the US government and corporations. The birth of computers was meant to create powerful methods of automating tasks for the purpose of statecraft or to maximize corporate profits.
In my work Open Source Societies I go into detail about the history of the internet and computers and specifically into the anarchistic and utopian views of the early internet. Ideas that not only corporations should have access to computers, with the revolutionary view that we can defeat authoritarian governments and corporate power by creating a global interconnected system of communication, open sharing of information, goods, and anything we needed to live life. This directly intersected with the psychedelic movement and with the counterculture of the 1960s and 70s.
The article touches on the both dark and utopian past and brings it into the present. What would computing and technology look like if we also changed our social relations away from capitalism and systems based on profit, but systems that focused on its impact on human and ecological life and on non-monetary mutual aid?
Everything would change. Because we wouldn’t need to build things for profit. We would question how and why our technology is manufactured the way it is. We would care for the technology that exists today and is just discarded, while fundamentally changing how we manufacture technology.
We can’t have infinite growth on a finite planet
The thought that we can continue mining the planet for rare earth minerals is insane, while we are essentially staring down the barrel of a loaded gun - still poised with a shovel in our hands ready to mine more resources. For what? For a few mega-corporations to make more profit? More and more resources are extracted for products that are essentially relegated to trash. We live in an increasingly throwaway society where resources are extracted, transported, and manufactured, all for them to be thrown away. We have actual chips and microprocessors, rechargeable lithium batteries, and sensors in “disposable” vape pens. It’s incredible the level of waste we see with older technology being sent to scrap yards to be melted down. When these machines work perfectly fine, all they might need is a different part or a new operating system. But it’s profitable to just destroy it.
We can’t keep doing this and we have to do whatever we can to change how these systems work from a fundamental level. From the design, the actual raw materials needed, the way they are manufactured and produced, how they are transported, and how they are decommissioned.
Permacomputing, Chip Stewards, and changing our conceptions of high technology
Just as we tend to the earth and help create rich and biodiverse ecosystems to help remediate the damage we have done. By moving away from traditional - profit driven - agricultural practices to indigenous-driven, bio-diverse permaculture practices, we too should look at other resources in the lens of stewardship.
It’s our responsibility to take into account the massive amount of technology around us. And to become not only land stewards, but chip and technology stewards as well. Stop the extractive processes and methods, and reuse and repurpose what is already out in the world. From there we can change how things are designed, their materials, their use to create technology that doesn’t destroy the planet, and is used to actually help humanity, not help profits.
What is permacomputing? Sourced from permacomputing.net
Permacomputing is a more sustainable approach to computer and network technology inspired by permaculture. Permacomputing is both a concept and a community of practice oriented around issues of resilience and regenerativity in digital technology.
In a time where computing epitomizes industrial waste, permacomputing encourages a more sustainable approach, maximizing hardware lifespans, minimizing energy use and focussing on the use of already available computational resources. We do this because humans are part of nature and technology is an extension of humans, and we acknowledge that technology has been used to harm nature. We want to find out how we can practice good relations with the Earth by learning from ecological systems to leverage and re-center existing technologies and practices. We are also interested in investigating what a permacomputing way of life could be, and what sort of transformative computational culture and aesthetics it could bring forward.
The path forward is both a fight against corporations and against the waste they have produced. It will require one one hand, a push back against their practices while also acknowledging that more than likely - they won’t give a shit about what we have to say. We can shout online all we want but there needs to be both a concentrated social and political effort to say to corporations - “You can’t produce computers then make them EOL after a couple years and basically brick them”. We can make them listen through a couple tactics, one way is protesting. But that will only get us so far. We need direct action, and because we have to simultaneously work within capitalism while also subverting it, we have to hit them in multiple ways.
Hitting their profits will force them to listen, we can do that by not just boycotting their bullshit but also making an alternative system. This is the prospect of dual power, building the world we want to see both within and outside of the current system. To hit their profit motives we make DIY computing, permacomuting, reusing old laptops and desktops into a socially accepted - and widely liked activity. Make hacking and tinkering not only cool - but the standard. Woah, you’re buying a brand new computer? Dude, I can give you one totally for free, that will work just as well from one I found on the street!
We find any and all technology, remake it, reuse it and give it out for free. We cut the profits of these large corporations by taking their waste and diverting it from polluting our environment and instead using it to give people more access to information. Free information networks and access to these networks where people can get access to everything they need for free. Even making our own community networks decoupled from the corporate control of internet service providers.
But it’s not just about having that decommodified alternative, but also thinking about the future. How can we fundamentally change the supply chain, design, and manufacturing of future technology? We can design everything to be interoperable and modular in a way that parts produced can work in other applications. We can use common design standards like a digital version of open structures. They are proposing an open standard to produce goods that can work together, are interoperable, and can be infinitely reused and remixed.
We can play around with different techniques and methods of manufacturing, if the main goal isn’t profit we can instead focus on making things that have positive impacts to humans and as little impact to the ecosystem as possible. We can reinvent the material science used in things like PCB manufacturing. Instead of needing to mine for the resources to make new PCB boards what if we used natural materials, like reinforced mycelium blocks to create strong and naturally created materials to act as a base? What if we directly reused things considered “trash” into new things.
A very influential experimenter to not only my work but many others is trash_robot who has also been working with trash, and doing different forms of permacomputing.
That material is made of cardboard, which can be soldered underneath to create circuit boards like they were made in the early days of computing. But imagine if we were able to say use mycelium to “grow” new boards, and implant traces into them to create fully organic computers with way less mineral and resource requirements than are required now? This is being done through some pioneering work of Andrew Adamatzky who is working on making fungal computers.
Imagine taking production and all people actually owning the means to produce, repair and remix technology. PCB manufacturing no long has to mine rare earth minerals in the congo with basically slave labor - ship those resources across the world for them to be used in manufacturing - then shipped again and again through the entire supply chain. A supply chain that runs on fossil fuels. What if instead, we localized production in the places where they are needed. We can produce new technology using new and novel methods of manufacturing that have less of an impact on the environment, without the need to ship them across the ocean.
These ideas intersect with social, political, and economic change. We can get back to truly innovating instead of building the same shit for profit. We can change not only how we interact with technology but each other.
Appropriate Technology and Convivial Tech
This isn’t to say that we need high tech solutions for everything. In some situations these things don’t make sense, and making a low tech alternative may be more viable. Less energy needed, less of a chance for things to break, easier to maintain. We have to find a balance in our use of technology. Even if we can liberate technology and use it for it’s truly revolutionary potential, we have to be careful not to think high-tech solutions apply across the board.
With that comes the need to let all people join in on the designs of systems, the people who will be using them having a say in how they work. There is a certain sense of conviviality to it, these technologies will be shaped by local cultures and local environments. And so we might see computing look very similar, maybe using a common production design to make them interoperable, but also entirely different, all of it able to work together but all of it being unique to the people who produce them.
Fantastic post, I knew the education and work sector blew through these devices but I had no idea how easy it was to find them cheap and refurbished. I just picked one up for my fiancée as a work machine and one for myself to toss Ubuntu on. I’m really glad I received your email today, made my day. Cheers
Do you need to put the WP screw back in aftewards to secure the circuit board?
Or add a plastic washer?