/**************************************************************************** ** ** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use the contact form at ** http://www.qt.io ** ** This file is part of Qt Enterprise Embedded. ** ** Licensees holding valid Qt Enterprise licenses may use this file in ** accordance with the Qt Enterprise License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. ** ** If you have questions regarding the use of this file, please use ** the contact form at http://www.qt.io ** ****************************************************************************/ /*! \page qtee-custom-embedded-linux-image.html \title Building Your Own Embedded Linux Image \previouspage qtee-customization.html \nextpage qtee-static-linking.html \B2QL is built using the tools and resources from the \l {Yocto Project}, and is based on Yocto's reference distribution (\e Poky). You can use the same tools to build custom \B2Q images, and have control over which packages are included in the build and how the software stack is configured. \section2 Note About Support Services for Yocto Tools By default, The Qt Company will only provide customer support for the Yocto recipes on the reference platforms, as delivered with \SDK, and setting up the development environment for them. Receiving support for any other configuration requires a separate service agreement between a customer and The Qt Company. \section1 Requirements You should be familiar with the Yocto tools and the concept of \e {recipes}. For more information, see Yocto Project \l{https://www.yoctoproject.org/documentation/current}{documentation}. To get started, you need the following: \list \li Install the \B2Q \e source packages. You can find these by running the \e MaintenanceTool application located in the \SDK installation directory and selecting \e {Package Manager}. The \e {Yocto meta layer} package contains the additional recipes required to make the image compatible with \B2Q. \li Install the dependencies for the Yocto tools. In Ubuntu, the following packages are required: \badcode sudo apt-get install gawk wget git-core diffstat unzip p7zip-full texinfo \ gcc-multilib build-essential chrpath libsdl1.2-dev xterm gperf bison curl \ udisks screen \endcode \endlist \section1 Setting Up Yocto Build Environment Run the setup script that initializes the Yocto environment. Using Freescale SABRE SD i.MX6Quad as an example: \badcode cd /5.7/Boot2Qt/sources/meta-b2qt/b2qt-init-build-env init --device imx6qsabresd \endcode \c b2qt-init-build-env has the following additional command line options: \list \li \c list-devices: show all supported devices that can be used for a \B2Q build \li \c mirror: create a local mirror of the yocto repositories. This enables you to use the same repository downloads for multiple build environments, when initializing with \c{init --reference }. \endlist For all command line options, see: \badcode /5.7/Boot2Qt/sources/meta-b2qt/b2qt-init-build-env help \endcode \note Support for Kontron SMARC-sAMX6i requires additional Yocto Board Support Package that is downloadable from \l{http://emdcustomersection.kontron.com/?page_id=2750}{Kontron Customer Section}. \section1 Building the Image and Toolchain After the Yocto environment is set up, you need to configure the build environment for your target device: \badcode export MACHINE=imx6qsabresd source ./setup-environment.sh \endcode The following table lists the \c MACHINE values for our reference platforms: \table \header \li Board \li MACHINE value \row \li Raspberry Pi \li raspberrypi \row \li Raspberry Pi 2 \li raspberrypi2 \row \li Raspberry Pi 3 \li raspberrypi3 \row \li BeagleBone Black \li beaglebone \row \li Boundary Devices i.MX6 Boards \li nitrogen6x \row \li Freescale SABRE SD i.MX6Quad \li imx6qsabresd \row \li Freescale SABRE SD i.MX6Dual \li imx6dlsabresd \row \li Toradex Apalis iMX6 \li apalis-imx6 \row \li Toradex Colibri iMX6 \li colibri-imx6 \row \li Toradex Colibri VF \li colibri-vf \row \li Kontron SMARC-sAMX6i \li smarc-smax6i \row \li Intel NUC \li intel-corei7-64 \row \li Emulator \li emulator \endtable Yocto recipes for \B2QL have two main targets to build: The target image, and the external toolchain that can be used with Qt Creator for building Qt applications. \badcode bitbake b2qt-embedded-qt5-image bitbake meta-toolchain-b2qt-embedded-qt5-sdk \endcode The target rootfs image is located in the \c /tmp/deploy/images//b2qt-embedded-qt5-image-.img, and the new toolchain is in \c /tmp/deploy/sdk/b2qt-x86_64-meta-toolchain-b2qt-embedded-qt5-sdk-.sh \section1 Configuring Qt Creator Once the toolchain is built, you can install it by running the generated \c .sh script. After you have built and installed the toolchain, you must also set up Qt Creator in order to start developing for your device. The following script does this for you. \badcode /configure-qtcreator.sh \endcode This will set up a new kit in Qt Creator, using the toolchain and Qt from the installed toolchain. The new kit is visible under \b Tools > \b Options > \b {Build & Run} > \b Kits. \section1 Using Toolchain without Qt Creator The toolchain can be also used without Qt Creator. qmake, which can be used directly for building Qt application, is located in \c sysroots/x86_64-pokysdk-linux/usr/bin/qmake. To use the toolchain for more generic cross-development, you need to set up the environment by sourcing the environment setup script from the toolchain. For more information, see the Yocto Project \l {http://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#setting-up-the-cross-development-environment}{documentation}. */