Skip to main content

Qt for VxWorks: Build, Configure, and Deployment Guide

·665 words·4 mins
Qt VxWorks Embedded Systems Cross Compilation GUI Development RTP EGLFS CMake
Table of Contents

Qt for VxWorks: Build, Configure, and Deployment Guide

Qt for VxWorks enables modern GUI development on real-time embedded systems using the Qt 6 framework. This guide provides a structured overview of supported platforms, system requirements, build workflow, and deployment practices for production-grade environments.

📦 Licensing and Availability
#

Qt for VxWorks is distributed under the Qt for Device Creation Professional (DCP) license. This commercial offering includes long-term support, tooling, and access to Qt professional services.

🧩 Supported Platforms
#

Verified Configuration
#

  • Qt Version: 6.10
  • VxWorks Version: 25.03

Supported Architectures
#

  • ARMv7

    • Device: BD-SL-i.MX6
    • BSP: fsl_imx6
  • x86_64

    • Device: Intel NUC6i3SYH
    • BSP: itl_generic

Support for newer Qt versions may require engagement with Qt professional services.

⚙️ System Requirements
#

Qt Widgets Applications
#

  • POSIX support
  • C++17 support

Qt Quick 2 Applications
#

In addition to Widgets requirements:

  • GPU device (GPUDEV)
  • OpenGL ES 2.0 support

📚 Supported Qt Modules
#

Essential Modules
#

  • Qt Core (limitations apply: no QProcess, restricted socket support)
  • Qt GUI
  • Qt Network
  • Qt QML / Quick stack
  • Qt Widgets

Add-On Modules
#

  • Qt Concurrent
  • Qt GRPC / Protobuf
  • Qt Multimedia
  • Qt OpenGL
  • Qt Quick 3D
  • Qt SQL
  • Qt SVG
  • Qt Virtual Keyboard
  • Qt Graphs

Modules can be excluded during build using:

-skip <module>

🧠 Platform Constraints
#

Runtime Model
#

  • Only RTP (Real-Time Process) is supported
  • DKM (Downloadable Kernel Modules) are not supported

Windowing System
#

  • Qt no longer includes QWS
  • Uses Qt Platform Abstraction (QPA)
  • Only supported platform plugin: EGLFS

🏗️ Build Environment Setup
#

Prerequisites
#

  • VxWorks SDK installation
  • Valid Wind River license
  • Qt 6 host build (required for tools like moc, rcc, qmlcachegen)
  • Toolchain and sysroot

Environment Initialization
#

Linux
#

cd <VxWorks install dir>
./wrenv.sh -p vxworks
export WIND_CC_SYSROOT=<path to VSB>

Windows
#

cd <VxWorks install dir>
wrenv -p vxworks
set WIND_CC_SYSROOT=<path to VSB>

🔧 VxWorks Image Requirements
#

Qt requires specific VSB and VIP configurations.

Key VSB Features
#

  • Networking: IPNET_COREIP, SOCKET

  • Storage: SDMMC_*

  • Input: EVDEV, USB_*

  • Security: OPENSSL, HASH

  • Graphics:

    • GPUDEV_FSLVIVGPU (ARM)
    • DRM, MESA, ITLI915 (x86)

Required Config Variables
#

_WRS_CONFIG_RTP_SSP=y
_WRS_CONFIG_RTP_STACK_PROTECTOR=y
_WRS_CONFIG_EVDEV_COMPATIBLE_MODE=y

VIP Bundles
#

  • BUNDLE_POSIX (mandatory)
  • RTP deployment and development bundles

Critical Components
#

  • INCLUDE_TMP_DIR (for QTemporaryFile)
  • INCLUDE_IO_REALPATH (for QFileInfo)
  • Input, storage, networking, and GPU drivers depending on BSP

🛠️ Building Qt 6
#

Host Build
#

./configure \
  -cmake-generator "Ninja" \
  -extprefix <host_install_dir> \
  -submodules qtbase,qtdeclarative,qtquick3d,qtshadertools \
  -nomake tests -nomake examples

cmake --build . --parallel
cmake --install .

Target Build Configuration
#

./configure \
  -cmake-generator "Ninja" \
  -eglfs \
  -qpa eglfs \
  -submodules "qtbase,qtdeclarative,qtmultimedia,qtquick3d" \
  -- \
  -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang \
  -DQT_HOST_PATH=<host_qt_path> \
  -DCMAKE_TOOLCHAIN_FILE=<graphics_toolchain.cmake>

Notes
#

  • Use shadow builds
  • Add -static for static builds
  • If RTP_MEM_FILL=false, define:
-DCMAKE_CXX_FLAGS="-DQT_RTP_MEM_FILL=1"

🎮 Graphics and EGLFS
#

Qt uses EGLFS for rendering:

  • Requires BSP-specific EGL/OpenGL libraries

  • Toolchain file must include graphics paths and libraries

  • Supports integrations like:

    • eglfs_viv (i.MX6)
    • eglfs_kms (Intel)

📱 Building Applications
#

Example build:

qt-cmake -G Ninja \
  -S <Qt example path> \
  -B <build dir>

cmake --build . --parallel

Required Environment Variables
#

  • QT_QPA_FONTDIR
  • QT_QPA_EGLFS_FB
  • LD_LIBRARY_PATH
  • ICU_DATA
  • QT_QPA_EGLFS_INTEGRATION

Disable QML disk cache:

QML_DISABLE_DISK_CACHE=1

🚀 Running Applications
#

Launch via RTP:

rtpSp("<app>", 200, 0x100000, 0, 0x01000000);

🐞 Debugging
#

Enable Debug Support
#

VSB:

_WRS_CONFIG_TCF_GDB_RSP=y

VIP:

  • INCLUDE_DEBUG_AGENT
  • INCLUDE_STANDALONE_SYM_TBL

GDB Workflow
#

vxgdb <binary>
monitor ps
attach <pid>

🎛️ Input Handling
#

Qt provides VxWorks-specific input plugins:

  • VxMouse
  • VxKeyboard
  • VxTouch

Differences from Linux evdev:

  • Custom environment variables

  • Additional touchscreen parameters:

    • rangex
    • rangey

⚠️ Limitations
#

Video Memory Constraints
#

Qt Quick and OpenGL-based components require sufficient GPU memory:

  • Minimum recommended: 128 MB
  • Insufficient memory may cause rendering failures

Other Limitations
#

  • No QML disk cache support
  • Limited POSIX feature coverage
  • No DKM support

📌 Conclusion
#

Qt for VxWorks provides a robust foundation for building modern embedded GUIs in real-time environments. However, successful deployment requires careful alignment between BSP configuration, graphics stack, and Qt build settings.

For production systems, focus on:

  • Correct VSB/VIP configuration
  • Verified toolchain integration
  • GPU and EGL readiness
  • Controlled module selection

When properly configured, Qt enables high-performance, hardware-accelerated interfaces on VxWorks with predictable real-time behavior.

Related

Google Test on VxWorks 7: DKM and RTP Integration Guide
·681 words·4 mins
VxWorks Google Test Unit Testing DKM RTP Embedded Systems VxWorks 7
The Ultimate VxWorks Programming Guide
·647 words·4 mins
VxWorks RTOS Embedded Systems RTP Device-Drivers
Memory Management in VxWorks Explained
·803 words·4 mins
VxWorks RTOS Memory Management Embedded Systems Real-Time MMU RTP