We have leveraged Yocto internally for many years to build our reference “Boot to Qt” embedded Linux stack of Qt for Device Creation. During 2015 we started to align our work with upstream Yocto Project, including contributions to improve the meta-qt5 layer. With Qt 5.7 we have also opened our meta-boot2qt layer in order to make it easier to co-operate with semiconductor vendors, open-source community as well as the customers using Qt for Device Creation.
The Yocto Project is an open source collaboration project that provides templates, tools and methods to help create custom Linux-based systems for embedded products regardless of the hardware architecture. The Yocto project is derived from the OpenEmbedded project and it shares core part of the metadata, recipes and tools with OpenEmbedded. The reference distribution of the Yocto Project is called Poky. It contains the OpenEmbedded Build System (BitBake and OpenEmbedded Core) as well as a set of metadata to get you started building your own distro. In addition there are available lot of metalayers which variate the core layers and add additional components, configurations and rule scripts for creating vendor specific distributions. Goal of the Yocto Project is to de-mystify the art of making embedded Linux distributions, helping both the technology providers to co-operate more efficiently and the device makers to better manage the exact distribution they have in their device.
The Qt Company is now proudly also an official Yocto Project Participant:
For the past year we have been actively working together with meta-qt5, the Yocto compatible meta layer dedicated for building Qt modules for your embedded devices. The layer was also recently updated to provide recipes for the previously commercial modules (Qt Virtual Keyboard, Qt Charts and Qt Data Visualization), which are now open source in Qt 5.7. We have offered Yocto based reference images since Qt 5.1, and we released our first reference images based on meta-qt5 with Qt for Device Creation 5.6.0 and continue the work with the latest 5.7.0 release. The 5.7.0 release is based on Yocto 2.0 (Jethro), and idea is to update the Yocto release version for each minor Qt version, when suitable stable release is available. In order to provide support for the latest version of Qt, we have a mirror of meta-qt5 in the Qt Project repository. We do work upstream as much as possible, and are also welcome to host the upstream meta-qt5 repository under the Qt Project (currently it is in github).
Since the meta-qt5 layer provides only recipes for building the Qt modules, we have created a separate Boot to Qt meta layer, meta-boot2qt, which takes care of building the images and toolchains for the reference devices. The meta-boot2qt layer integrates all the required BSP meta layers, so there is no manual configurations necessary when starting Yocto build for one of the Qt reference devices. The layer was previously available only for our commercial customers, but with Qt 5.7 we have open sourced it as well. To get started with meta-boot2qt, clone the repository for meta-boot2qt and follow the instructions of building your own embedded Linux image in the Qt documentation.
Currently Qt for Device Creation and the meta-boot2qt layer contains support for many commonly available development boards and production hardware:
- Raspberry Pi (raspberrypi)
- Raspberry Pi 2 (raspberrypi2)
- Raspberry Pi 3 (raspberrypi3)
- BeagleBone Black (beaglebone)
- Boundary Devices (i.MX6 Boards nitrogen6x)
- Freescale SABRE SD (i.MX6Quad imx6qsabresd)
- Freescale SABRE SD (i.MX6Dual imx6dlsabresd)
- Toradex Apalis iMX6 (apalis-imx6)
- Toradex Colibri iMX6 (colibri-imx6)
- Toradex Colibri VF (colibri-vf)
- Kontron SMARC-sAMX6i (smarc-smax6i)
- Intel NUC (intel-corei7-64)
- NVIDIA DRIVE CX (tegra-t18x)
- Qt for Device Creation Emulator (emulator)
Qt works with much wider variety of hardware than we have as reference devices, so if your hardware is not listed it does not mean it can’t be used. We are offering convinient pre-built binaries for the reference devices as part of the Qt for Device Creation installer. With the Yocto tooling it is easy to take these as a starting point and tune the image according to your specific needs. If you do not yet have Qt for Device Creation, please ask and we’ll provide you with a free evaluation. If you need help with Yocto or other things, please contact us or one of the official Qt Partners to get a boost into your embedded development.