The £25 Raspberry Pi now has fully open-source drivers for its ARM System on a Chip (SoC) — paving the way for new operating systems like the Risc OS and Bell Labs Plan 9 to be brought to the board.
The Raspberry Pi Foundation on Wednesday released previously closed-source graphics libraries under the open-source BSD 3-Clause licence. These graphics libraries allow the board's ARM11 CPU to interact with its VideoCore IV GPU to manipulate 2D and 3D graphics.
The libraries, which include implementations of the OpenGL/ES and OpenVG APIs, are available from the foundation's userland repository on GitHub.
The move means every driver that interacts with the board's ARM CPU is now open source. This will make it easier to port new operating systems to the device — which already runs a range of Linux distributions, including Debian and Arch Linux. It has been welcomed by groups working to port the Risc OS, FreeBSD and Plan9 — the Bell Labs OS named after the movie Plan 9 from Outer Space — to the device.
"It means developers can port those libraries to alternative operating systems," said Alex Bradbury, lead Linux developer for the Raspberry Pi.
"The Raspberry Pi is a really good piece of hardware for demonstrating niche or specialised OS. This will mean they can more easily take advantage of all the capabilities the device has."
The code inside these graphics libraries was previously locked away inside binaries compiled for Linux. This inaccessibility meant the only way for developers to allow an OS other than Linux to manipulate the Pi's graphics using its GPU was to reverse-engineer those libraries and write them from scratch. Now the code is freely available online, it can be modified by developers to allow alternative OSes to utilise the Pi's GPU.
The open-source libraries will also make it easier for the Pi to support alternative windowing systems, such as Wayland. This will allow GPU-accelerated GUI features — for example, compositing of windows.
Broadcom on side
The move to open-source the libraries was only made possible by getting agreement from chip vendor Broadcom, which makes the BCM2835 SoC the Pi is based on.
Broadcom is the first vendor to entirely open-source drivers for an ARM-based multimedia SoC. Bradbury said the Foundation had persuaded Broadcom to open up its drivers by pointing out the benefits of such a move.
"We successfully convinced them that the risk of losing some important IP in this case is very low, and it would make a large number of developers very happy," he said.
The risk of the move revealing proprietary elements of the chip design is low in Broadcom's case, he said, because of the way the hardware and software stack has been designed.
"It's easier for Broadcom to open-source this code due to the architecture of their GPU as the interface between the GPU and CPU is relatively high level, so there's limited secret sauce in the ARM-side stuff that's been opened up," Bradbury said.
He hopes that other vendors selling ARM-based systems will follow in Broadcom's footsteps and open-source their drivers.
"The fact that everything that runs on ARM is now fully open has very good practical benefits, and I hope that other vendors will try and provide those benefits to the community," he said.
Bradbury described the BSD 3-Clause licence as "incredibly permissive". It allows users to modify or distribute the code in any manner they wish, providing they credit the owner.