The latest iteration of Raspberry Pi OS, based on Debian 11 “Bullseye,” is finally here. Approximately every two years, Debian releases a new stable version of its operating system. Raspberry Pi OS is based on Debian. The developers release a new version every time Debian gets an LTS release. The latest update is here and packed full of useful changes.
Switch to GTK+3
All Linux applications, along with the desktop, now utilize the updated GTK+3 user interface toolkit. Apps use GTK+ software to draw certain components, such as buttons and menus. And the move away from version two means a more uniform look and feel across the OS.
While the switch is a major change, the developers have sought to make interfaces appear as familiar as possible. So the transition shouldn’t be too jarring to anyone used to the old style.
New Window Manager
Rather than drawing items individually, Raspberry Pi OS 11’s new compositing window manager; mutter draws all windows into memory to form a complete image of the screen. It then sends the whole image to the display hardware. This bigger-picture approach makes employing more advanced window effects, such as animations and shading, possible.
Due to the feature requiring a high amount of resources to run smoothly. Raspberry Pis configured with less than 2GB of RAM will use the previous window manager, Openbox.
Integrated Notification System
Raspberry Pi OS Bullseye now includes a notification manager in the taskbar, which the OS and other applications can utilize. You’ll see notifications displayed in the top right corner of the screen. Each alert will clear automatically after 15 seconds by default.
Alternatively, you can manually remove a notification by clicking on the appropriate window. You can also configure the timer length in Panel Preferences; and setting a value of zero will cause notifications to remain until dismissed.
The new updater plugin utilizes the notification system to alert you when new updates are available. Included in the taskbar; the plugin provides a quicker and more user-friendly way to install updates without needing to use a terminal window.
When you boot your Raspberry Pi, the plugin checks for updates and notifies you if any are available. You can then click the taskbar icon to install or view a list of available software.
Simplified File Manager
In the new Raspberry Pi OS Bullseye release, the developers have cleaned up the file manager’s view options. To include only icon and list views. They’ve removed the thumbnail button, which you can now find in the View menu if required.
If you need to modify icon sizes further, you can do so using the Zoom options; also found in the View menu.
KMS Video Driver as Standard
The OS has moved from its closed-source Raspberry Pi-specific video driver and adopted Kernel Mode Setting (KMS). KMS controls the display connection. Switching to the standardized method means developers no longer need to design apps specifically for Raspberry Pi; if the software requires access to the display.
Raspberry Pi Cameras with Bullseye
The traditional raspistill and raspicam camera commands have been replaced by a new set of open source tools. Aimed at taking full advantage of all official Raspberry Pi cameras. Libcamera is a Linux, Android, and ChromeOS supported library. It was first provided to the Raspberry Pi through an older Raspberry Pi operating system. But has gained popularity as a result of improvements made to Bullseye. The program provides a set of easy-to-use tools for adjusting a variety of camera settings; aperture, color balance, and exposure; through a sequence of switches that are activated when the command is delivered.
The first step in any coding project is “Hello world”. And libcamera comes with its own in the form of libcamera-hello. We will use this command to make sure our camera is working.
1. Open a terminal and enter the command to start the camera. A preview window will appear for five seconds, before closing.
2. Run the command again; but this time we will use a switch (argument) to force the preview window to stay open. To close the window, click the X or press CTRL + C. Using the preview window in this way; gives Raspberry Pi HQ camera users enough time to adjust the aperture and focus of the lens before take any picture.
libcamera-hello -t 0
The camera works but how do we capture an image? To quickly capture an image, we can use libcamera-jpeg. This tool is a simple “point and shoot” camera.
3. Open a terminal and enter the command To start the camera, take a photo and save it as test.jpg.
libcamera-jpeg -o test.jpg
4. Use the following options to take a photo. Called test1080.jpg with a preview delay of five seconds and an image size of 1920 x 1080. Note that the -t time is specified in milliseconds.
libcamera-jpeg -o test1080.jpg -t 5000 –width 1920 –height 1
Vulkan 1.1 support
The Raspberry Pi Foundation has introduced Vulkan 1.1 compliance to the Raspberry Pi 4 family of single-board computers (SBCs). Support for Vulkan 1.1.1 brings about a noticeable GPU performance uplift for the already powerful SBCs.
It took the Pi Foundation almost a year to develop a Vulkan 1.0 compliant driver for the Pi 4, Pi 400 and the Compute Module 4. While this may sound like an incremental upgrade. The Pi Foundation promises that it delivers worthwhile performance improvements in some applications.
While many GPUs are conformant, the Raspberry Pi 4 is only joined by a couple of complete platforms. Including several NVIDIA Jetson modules (Vulkan 1.2), and possibly some Intel and Google platforms shown as “Confidential” at this time. Note that Vulkan 1.1 conformance was achieved with Raspberry Pi OS Aarch64, i.e. 64-bit Arm, so it’s unclear whether the 32-bit version of the OS will be also be supported.
While not the latest version of the API – 1.2 became available in January 2020 and is still being refined – it’s an important step forward, as it brings better compatibility with DirectX 12 for Vulkan, gives it multi-GPU support at the API level (potentially good for those using Pi clusters) and supports ray-tracing, geometry shaders, and advanced GPU compute functionality.
The performance improvements vary a lot depending on the game and settings with vkQuake getting a 5% boost, Quake3e close to 20%, and Unreal Engine 4 around 25% with low-quality settings and up to a little over 60% for high-quality settings which produce pretty nice results.
Before you get too excited about Unreal Engine 4 games on Raspberry Pi 4, I should note that UE4 is quite expensive and performance is still not good enough for gameplay.
Finally, they also improved support for RenderDoc and GFXReconstruct, which are fantastic tools for Vulkan developers:
They are very excited to continue improving Vulkan support for Raspberry Pi devices in the future, so stay tuned for future news!