At the KDE booth at Embedded Linux Conference Europe in Edinburgh the other week you might have seen the Plasma Mobile shell running on a Raspberry Pi 3, similar to what I presented at Akademy in Vienna. Besides showing the flexibility of Plasma and how nicely the Plasma Mobile shell works on touch screens, this was originally built as a demonstration of the KDE Frameworks 5 Yocto recipes.

Background

Making KF5 easily available to users of Yocto is actually a rather old idea, and considering how popular Qt and Yocto are for user interfaces in embedded systems that makes a lot of sense. Johan Thelin started the work on this in 2014. Things went dormant for a while until this was revived during Akademy in Almería last year. By now we have 74 of the 79 KF5 frameworks available in the meta-kf5 layer.

With the KDE Frameworks being mostly libraries, it’s somewhat hard to test and demonstrate their capabilities though. So, we added another Yocto layer, meta-kde, which contains recipes for the Plasma parts needed for bringing up a basic Plasma Mobile shell.

Status

With the monthly release cycle of KF5, sustainable maintenance has been a key focus. Besides automating the recipe updates as much as possible, getting rid of all patches against KF5 has been a priority. With 5.48.0 we finally achieved that, the KF5 Yocto recipes now use entirely unpatched upstream code. That might seem somewhat obvious, but is far from common in the Yocto world unfortunately.

A frequent reason for needing patches (and also the reason for the majority of KF5 patches resulting from this) is fixing cross-compilation issues. While cross-compilation works reasonably well out of the box for simple libraries, things get a bit more interesting when custom code generation tools get involved (example fixes: syntax-highlighting, Sonnet).

The Yocto build however is now continuously verifying that cross-compilation works for KF5, which other platforms needing this benefit from as well, like Android.

Outlook

There is more to do of course, as the Phabricator workboard shows. This is an interesting playground if you want to understand, explore and tweak every little detail of a Linux-based system, e.g. for minimizing boot time or image size of a Plasma Mobile system.

In case you just want to try Plasma Mobile or do application development for it, there are probably easier ways forward though, Yocto is known to have a rather steep learning curve, which is the price you pay for its flexibility.

If you are interested in KF5 on Yocto or have questions about this, join us on the kde-embedded mailing list.