The Idiot-Proof Guide to Upgrading Raspberry Pi from Buster to Bullseye
BluesBlues
A few months ago, I enjoyed a very traditional Thanksgiving at home: I spent the day avoiding my extended family and proceeded to upgrade my home computers to their latest OS versions! While migrating to macOS 12 Monterey and Windows 11 were relatively painless point-and-click procedures, upgrading my Raspberry Pi 4 Model B single-board computer from the Buster release to Bullseye involved a few extra steps. I’ll admit the difficulty of this process was exacerbated by the fact that I wanted to perform an in-place upgrade to maintain all previously installed packages and stored files.
Learn how to perform an in-place upgrade of your Raspberry Pi OS from Buster to Bullseye.
You heard that right, a new version of Raspberry Pi OS (codenamed Bullseye) was released. It’s based upon Debian 11, and with the proper hardware, can provide a significant speed boost with specific tasks. There are numerous updates and enhancements to be found in Bullseye, not the least of which include:
For a complete list of Raspberry Pi Bullseye updates, consult this article from the folks at Raspberry Pi.
This new release of Raspberry Pi OS does technically work with any Raspberry Pi SBC (yes, including the Raspberry Pi Zero). However, unless you need features from Bullseye specifically, you might want to stay on your current release. Owners of a “4.x” Raspberry Pi (e.g., the Raspberry Pi 4, Compute Module 4, or the Raspberry Pi 400) will likely choose to upgrade regardless.
Before you begin, I can’t stress enough that the best, and frankly most supported, way to upgrade to Bullseye is to backup all of your critical files and perform a clean install using the Raspberry Pi Imager; however, if you’re like me and choose to live dangerously, be sure to back up your files any way and buckle up for the ride.
Please be aware that the following process is not officially supported AND may temporarily disable Wi-Fi (see the note below) or lead to other unintended issues. Backup any critical files on your RPi before proceeding!
Disclaimers aside (did you read the warning above?), here is a step-by-step set of steps for you to upgrade from Buster to Bullseye via the Raspberry Pi terminal.
2. Install all of the latest packages (and their dependencies):
3. Reboot your Pi to activate any packages that require a reboot:
4. Optional if you like to live on the edge! Update to the latest version of the Raspberry Pi firmware:
Another reboot may be necessary after updating your firmware.
sources.list
 file to switch your repository list from Buster to Bullseye:Locate the following line and change buster
 to bullseye
:
Save your changes and proceed to the next step.
7. Install the latest version of Node.js (this helps avoid an error you may receive when running apt full-upgrade
 in step 9). This step may take several minutes.
Note that you may receive a prompt to “Restart services during package upgrades without asking.” If so, choose “Yes.”
9. Run another complete upgrade to install any additional Bullseye requirements and downstream dependencies:
NOTE: It’s at this point your Wi-Fi may go out! We’ll fix that in a bit.
11. Next, you need to alter your /boot/config.txt
 file to enable KMS (the new standard video driver). This is done by default with a clean install, but our upgrade process requires this change to be performed manually. Thanks to Linux Uprising for this tip!
12. When you’re all done, reboot your Pi:
13. After a reboot, check to see if everything was properly updated:
This should return the following:
To reclaim your Wi-Fi, go to “Preferences” –> “Connman Settings” –> “Wireless” and then click on the SSID to which you want to connect. You may also want to click the ⚙️ icon next to the SSID and enable “auto-connect”.
If any wireless or network panels are missing from the taskbar, you can auto-connect those by right-clicking on the taskbar, choosing “Add/Remove Panel Items”, then adding the appropriate panels.
It should be stated again here, at the end when you’ve already made the mistake of performing an in-place upgrade that this process is not officially supported by Raspberry Pi. Rather the supported upgrade path is a clean installation of Bullseye using the Raspberry Pi Imager.
Happy Hacking on the Pi!
The Most Comprehensive IoT Newsletter for Enterprises
Showcasing the highest-quality content, resources, news, and insights from the world of the Internet of Things. Subscribe to remain informed and up-to-date.
New Podcast Episode
Related Articles