Skip to content

Docker

Accessing Private Git Repositories from Docker Containers

We keep the source code of our applications and libraries in private repositories. Quite a few SoM and terminal makers do the same with their Yocto layers and their additional software. We typically use a Docker container to build the whole embedded Linux system with Yocto. Hence, we must be able to clone and update private repositories from the container.

Read More »Accessing Private Git Repositories from Docker Containers

Setting Up Yocto Projects with kas

Kas makes the setup of a Yocto build environment super simple and super fast. We call kas with a project configuration file: kas-container build ./eu-terminal-distro.yml. Kas starts a Docker container, clones the layer repositories, initialises the Yocto configuration files (local.conf and bblayers.conf), and starts building the embedded Linux system. Most Linux BSP providers don’t make a kas configuration file available. I’ll show how to convert a repo manifest file into a kas configuration file in this post.

Read More »Setting Up Yocto Projects with kas

Webinar: Building Embedded Applications from QtCreator with Docker

In a webinar organised by The Qt Company on 8 July 2020, I showed how QtCreator builds an embedded application against a Qt SDK encapsulated in a Docker container. QtCreator doesn’t know which Yocto version was used for building the Qt SDK and which environment variables must be set for the SDK. QtCreator forwards the CMake calls for configuring, building and staging the application to the container, which executes these calls in the right environment.

Read More »Webinar: Building Embedded Applications from QtCreator with Docker

Qt Embedded Systems – Part 2: Building a Qt SDK with Yocto

We want to develop the Internet radio application for the Raspberry Pi in the same way as for a PC. We change the source code in QtCreator and run the application. QtCreator cross-builds the application on the PC for the Raspberry Pi, deploys it with SSH to the Pi and runs it on the Pi. We need a Qt SDK for this to work. In addition to the target libraries from the Linux image, the Qt SDK contains the library headers, a cross-compiler, a cross-linker, a cross-debugger and more.

Read More »Qt Embedded Systems – Part 2: Building a Qt SDK with Yocto

Docker Builds from QtCreator

On your development PC, you simply hit Ctrl+R (Run) in QtCreator to build and run your Qt application. When you want to run the application on an embedded system, you must perform four tasks:

  • You cross-build the Qt application for the target embedded system in a Docker container.
  • You stop the application on the target system.
  • You copy the application from the development PC to the target system with scp.
  • You start the application on the target system.

Wouldn’t you love to hit Ctrl+R in QtCreator and to have QtCreator perform the above four steps for you? Of course, you would! I’ll show you how in this post. Running an application on an embedded system will be the same as running the application on a PC.

Read More »Docker Builds from QtCreator

Benefits of a Relocatable Qt

Bob builds Qt for the development team on a fast compute server. He packs Qt into a tarball and hands the tarball to his teammates. Alice installs the Qt tarball on her PC in a directory that differs from the installation directory used by Bob. As the target embedded system runs on an AMD Ryzen SoC with x86_64 architecture like the build server and the development PC, Alice installs Qt on the target system – yet in another directory. She can then try out the latest changes of her app directly on the target system. As Qt is relocatable since version 5.14, Alice’s and Bob’s jobs have become quite a bit easier.

Read More »Benefits of a Relocatable Qt

Yocto Builds with CROPS Containers

In a recent post Using Docker Containers for Yocto Builds, I suffered an episode of NIHS (not-invented-here syndrome). I wrote a Dockerfile for Yocto builds. Stefan Agner pointed out in his comment that the CROPS project provides ready-made containers for Linux distributions like Ubuntu, Fedora and others. The crops/poky-container enables us to start our first Yocto build within minutes.

Read More »Yocto Builds with CROPS Containers

Using Docker Containers for Yocto Builds

We want to build a custom Linux image with Yocto for the Raspberry Pi 3 model B (BCM2837). The Linux image contains a very simple Internet radio application using Qt 5.11 and the eglfs graphics backend. Our colleagues shall be able to repeat the build easily – now, in three years and even in ten years.

I’ll explain why Docker is an excellent choice to build custom Linux images and give you a step-by-step guide how to do it. At the end of the post, you will be able to run a simple Internet radio on a custom Linux image on a Raspberry Pi 3.

Read More »Using Docker Containers for Yocto Builds