August 06, 2019
With the release of the 5.2 Linux kernel, you might have noticed that Collabora has done a lot of work with Rockchip's RK3399 platform, more specifically with the ROCK Pi 4 single-board computer.
Our ongoing work on the reverse-engineered Panfrost OpenGL ES driver for Arm Mali GPUs turns the RK3399 SoC into a very attractive platform to try out Wayland on ARM devices, especially since it's such a versatile platform that is both affordable to buy and is available in multiple form factors, including system-on-module (SoM) and single-board computer (SBC).
Collabora has been steadily contributing to enabling RK3399 support (among many others!) in upstream u-boot. Some of the most notable contributions include:
For the 5.2 release cycle Collaborans focused on optimizing various subsystems such as the Panfrost DRM driver for Arm Mali T6xx/T7xx/T8xx GPUs used in a huge number of platforms, and a V4L2 driver for the Hantro G1 video codec used in RK3288 and RK3399 devices, as well as NXP i.MX8M and Microchip SAMA5D4.
We have also put work into better supporting Rockchip's display controller within its atomic kernel modesetting (KMS) driver.
You can find more information about these contributions here.
We'll also be focusing on the V4L2 contributions in a separate blog post in the future.
A lot of work has been put into shaping up Panfrost leading to GNOME running on the RK3399. Alyssa recently blogged about it over here.
I'm pleased to announce that I also have Plasma running on Panfrost. With two of the biggest Desktop Environments running on Panfrost, Panfrost is maturing to be a great way to run an open source graphics stack on the RK3399 platform very quickly.
Over the course of the past couple of months, in order to iterate quickly, we've had to come up with a way to quickly deploy images and builds.
Collabora has developed debos, a very versatile tool which allows you to compose custom builds based on Debian in a composable and reproducible way. Debos allows you to take a Debian base, add particular 'overlay' software packages, combine those with a board-support package, and finally generate images which can be flashed directly to a device. Since we wanted more recent builds of u-boot, Linux, and Mesa than what is yet available in Debian, we've chosen to build those ourselves.
In order build all of these, we've used GitLab's excellent CI infrastructure, as used for Mesa upstream, and you can find all the relevant builds over here.
The kernel and Mesa builds can be reused across boards, so in order to enable more RK3399 boards one would only need to build the relevant u-boot binaries and point to the correct Device Tree file.
We've also written a debos recipe for the ROCK Pi that puts all of these builds together on top of a Debian Testing base here.
You can build images locally like so :
git clone https://gitlab.collabora.com/rockpi/rockpi4 cd rockpi4 docker run --rm --interactive --tty --device /dev/kvm --workdir /recipes --mount "type=bind,source=$(pwd),destination=/recipes" --security-opt label=disable godebos/debos --scratchsize=8G rockpi4.yml
Alternatively, pre-generated images can be downloaded from here.
These images come preloaded with Weston (a minimalist Wayland environment) and Panfrost. On boot you should be logged into a Weston session. You can also customise the images to install KDE Plasma 5 or GNOME as you see fit; both of those will work fine as well. The default username and password for these images is "debian".
A shoutout to Tom Cubie for providing the ROCK Pi 4 boards that made a lot of this possible.
This summer, Christoph Haag and I had the pleasure of taking part in Google Summer of Code as mentors for xrdesktop, the Open Source project…
Earlier this year, from January to April 2021, I worked on adding support for stateless decoders for GStreamer as part of a multimedia internship…
In our previous post, we presented a project backed by INVEST-AI which introduces a multi-stage neural network-based solution. Now let's…
Initiated as a joint effort by the Google Chrome OS team and Collabora, the recent KernelCI hackfest brought the addition of new tests including…
There's a lot that has happened in the world of Zink since my last update, so let's see if I can bring you up to date on the most important…
Panfrost, the open source driver for Arm Mali, now supports OpenGL ES 3.1 on both Midgard (Mali T760 and newer) and Bifrost (Mali G31, G52,…