We're hiring!

ROCK Pi and an easy place: Panfrost & Wayland on a Rockchip board

Rohan Garg avatar

Rohan Garg
August 06, 2019

Share this post:

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).

Upstreaming Work


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.

Plasma running on Panfrost

Bringing it all together

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.

Comments (8)

  1. Ikbel BOULABIAR:
    Aug 06, 2019 at 11:11 PM

    Excellent post !
    I asked another "open source" company on what to do to get wayland working on these boards or on cheap Android boxes (X96, arm mali 450 or similar, ...) but got a very rejectful mail after my 3rd mail I've sent and waiting for over a month.

    If you want some of these Android boxes please sent me a mail containing an address and I'll be pleased to send one or more.

    Thanks again for all this work making linux available on arm which opens the way for more usage, specially in low income countries.

    Reply to this comment

    Reply to this comment

    1. Rohan Garg:
      Aug 07, 2019 at 02:24 PM

      Thank you for the feedback & offer, however that Android box runs on Lima, and we're focused on Panfrost right now, so we wouldn't be able to spend any time on it!

      Reply to this comment

      Reply to this comment

  2. Rafał:
    Aug 13, 2019 at 06:27 AM

    Can you share a status of video decoding hardware support, please? Is it supported and/or what formats work?

    Reply to this comment

    Reply to this comment

    1. Rohan Garg:
      Aug 13, 2019 at 05:25 PM

      We'll post news on that very soon, stay tuned!

      Reply to this comment

      Reply to this comment

    2. Eze Garcia:
      Aug 13, 2019 at 10:07 PM

      Hi Rafał,
      MPEG-2 and VP8 decoding is supported on RK3399. We will soon post H264 and VP9. Keep in mind, that this is a stateless codec, which needs a modified Ffmpeg version. Hopefully, we will also be able to merge Ffmpeg, and Gstreamer support for this. However, for the time being, it won't work out of the box.

      Reply to this comment

      Reply to this comment

  3. Michael Sartain:
    Aug 13, 2019 at 10:12 PM

    Does your patches help with this Pine64 laptop by any chance?


    I'm guess it does, but just wanted to check. Might get one if so. Awesome work, btw. Thank you!

    Reply to this comment

    Reply to this comment

    1. Ezequiel Alfredo Garcia:
      Aug 15, 2019 at 01:52 AM

      Sure, RK3399 is supported by our patches. And yes, you should consider buying a Pinebook Pro!

      Reply to this comment

      Reply to this comment

  4. Karen Gates:
    Aug 15, 2019 at 01:49 AM

    First of all, thank you for all the hard work you put into improving the support of rockchip SOCs.
    However, I tried your prebuilt images for rockpi4 and there was no HDMI output and with radxa's official images it does work. Do you guys know how to fix it?

    Reply to this comment

    Reply to this comment

Add a Comment

Allowed tags: <b><i><br>Add a new comment:

Search the newsroom

Latest Blog Posts

ROCK Pi and an easy place: Panfrost & Wayland on a Rockchip board


Ongoing work on the reverse-engineered Panfrost OpenGL ES driver for Arm Mali GPUs has turned the RK3399 SoC into a very attractive platform…

What's new in OpenXR 1.0 & Monado?


As part of its unwavering commitment to open source and open standards, Collabora is proud to be part of bringing the recently-released…

Zink: Summer Update & SIGGRAPH 2019


There's been quite a few updates to Zink, an OpenGL implementation on top of Vulkan, since I last wrote about it. Here's an overview of…

GStreamer in Oslo


A little over a month and a half ago, Collaborans including Aaron Boxer, George Kiagiadakis, Guillaume Desmottes, Stéphane Cerveau and myself…

GNOME meets Panfrost


In my last Panfrost blog post, I announced my internship goal: improve Panfrost to run GNOME3. GNOME is a popular Linux desktop making heavy…

Using dummy-hcd to play with USB gadgets


Dummy_hcd which consists of a software-emulated host controller and a UDC chip. In other words, this means you can play with USB gadgets…

Open Since 2005 logo

We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link.

Collabora Ltd © 2005-2019. All rights reserved. Website sitemap.