The download link for the new version is:https://www.raspberrypi.com/software/operating-systems/
Version Notes | 2023-10-10
-
Based on Debian Bookworm version
-
Supports Raspberry Pi 5
-
On Raspberry Pi 4 and 5 platforms, the desktop can now run on Wayfire Wayland composite window manager; on older platforms, it can run on X11 using Openbox window manager
-
When running Wayland, the new wf-panel-pi application replaces lxpanel; migrate existing lxpanel plugins; add GPU performance and power plugins
-
Modified pcmanfm to use Wayland backend when running on Wayland
-
Uses PipeWire instead of PulseAudio as the audio control subsystem; various modifications to volume control plugins to support this subsystem
-
Uses NetworkManager instead of dhcpcd as the network interface; various modifications to network plugins to support this feature
-
Adds Firefox browser as an alternative to Chromium; adds a default browser selection in the Raspberry Pi configuration tool
-
When running on Wayland, uses WayVNC VNC server instead of RealVNC
-
Modifies all custom and configuration applications to customize the Wayfire environment as needed
-
When running on Wayland, uses grim instead of scrot as a screenshot tool
-
Uses eom image viewer instead of gpicview
-
Uses evince document viewer instead of qpdfview
-
Chromium web browser updated to version 116
-
VLC media player updated to version 3.0.18
-
Magnifier program is not available when running on Wayland; Wayfire includes screen scaling functionality
-
Removed CustomPC and Wireframe from the bookshelf
-
Numerous minor changes and bug fixes
-
Transitioned from raspberrypi-kernel to Debian-based kernel packaging (linux-image-rpi-*)
-
Transitioned from raspberrypi-bootloader to Debian-based firmware packaging (raspi-firmware)
-
Moved /boot mount point to /boot/firmware
Introduction
This year is an odd year, so a new major Debian release is out, and we are now releasing the corresponding version of Raspberry Pi OS.This year’s Debian version is called “Bookworm”. (As you might know, Debian releases are named after characters from Disney/Pixar’s Toy Story series. Bookworm is a minor character from Toy Story 3).So, what’s new in “Bookworm”?Well, not much… but almost everything.Let me explain.
Debian Bookworm itself is mainly an incremental update to the previous Debian Bullseye software.There are some minor changes, but they mostly won’t affect Raspberry Pi users.So, Bookworm itself doesn’t bring many changes.However, over the past year or so, we have been making some significant architectural changes to Raspberry Pi Desktop, which will debut in the Bookworm version.This is where you might notice some differences.
1. Wayland
The most important of these is the switch to Wayland instead of X11 as the display system.
For the past 35 years or so, most Unix desktop environments, including Raspberry Pi Desktop, have been based on the X11 window system. However, it is no surprise that X11 has various limitations when used on modern computers, given that it is software that has been around for decades. To address these issues, most Linux distributions have begun using Wayland; those that have not are also planning to use it in the future.
The main advantage of Wayland is performance. Under X11, drawing windows requires two separate applications. The display server is responsible for creating windows on the screen and providing locations for applications to draw content; the window manager is responsible for locating the relative positions of windows and decorating them with title bars and frames. In a Wayland system, these two functions are combined into a single application called a compositor, so applications only need to communicate with one function instead of two to draw windows.
This also brings security advantages.Because under X11, all applications communicate with the display server, and this communication is two-way, all applications can exchange information with each other.Under Wayland, all applications are isolated from each other at the compositor level, so no application can see what other applications are doing.
Wayland itself is just a protocol.To use it, you need a compositor that supports Wayland.In previously released Raspberry Pi OS, we were using the Mutter window manager, which can act as a Wayland compositor.But it turned out to be a poor choice;it was relatively slow, cumbersome, and a bit outdated, which is why we only offered Wayland support experimentally in Bullseye.
For Bookworm, we are using a compositor called Wayfire.It uses a standard Wayland library called wlroots, which is used by several modern Wayland compositors.Since Wayfire runs better as a Wayland compositor on Raspberry Pi than Mutter, Wayland is now the default running mode for the desktop.(But one thing to note–currently, Wayland is only the default operating mode on Raspberry Pi 4 and 5.Wayfire’s performance on earlier platforms is still being optimized, so for now, they will continue to run the old X11 display server and Openbox window manager, but those platforms will switch to Wayfire at some point).
If you boot Raspberry Pi OS on a Pi 4 or Pi 5 now, you will see the Wayfire desktop.It should look basically the same as the Bullseye desktop you are used to, but appearances can be deceptive–it takes a lot of work to make two desktop environments look the same!
There is still a taskbar at the top of the screen, allowing you to launch applications and see the status of various systems, but this is a brand new application.In Bullseye, this was an application called lxpanel, but it has now been replaced by wf-panel-pi (short for “Wayfire panel for Raspberry Pi”).
It is based on wf-shell (a panel application example provided by the Wayfire author), but we have made extensive modifications to make it look and work similarly to lxpanel.The largest part of this work was porting all existing lxpanel plugins (icons controlling volume, network, Bluetooth, etc.) to now run on wf-panel-pi.
The desktop background itself is still drawn by the old version of the pcmanfm file manager used under the Bullseye system, but it has been modified to use Wayland as the display protocol instead of X11, so it is now a native Wayland application.
How various applications run in the Wayland environment depends on how they were written.Standard graphical toolkits like GTK and Qt now comply with the Wayland standard–they can detect whether applications using these toolkits are running in a Wayland environment and then route all graphical calls via the Wayland protocol, running as native Wayland applications.As part of Raspberry Pi Desktop, most pre-installed applications use one of these toolkits, so they can now run as Wayland applications.
A few applications use toolkits that are not compatible with Wayland or completely bypass the toolkit by directly calling X11.While these applications may seem unable to run on Wayland, we have a way to address this.Our Wayland implementation includes a piece of software called XWayland, which is an X11 display server sitting on top of Wayland.It handles all non-graphical parts of X itself and passes the graphical parts to the underlying Wayland implementation.XWayland is designed to automatically start whenever an application requests anything from X, so everything can run seamlessly.
That’s Wayland.Basically, everything you see on the desktop is now drawn completely differently than it was under Bullseye, but if I’ve done my job right, you shouldn’t notice any obvious differences!One thing you might notice is that Wayland allows us to add some eye-catching elements;windows now have subtle shadows, and their opening and closing have animations, rather than just appearing and disappearing.
We’ve also added several new plugins.The “Power” plugin is enabled by default and can monitor power issues such as low power voltage or excessive USB current.If either of these situations occurs, the system will display a notification to let you know what’s happening, and then show an icon on the taskbar–clicking that icon will take you to a webpage with more information about the issue and possible solutions.
The other new plugin is “GPU”, which can display a load graph of the Raspberry Pi GPU, similar to the CPU load graph displayed by the existing CPU plugin.This plugin is not enabled by default, but can be added by right-clicking the taskbar and selecting “Add/Remove Plugins”.
As mentioned above, the work on Wayland/Wayfire is ongoing–we are still optimizing for earlier models of Raspberry Pi hardware, and hope to roll out the Wayland desktop experience for all models of Raspberry Pi at the appropriate time.
2. PipeWire
So, we changed how all graphics are drawn. At the same time, we also changed how sound is controlled.
Initially, the desktop communicated with audio hardware using the Linux ALSA sound interface. While this was effective, it was very primitive and had many limitations. A few years ago, we switched to the PulseAudio interface, which sits on top of the low-level ALSA layer. This added more flexibility: it made managing Bluetooth audio devices easier, allowed audio from multiple applications to be mixed together, and allowed easy switching of audio between different outputs while playing.
In this release, PulseAudio has been replaced with the updated PipeWire audio system. This system builds on the capabilities provided by PulseAudio, most importantly providing better support for video audio. It reduces latency, which is important in many applications. It manages Bluetooth audio devices better, remembering devices that were in use when powered off and automatically reconnecting them at startup. Finally, it works better in the more secure Wayland environment, where applications are isolated from each other.
From a user perspective, PipeWire can be controlled by any application that controls PulseAudio, so the volume and microphone control features on the taskbar are exactly the same as those for PulseAudio, but in Bookworm, they are talking to PipeWire instead of PulseAudio.
3. Networking
What else is new besides graphics and sound?
During the Bullseye period, we introduced the use of the NetworkManager network controller as an option that could be selected in raspi-config.Now, NetworkManager has become the standard mechanism for network control in most Linux distributions and is the default network controller for Bookworm, replacing the previous dhcpcd system.NetworkManager has the same functionality as dhcpcd but adds many additional features, including connecting to hidden wireless networks, connecting to virtual private networks (VPNs), and using the Raspberry Pi as a wireless hotspot.It also includes more customization options for users who want to fine-tune their network connections.
The network plugin on the taskbar is almost identical to the plugin that controlled dhcpcd in Bullseye, but with the addition of an “Advanced Options” item at the bottom, allowing you to access the new features provided by NetworkManager.
4. Firefox
Another major change is that we now offer a second browser option with the release of a Raspberry Pi-optimized version of Mozilla Firefox.
This is our first official support for Firefox–previously only the old version provided by Debian was available, and now we have done a lot of work to ensure the best experience when running the latest version of Firefox on Raspberry Pi.We worked closely with Mozilla and the Firefox community to contribute our work upstream, benefiting Firefox users on all platforms.
One of the key features is enabling V4L2 codec support, so Firefox can take advantage of the hardware h.264 decoder on Raspberry Pi.This greatly improves performance on older models of Raspberry Pi and reduces CPU load when playing high-definition videos.We enabled support for Widevine DRM, which is used by many video streaming services, and we also optimized graphics to improve performance across a range of websites on low-power devices.In terms of video calls, we ensured that Firefox on Raspberry Pi OS works out of the box with CSI cameras (using libcamera) and desktop sharing on Wayland.
5. Documentation
As you might expect, such a huge change has had a significant impact on our documentation, and the documentation team has been working behind the scenes to ensure that the documentation reflects the new state of the world.Especially some things I haven’t had time to mention here, such as changes to how Python modules are installed.
This is a huge task, with a lot of changes across the entire documentation stack, so if you find that the documentation for Bookworm is not updated, please raise an issue on the documentation repo!
6. What’s missing?
While we have tried to keep such issues to a minimum, there are still some features that cannot be implemented in this version.
Compensating for displays that have used scanning features under Wayland is tricky, and we have not fully accomplished this yet, so this feature is temporarily removed. Most displays do not require it now, but we will restore it once we figure out the best way to do so!The system tray–the area on the taskbar where applications can place icons–must use an entirely new mechanism to work with Wayland’s security model.This means that some applications may need to be updated to display their icons in the system tray.
Similarly, Wayland’s security model also prevents traditional remote desktop access, so we are using a new VNC server called wayvnc to replace RealVNC.In terms of client programs that can connect to it, it has a few more restrictions–we have had good results with the TigerVNC client, please click here.
Currently, the RealVNC server itself also has defects, and Bookworm still uses it for older Raspberry Pi models that do not run Wayland. The 64-bit version works fine, but the 32-bit version is currently incompatible with Bookworm, and we are waiting for an update from RealVNC. In the meantime, if you need remote desktop access on Raspberry Pi Zero, 1, 2, or 3, we recommend temporarily using Bullseye.
Some programs have been removed from the recommended software and full image:
The SenseHAT emulator is currently incompatible with Bookworm–we are working to resolve this issue and hope to restore it in a few weeks.
The magnifier assistive tool is incompatible with Wayfire, but Wayfire has its own (better) magnifier built-in–just click ctrl-alt-M to toggle it on or off.
BlueJ and Greenfoot Java IDEs are incompatible with Wayland, and Sonic Pi is incompatible with PipeWire, all of which are third-party programs, so they have been removed until developers update them.