Introduction
The Arch Linux aarch64 image used to require some fiddling to hit functionality. Now that there is an official Arch pi image for aarch64, I decided to give it a bash.
Development
If cross compiling against this root image, be aware of fully qualified symlinks:
[root@qpi3 ~]# ls -la /lib/libGLESv2.so.2.0.0 lrwxrwxrwx 1 root root 32 Jan 7 03:25 /lib/libGLESv2.so.2.0.0 -> /usr/lib/mesa/libGLESv2.so.2.0.0
which will contaminate your compile with host libs and make your Qt tests barf in a hard to debug fashion. I personally use the symlinks rather than hacking together my own bash scripts.
symlinks -c /lib (turns out symlinks creates broken symlinks when passed a dir which is itself a symlink)
cd /usr/lib && symlinks -cr .
and you are done.
Conclusion
There is not a hell of a lot to relate.
pacman -S qt
qmlscene ~/moo.qml -platform eglfs
where moo.qml is a minimal example, quick qualified that everything was functioning with any effort on my part; Qt applications work out of the box on the framebuffer with full GLES2 acceleration. I grabbed the art application I tend to use my Pi’s for, and after compilation had immediate success. That is, I had complete success for a couple minutes, at which point my app seizes heavily. I am still actively debugging this.
The default Qt plugin is still xcb, so you have to explicitly pass the eglfs platform flag as documented above. Either that or export QT_QPA_PLATFORM=eglfs in your environment to override this default.
TODO
- Verify state of Qt wayland on this image