Improve your AI-powered IoT development toolchain at "AI-Ready IoT" on June 24th

Blues Developers
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
Button IconHelp
Notehub StatusVisit our Forum
Button IconSign In
Sign In
Sign In
What’s New
Resources
Blog
Technical articles for developers
Newsletter
The monthly Blues developer newsletter
Terminal
Connect to a Notecard in your browser
Developer Certification
Get certified on wireless connectivity with Blues
Webinars
Listing of Blues technical webinars
Blues.comNotehub.io
Shop
Docs
homechevron_rightBlogchevron_rightThe Idiot-Proof Guide to Upgrading Raspberry Pi from Buster to Bullseye

The Idiot-Proof Guide to Upgrading Raspberry Pi from Buster to Bullseye

The Idiot-Proof Guide to Upgrading Raspberry Pi from Buster to Bullseye banner

May 10, 2023

Learn how to perform an in-place upgrade of your Raspberry Pi OS from Buster to Bullseye.

  • Raspberry Pi
Rob Lauer
Rob LauerSenior Director of Developer Relations
email

A couple of weeks 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.

New to Blues?

Learn what we do in this 3-minute video that walks you through how we simplify wireless connectivity.

Learn what we do in this 3-minute video that walks you through how we simplify wireless connectivity.

A New Raspberry Pi OS?

You heard that right, a new version of Raspberry Pi OS (codenamed Bullseye 🎯) was released a few weeks ago. It's based upon Debian 11 and on the right hardware can provide a significant speed boost with certain tasks. There are numerous updates and enhancements to be found in Bullseye, not the least of which include:

  • An updated PiCamera driver (which will require re-writing your code BTW);
  • Replacing GTK+2 with GTK+3 to provide an improved GUI;
  • Using Mutter instead of Openbox for window management (if your Pi has >= 2GB of RAM);
  • A fresh new notification manager in the taskbar;
  • A better updating experience for installed packages;
  • An update to the Chromium browser (v92), which supports hardware-accelerated video playback.

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.

Upgrading Caveats

Before you begin, I can't stress enough that the best (and frankly, 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 backup your files anyway and buckle up for the ride.

warning

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!

Step-by-Step Installation of Bullseye

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.

  1. Open your Raspberry Pi terminal and update the repository lists:

    $ sudo apt update
  2. Install all of the latest packages (and their dependencies):

    $ sudo apt full-upgrade
  3. Reboot your Pi to activate any packages that require a reboot:

    $ sudo reboot
  4. Optional, if you like to live on the edge! Update to the latest version of the Raspberry Pi firmware :

    $ sudo rpi-update

    Another reboot may be necessary after updating your firmware.

  5. Next, edit your sources.list file to switch your repository list from Buster to Bullseye:

    $ sudo nano /etc/apt/sources.list

    Locate the following line and change buster to bullseye:

    deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

    Save your changes and proceed to the next step.

  6. Update your repository lists again (this time it will be using the Bullseye-specific repositories):

    $ sudo apt update
  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.

    $ sudo apt install nodejs

    Note that you may receive a prompt to "Restart services during package upgrades without asking". If so, choose "Yes".

  8. Update to the latest version of GCC 8 (this also helps avoid an error in the next step).

    $ sudo apt install gcc-8-base
  9. Run another full upgrade to install any additional Bullseye requirements and downstream dependencies:

    $ sudo apt full-upgrade

    NOTE: It's at this point your Wi-Fi may go out! We'll fix that in a bit.

  10. Clean up your packages to remove any that are obsolete or no longer used:

    $ sudo apt autoclean
    $ sudo apt autoremove
  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!

    $ sudo sed -i 's/dtoverlay=vc4-fkms-v3d/#dtoverlay=vc4-fkms-v3d/g' /boot/config.txt
    $ sudo sed -i 's/\[all\]/\[all\]\ndtoverlay=vc4-kms-v3d/' /boot/config.txt
  12. When you're all done, reboot your Pi:

    $ sudo reboot
  13. After a reboot, check to see if everything was updated properly:

    $ cat /etc/os-release

    This should return the following:

    PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
    NAME="Raspbian GNU/Linux"
    VERSION_ID="11"
    VERSION="11 (bullseye)"
    VERSION_CODENAME=bullseye
    ID=raspbian
    ID_LIKE=debian
    HOME_URL="http://www.raspbian.org/"
    SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
    BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Wi-Fi Not Working?

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 "autoconnect".

If any wireless or network panels are missing from the taskbar, you can re-add those by right-clicking on the taskbar, choosing "Add/Remove Panel Items", then adding the appropriate panels.

If those suggestions didn't work, consult some forum threads here and here that may help.

Great Success...?

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 .

Next Steps

If you're looking for a way to add swappable Cellular, LoRa, and Wi-Fi to your Raspberry Pi, take a look at the Blues Notecard and the Blues Notecarrier Pi HAT .

raspberry pi notecarrier and blues notecard

The cellular Notecards provide 500MB of prepaid data and 10 years of global service. These are commonly used in edge deployments of Raspberry Pis that don't have access to reliable Wi-Fi connectivity (think along the lines of robust Edge AI/ML applications).

Happy Hacking on the Pi! 👩‍💻

In This Article

  • A New Raspberry Pi OS?
  • Upgrading Caveats
  • Step-by-Step Installation of Bullseye
  • Wi-Fi Not Working?
  • Great Success...?
  • Next Steps

Blues Developer News

The latest IoT news for developers, delivered right to your inbox.

Comments

Join the conversation for this article on our Community Forum

Blues Developer Newsletter

The latest IoT news for developers, delivered right to your inbox.

© 2025 Blues Inc.
© 2025 Blues Inc.
TermsPrivacy
Notecard Disconnected
Having trouble connecting?

Try changing your USB cable as some cables do not support transferring data. If that does not solve your problem, contact us at support@blues.com and we will get you set up with another tool to communicate with the Notecard.

Advanced Usage

The help command gives more info.

Connect a Notecard
Use USB to connect and start issuing requests from the browser.
Try Notecard Simulator
Experiment with Notecard's latest firmware on a Simulator assigned to your free Notehub account.

Don't have an account? Sign up