Table of Contents

Development Containers

Enovation Controls provides containers for use in quickly developing C++ code on OpenView Displays that require Linux toolchains such as the OpenView Select Series. Beginning in OpenPV 5, Podman is the preferred container runtime. Podman is fully open-source, requires no login or license fees, and runs without a background service on all platforms.

Two build containers back the C++/QT workflow:

Base Toolchain Container (openpv/openview_base) - Contains the latest cross toolchains plus the QT6 libraries, so it can build Ubuntu, STM32MP1 (OpenView Select), or OpenView Pro/Flex binaries — including QT6 applications — and lets you build and test C++ applications (OpenGL, GTK, QT) on Ubuntu or the target. Available publicly at openpv/openview_base.

Customizable Build Container (openpv_custom) - Built locally by the Developer Toolkit's OpenPV Build Container plugin. You choose which cross toolchains to include (QT6 libraries are always present), so the image stays as small as your targets require. This is the container the toolkit launches for C++/QT projects.

Qt Creator itself is not shipped in a container — it runs natively on your host and drives the container through its Development Containers support. See Developing QT Applications with Qt Creator.


Setting Up Podman

Install Podman

Install Podman on your development machine. On Windows, download the Podman installer from podman.io. On Ubuntu / WSL, install via your package manager.

Enable Rootful Mode

To execute builds that can access your local file system via volume mounts (-v), you must disable Podman's rootless behavior:

podman machine set --rootful

Alias Docker to Podman (Optional)

If your workflow or scripts reference docker, you can alias it to Podman:

Linux / WSL:

echo "alias docker='podman'" >> ~/.bashrc

Windows:

Create a file called docker.bat with the following contents and place it in your Podman install directory (usually C:\Program Files\RedHat\Podman):

start /b cmd /c "C:\Program Files\RedHat\Podman\podman.exe" %*

Configure VSCode to Use Podman

In VSCode settings, make the following changes:

  • Set Docker Path to podman
  • Disable Mount Wayland Socket
  • Disable Execute in WSL

Install QEMU for Cross-Compilation (macOS)

On macOS, QEMU must be manually installed in the Podman machine to enable ARM cross-compilation. There is a known issue with the standard installation — use the following workaround:

podman machine ssh
curl https://raw.githubusercontent.com/qemu/qemu/master/scripts/qemu-binfmt-conf.sh > qemu-binfmt-conf.sh
chmod +x qemu-binfmt-conf.sh
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
sudo ./qemu-binfmt-conf.sh --qemu-suffix "-static" --qemu-path "/usr/bin" -p yes

Building from the Developer Toolkit

The OpenPV Developer Toolkit manages building and launching the container for you. Use the Plugins button to build the OpenPV Build Container (choosing the toolchains you target), then open your project with Launch Project on the Build tab:

The exact launch command is printed to the Console panel when a container session starts — refer to that output if you need to start the container manually.