Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-86955

Raspberry Pi 4 (ARM-v8A-32/64bit) with Debian based Raspberry Pi OS and Qt apps

    XMLWordPrintable

Details

    • Linux/Yocto
    • 2021wk04, 2022 wk 40-41 Embedded, 2022 wk 42-43 Embedded, Embedded wk44-45 2022, Embedded wk46-47 2022, Embedded wk48-49 2022, Embedded wk50-51 2022, Embedded wk02-03 2023, Embedded wk06-07 2023, Embedded wk08-09 2023, Embedded wk10-11 2023, Embedded wk12-13 2023, Embedded wk14-15 2023, Embedded wk16-17 2023, Embedded wk18-19 2023, Embedded wk20-21 2023, Embedded wk22-23 2023, Embedded wk24-25 2023, Embedded wk34-35, Embedded wk36-37 2023, Embedded wk38-39 2023, Embedded wk40-41 2023, Embedded wk42-43 2023, Embedded wk44-45 2023, Embedded wk46-47 2023, Embedded wk48-49 2023, Embedded wk50/2023 - wk01/2024, Embedded wk14-15 2024, Embedded wk16-17 2024, Embedded wk18-19 2024, Embedded Linux wk20-21 2024, Embedded wk22-23 2024, Embedded wk26-31 2024, Embedded wk34-35 2024, Embedded wk36-37 2024, Embedded wk38-39 2024, Embedded wk40-41 2024, Embedded wk42-43 2024

    Description

      What is the benefit? Why is this valuable?

      This ticket covers ready-made support for Raspberry Pi 4 native Debian based Rpi OS for C++ Qt applications. 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 Pi OS is Debian derivative and apt-get is the native way for software installation there.

      Raspberry Pi HW with its default Raspberry Pi OS is a key solution for many community projects and especially popular in AI applications.

      There are two related use cases:

      1. Deploy Qt for Python app to Raspberry PI running Raspberry Pi OS. This works now based on fixes done with Qt for Python and pyside6 and does not require the containerised approach described in this ticket. Pyside6 Debian packages are now available on OSS side.
      2. Deploy Qt apps to Raspberry Pi running Raspberry Pi OS. 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 Pi OS, for Yocto however there are existing compiler and sysroot packages that make releasing easy. For Raspberry Pi OS the easier path has been to use a Docker container-based toolchain.

      What are common use cases?

      Community projects with Raspberry Pi OS and AI with Qt apps.

      Technical information

      Simplified steps for enabling Qt DC using Raspberry Pi OS 64-bit :

      1. 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 backports.
      2. 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.
      3. 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) :
        1. 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.
        2. Instructions on how to get the whole thing working in Raspberry PI4 with Raspberry OS installer

      Available docs:
      https://intranet.qt.io/display/QTRD/Raspberry+Pi+OS+Setup+to+Build+and+Run+Qt+for+Python+Applications
      https://intranet.qt.io/display/QTRD/Raspberry+Pi+OS+Setup+to+Build+and+Run+Qt+Applications

      1. Place the container in dockerhub: https://hub.docker.com/, or another artifactory such as Gitlab Docker registry developed in CI cloud.
      2. Try a simple Qt 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.

      -addon licensing model currently paused---
      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 Pi OS onto Raspbery Pi4 HW
      2. Use apt-get and download and install Qt6 for Debian on RaspberryPi
      3. Download QBSP for Raspberry Pi OS to dev host
      4. Develop app using Qt with Creator in the dev host
      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.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-86955
          # Subject Branch Project Status CR V

          Activity

            People

              alex.bu Alex Bu
              santtuahonen Santtu Ahonen
              Veli-Pekka Heinonen Veli-Pekka Heinonen
              Tommi Mänttäri Tommi Mänttäri
              Votes:
              5 Vote for this issue
              Watchers:
              25 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes