Raspberry Pi has announced a new release of Raspberry Pi OS based on Debian 12 “Bookworm” upgrading from Debian 11 “Bullseye” which served as the base for the Raspberry Pi operating system since November 2021.
As explained in the announcement, not much changes from the user perspective when switching between Debian 11 and Debian 12 with a lot of changes occurring under the hood plus they also worked on some extra features specific to Raspberry Pi OS.
Wayland on Raspberry Pi OS
The main change is the switch from the legacy X11 window manager to the more modern Wayland system with WayFire compositor that delivers better performance when drawing windows and improved security since it’s not using a server/client implementation.
Note that Wayland is only enabled by default on Raspberry Pi 4 and 5 boards, and earlier and less powerful models still rely on X11 as work is going on to optimize the new window manager for those. The appearance has not really changed apart from the new default wallpaper.
Most programs in Debian are now Wayland-compatible, but for those that still rely on X11, XWayland is used to handle X11 calls and magically make everything work with Wayland. That’s in theory, but in practice, a few things are still broken due to the switch to the new window manager:
- Overscan compensation has not been implemented in Wayland, and it’s not working well yet. If you are using an HDMI display you should not need it, but it’s usually needed for video composite output as the image will be cut.
- The system tray relies on a completely new mechanism to work with Wayland’s security model and some applications may not show up in the system tray as they need to be updated.
- RealVNC won’t work, again due to the Wayland security model preventing traditional remote desktop access, so wayvnc is used instead. The downside is that fewer clients work nicely with it, and the Raspberry Pi team says TigerVNC client is a good option.
- The Magnifier accessibility tool doesn’t work with Wayfire, so the built-in magnifier is used instead. It can be turned on and off with ctrl-alt-M
- BlueJ and Greenfoot Java IDEs are incompatible with Wayland and are removed from Raspberry Pi OS Bookworm
Unrelated to Wayland, there’s also a regression with the RealVNC server itself – still used in Bookworm on older Raspberry Pi models. While the 64-bit version works fine, the 32-bit version is not currently compatible with Bookworm, so people requiring remote desktop access on older SBCs are advised to stick to Raspberry Pi OS Bullseye for now. Work is being done to fix most of those issues.
Two plugins have been added:
- The “Power” plugin to monitor for power supply problems like low power supply voltage or excess USB current. Enabled by default.
- The “GPU” plugin to show a graph of the load on the Raspberry Pi’s GPU. Not enabled by default.
PipeWire for audio
Raspberry Pi OS Bookworm also says farewell to PulseAudio/ALSA sound interface and welcomes the new PipeWire audio sound system which provides better support for audio accompanying video and reduces latency. Bluetooth audio devices are also better managed as PipeWire can remember which ones were in use at power-down and automatically reconnect them at boot. PipeWire also plays better with Wayland’s secure environment than PulseAudio.
As with Wayland, the move to PipeWire breaks at least one program – Sonic Pi – which has been removed from the package repository as a result.
Other notable changes
The NetworkManager is now the default network controller for Bookworm. It does everything dhcpcd did, but adds features such as support for hidden wireless networks and virtual private networks (VPN), and the ability to use a Raspberry Pi as a wireless hotspot.
As a Firefox user myself, I’m happy to report that Firefox has been optimized for the Raspberry Pi and is now offered as a second web browser option in the Bookworm release. Raspberry Pi notably worked on V4L2 codec support to enable H.264 hardware video decoding, enabled support for Widevine DRM, optimized graphics performance, and made sure the CSI cameras would work for video calls on Firefox using libcamera.
Even though it may not be visible to the users, Wayland and PipeWire are huge changes under the hood, and while this has been tested for a few years internally, users still have the option to re-enable the X11/Openbox display system and PulseAudio in the Advanced Settings menu in raspi-config in case something unexpectedly goes wrong.
The Raspberry Pi team recommends people wanting to upgrade from Bullseye to Bookworm by reflashing the microSD card, as modifying the /etc/apt/sources.list to do the upgrade will likely fail and result in data loss. The best way to install the new Raspberry Pi OS Bookworm is with Raspberry Pi Imager, but you can also download one of the 32-bit or 64-bit images manually and flash it with your preferred utility.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Sad to see that they still don’t support upgrading an existing system. Thanks for the coverage, Jean-Luc.
FWIW, I was able to in-place upgrade my pi’s. Granted, my situation is a little unique, they are headless, don’t run a DE, and network boot and run over NFS. But I did a normal sources.list update, dist upgrade, then a pi-update to get the new kernel and everything went fine. I imagine it’s a lot harder problem if you’re running a DE.
Similar. Pi zero2, change the list files and restart (twice, I pushed the wrong button once)
It took a long time of course, but AFAICS it is working OK; it will even export graphics to a Chromebook running Debian bullseye.
This is a test machine, so it does in fact have a DE although boots to command line (I just cloned the SD card).
I might try getting the DE to work (it does fine on bullseye, but I don’t use it much and not at all for its headless cousins)
So I’ll use it to test operation between different machines.
Funny, PipeWire for me just don’t work with multple audio devices (on other OS). I’m unable to switch inputs/outputs on the fly, switch profiles on bluetooth headset. And it still work via the Pulseaudio api in most of apps.