Qt on PixelBook, Raspberry Pi and Atomic Pi


Niels Mayer will demonstrate mobile Qt development on the Google PixelBook and discuss the Raspberry Pi and Atomic Pi as open-source "IOT" platform for Qt apps running on Raspberry Pi and the Atomic Pi.

The Google Pixelbook now supports running an x86 Linux container as a standard feature, alongside Android containers. This allows qtcreator and Qt to run on the pixelbook just like on the desktop. Alas the current Linux implementation has no support for GL acceleration so only standard GUI apps like qtcreator can run happily in Linux on the Pixelbook (at the moment). However Android apps are fully accelerated. We will discuss Pixelbook as mobile development environment -- in that the developer can be mobile, but also develop and test Android apps with full acceleration and interactivity unlike what you'd see using an emulator. Niels will demonstrate what this looks like and give simple tips needed to setup qtcreator for on-device Android deployment.

The Raspberry Pi is a somewhat crippled platform for graphically intensive (e.g. GL) apps due to its proprietary and not entirely performant or compatible closed-source GPU "blob" delivered with the Raspbian Operating system (aka "Debian Stretch"). This only delivers a working "EGLFS" backend for GL-needing Qt apps. We will demonstrate that on the Raspberry Pi, some Qt-based graphical apps work fine, whereas others don't. Less demanding apps will also run happily on the raspberry pi unaccelerated with the "linuxfb" or "xcb" backends under X windows. Headless operation using the new/experimental "webgl" is also possible -- but doesn't work for more demanding apps due to webgl or compatibility.

In contrast, the Atomic Pi board is kind of unusual; priced similarly to the Raspberry Pi at $37 -- it has a real GPU with full open-source support on Linux. When Niels queried on IRC regarding Raspbery-Pi issues he faced ( https://github.com/QUItCoding/qnanopainter/issues/45 ) Thiago's answer was "get a device with better GL support" . That's where the Atomic Pi wins. Its stock preinstalled operating system is Ubuntu 18.04LTS running Lxde. It has GL support "built in" and working "out of the box" . It runs Qt and GL-based Qt apps exactly like they'd run on a x86 Linux destkop because it is a x86 Linux desktop.

For the Raspberry Pi, we will discuss successful Qt5.12.3 compilation following hints from https://www.tal.org/tutorials/building-qt-512-raspberry-pi as well as going off-script to compile the entire source and all Qt graphics backends: "eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, webgl, xcb" .

For the Atomic Pi you can just install the Qt[masked] open source distribution and qtcreator and have a full (but slow) development environment. You can also just install Qt5.12.3 (or use Qt 5.9 libs supplied with Ubuntu) to provide the Qt libraries for Apps you develop on the desktop -- using the same exact libraries installed on the Atomic Pi. As Qt on the Atomic Pi works just like on the desktop, there's not much to talk about -- so we'll just demo some graphical Qt apps on the Atomic Pi to show they have decent performance.

Both Pi and Pixelbook platforms also have older Qt and qtcreator available prepackaged if your usage of the Qt5.12.3 distribution falls outside of licensing or is not open-source and amenable to GPLv3 strictures. The Atomic Pi, courtesy of Ubuntu[masked] LTS, has built-in Qt "5.9.5+dfsg-0ubuntu2.1" ; the Raspberry Pi, courtesy of Debian 9, has "5.7.1+dfsg-3+rpi1+deb9u1" ; The Pixelbook's Linux is also based on Debian 9 and also has qtcreator and Qt 5.7.1 "built in".