Type: User Story
Priority: P2: Important
Affects Version/s: None
Fix Version/s: 6.5
Sprint:2021wk04, 2022 wk 40-41 Embedded, 2022 wk 42-43 Embedded, Embedded wk44-45 2022, Embedded wk46-47 2022, Embedded wk48-49 2022
What is the benefit? Why is this valuable?
This ticket covers ready-made support for Raspberry Pi 4 native Debian based Rpi OS. A QBSP file (based on Yocto) for easier Qt Creator integration for getting configurations could be used but using apt-get with a commercial or OSS repo is preferred for a better UX as Raspberry OS is Debian derivative and apt-get is the native way for software installation.
Raspberry pi HW with its default RaspberryOS is a key solution for many community projects and especially popular in AI applicaitons.
There are two related use cases:
- Deploy Qt for Python app to Raspberry PI running RaspberryOS. This works now based on fixes done with Qt for Python and pyside6 and does not require the containerised approach described in this ticket.
- Deploy Qt apps to Raspberry Pi running RaspberryOS. This is the scope of this ticket. Although cross-compilation from host to target device is in principle similar in both Yocto (existing B2Qt concept) and Raspberry OS, for Yocto however there are existing compiler and sysroot packages that make releasing easy. For Raspberry OS the easier path has been to use a Docker container-based toolchain.
What are common use cases?
Community projects with Raspberry OS and AI with Python.
Simplified steps for enabling Qt DC using Raspberry Pi OS 64-bit :
- Take Debianized Qt6 packages, being done for Debian 12 by the new Qt6 Debian maintainers group and by consultant and DA team for Debian 11 (QTBUG-100385)
- Using the containerised toolchain in QTCREATORBUG-22362 - Creator container support should be good enough now - create a container with toolchain including the compiler, Qt binary and sysroot etc needed to cross-compile Debian 11/12-based arm64 Qt 6.2.3 binary for Raspberry Pi HW.
- Create a QBSP for easy setup on Creator side containing (specifically no images in the QBSP, but as already done on B2Qt side creator configuration should allow to specify "build containers" within the Kit description so that qbsp can tell creator, which container to use and set it up):
- installer scripts for setting the package up using the container created in step 2. Qt binaries would be obtained using apt-get and would not be available in the container.
- Instructions on how to get the whole thing working in Raspberry PI4 with Raspberry OS installer
- Place the container in dockerhub: https://hub.docker.com/, or another artifactory such as Jfrog being used in CI cloud.
- Try a simple Qt for Python UI app on top of the installed Qt on Raspberry Pi HW.
Qt DC versus OSS Qt vs EDU licence: The work in this ticket is done for OSS Qt, thus the OSS image cannot contain Commercial only features, such as QDB daemon. Please see the following ticket for details on the related EDU licence https://bugreports.qt.io/browse/QTPMO-1473.
In a similar fashion to the now discontinued Qt DC Add-on model in QTBUG-77799 it should also be possible for commercial customer to add the commercial only missing bits easily using apt-get and commercial Qt repos. If not possible, then we may need both a OSS Qt and Commercial Qt support separately.
Envisioned steps for Developer with the ready package:
1. Install Raspberry OS onto Raspbery Pi4 HW
2. Use apt-get and download and install Qt6 for Debian
3. Download QBSP for Raspberry OS
4. Develop app using Qt
5. Follow instructions and get developed application depoloyed to the Raspberry Pi HW with Creator. The containerised toolchain provides a traditional image that can be deployed to the target HW as before, over QDB (EDU and Commercial licence holders only) or otherwise.