This document is a complete reference manual for all configurable Qt 5.15.11 modules in the TaishanPi 3M (RK3576) Buildroot SDK. The content is compiled from the actual Config.in files under the package/qt5/ directory in the SDK source code, covering dependency relationships, mutually exclusive options, auto-select behavior, and precise navigation paths in menuconfig for each module.
Configuration Entry Point
Qt5-related configuration files are located in the package/qt5/ directory of the SDK. To enter menuconfig:
# Navigate to the SDK root directory
cd /home/lckfb/TaishanPi-3-Linux
# Interactive selection (recommended)
./build.sh lunch
# Select tspi_3m_rk3576_buildroot_defconfig
# Directly open menuconfig
./build.sh bconfig2
3
4
5
6
7
8
9
The
bconfigcommand directly opens the Buildroot menuconfig configuration interface. After saving, it automatically updates the default configuration file (buildroot/configs/rockchip_rk3576_defconfig).
Then navigate to:
Target packages → Graphic libraries and applications (graphic/text) → Qt5Once the top-level switch BR2_PACKAGE_QT5 (corresponding to the menu item Qt5) is enabled, it will auto-select BR2_PACKAGE_QT5BASE, meaning the qt5base core module is always compiled together with Qt5.
Top-Level Dependency Conditions
Enabling Qt5 requires the toolchain to meet the following conditions; otherwise, the option is not visible in menuconfig:
| Dependency | Description |
|---|---|
BR2_INSTALL_LIBSTDCPP | Toolchain must have C++ support enabled |
BR2_USE_WCHAR | Toolchain must have wide character (wchar) support enabled |
BR2_TOOLCHAIN_HAS_THREADS_NPTL | Toolchain must support NPTL threads |
BR2_TOOLCHAIN_GCC_AT_LEAST_5 | GCC version >= 5 |
!BR2_STATIC_LIBS | Cannot use a purely static library toolchain |
!BR2_ARM_CPU_ARMV4 | ARMv4 architecture is not supported |
Reading Guide
This document uses the following markers to describe configuration item behavior:
| Marker | Meaning |
|---|---|
[auto] | The option is def_bool y; it is automatically enabled when the parent is enabled, no manual selection needed |
[manual] | The option is a regular bool; it requires manual enabling by the user |
[choice] | The group of options is a mutually exclusive selection (choice block); only one can be selected at a time |
[selects X] | Enabling this option automatically selects X |
[depends X] | This option is only visible when X is satisfied |
[comment] | Gray hint text displayed in menuconfig explaining why a certain option is not visible |
Typical Use Case Configuration Plans
The following lists four common usage scenarios with recommended configurations to help quickly identify which modules need to be enabled.
Scenario 1: Minimal Embedded HMI (No GPU)
Suitable for simple HMI interfaces that only need LinuxFB framebuffer display without GPU acceleration.
| Module | Configuration |
|---|---|
| qt5base GUI | Enable |
| qt5base Widgets | Enable |
| LinuxFB backend | Enable (auto-enabled if no other backend is selected) |
| OpenGL | Do not enable |
| qt5quickcontrols / qt5quickcontrols2 | Enable as needed |
| qt5declarative (QML) | Enable if QML interface is needed |
Scenario 2: GPU-Accelerated Touchscreen Device (EGLFS)
Suitable for the RK3576 platform with GPU, using the EGLFS backend for fullscreen OpenGL ES rendering.
| Module | Configuration |
|---|---|
| qt5base GUI | Enable |
| qt5base Widgets | Enable |
| EGLFS backend | Enable (automatically selects OpenGL) |
| OpenGL ES2 | Enable (select in OpenGL choice) |
| qt5declarative (QML) | Enable |
| qt5graphicaleffects | Recommended |
| qt5quickcontrols2 | Recommended |
Scenario 3: Industrial Application with Database
Suitable for industrial control and data acquisition applications requiring local database storage.
| Module | Configuration |
|---|---|
| qt5base GUI + Widgets | Enable |
| SQLite (Qt bundled or system) | Select Qt bundled or system version in SQLite choice |
| qt5serialport | Enable if serial port communication is needed |
| qt5charts | Enable if chart display is needed |
| NETWORK | Auto-enabled |
Scenario 4: Multimedia Player
Suitable for multimedia terminals requiring audio/video playback capabilities.
| Module | Configuration |
|---|---|
| qt5base GUI + Widgets | Enable |
| OpenGL ES2 + EGLFS | Enable |
| qt5multimedia | Enable |
| qt5declarative (QML) | Enable |
| JPEG / PNG image support | Enable |
| D-Bus | Recommended |
Core Module (qt5base)
menuconfig path:
Target packages → Graphic libraries and applications (graphic/text) → Qt5 → qt5base
qt5base is the core foundation module of Qt5, containing QtCore, QtGui, QtWidgets, QtNetwork, QtSql, QtXml, and other base libraries. When the top-level BR2_PACKAGE_QT5 is enabled, qt5base is automatically selected (select BR2_PACKAGE_QT5BASE).
The configuration items within qt5base are organized by function into the following areas, explained one by one below.
Basic Configuration
menuconfig path:
Qt5 → qt5base
These are the top-level configuration items of qt5base:
| Configuration Item | Kconfig Symbol | Type | Default | Description |
|---|---|---|---|---|
| Custom configuration options | BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS | string | empty | Custom parameters passed to qt5base configure, for advanced users |
| Configuration file | BR2_PACKAGE_QT5BASE_CONFIG_FILE | string | empty | Specify a custom qt configure configuration file path |
| Install examples | BR2_PACKAGE_QT5BASE_EXAMPLES | bool [manual] | No | Install Qt example programs; when enabled [selects NETWORK, XML] |
| network module | BR2_PACKAGE_QT5BASE_NETWORK | [auto] | Yes | QtNetwork module, def_bool y always enabled |
| concurrent module | BR2_PACKAGE_QT5BASE_CONCURRENT | bool [manual] | No | QtConcurrent concurrency module, requires manual enabling |
| sql module | BR2_PACKAGE_QT5BASE_SQL | [auto] | Yes | QtSql module, def_bool y always enabled |
| test module | BR2_PACKAGE_QT5BASE_TEST | [auto] | Yes | QtTest module, def_bool y always enabled |
| xml module | BR2_PACKAGE_QT5BASE_XML | [auto] | Yes | QtXml module, def_bool y always enabled |
TIP
The NETWORK, SQL, TEST, and XML modules are def_bool y, meaning they are automatically included whenever qt5base is compiled — they cannot be manually disabled.
Database Plugins (SQL Sub-options)
menuconfig path:
Qt5 → qt5base → sql module
After the QtSql module is automatically enabled, specific database driver plugins can be further configured:
| Configuration Item | Kconfig Symbol | Type | Dependency | Description |
|---|---|---|---|---|
| MySQL Plugin | BR2_PACKAGE_QT5BASE_MYSQL | bool [manual] | [depends BR2_USE_MMU] | MySQL/MariaDB database driver |
| PostgreSQL Plugin | BR2_PACKAGE_QT5BASE_PSQL | bool [manual] | [depends BR2_USE_MMU, BR2_USE_WCHAR, !BR2_STATIC_LIBS, !BR2_OPTIMIZE_FAST] | PostgreSQL database driver |
When the PostgreSQL plugin's dependency conditions are not met, menuconfig displays the following gray hints:
[comment]"PostgreSQL plugin needs a toolchain w/ wchar, dynamic library"
[comment]"PostgreSQL plugin can't be built with Optimize for fast"
SQLite Driver Selection [choice]
menuconfig path:
Qt5 → qt5base → sql module → SQLite support
SQLite support is a three-way mutually exclusive option (choice block); only one can be selected at a time:
| Option | Kconfig Symbol | Default | Description |
|---|---|---|---|
| No sqlite support | BR2_PACKAGE_QT5BASE_SQLITE_NONE | Yes (default) | Do not compile SQLite driver |
| Qt bundled sqlite support | BR2_PACKAGE_QT5BASE_SQLITE_QT | No | Use Qt's bundled SQLite library |
| System sqlite support | BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM | No | Use the system-level SQLite library (requires sqlite package to be installed) |
WARNING
The three options are mutually exclusive — selecting one automatically deselects the others. SQLite driver is not enabled by default. If your application needs local database storage, it is recommended to select "Qt bundled sqlite support" to reduce external dependencies, or select "System sqlite support" to share the same SQLite version with other system components.
GUI and Display Backends
menuconfig path:
Qt5 → qt5base → gui module
| Configuration Item | Kconfig Symbol | Type | Description |
|---|---|---|---|
| gui module | BR2_PACKAGE_QT5BASE_GUI | bool [manual] | QtGui module master switch; when enabled [selects BR2_PACKAGE_FREETYPE] automatically pulls in the FreeType font library |
| widgets module | BR2_PACKAGE_QT5BASE_WIDGETS | bool [manual] | QtWidgets module, provides traditional desktop-style widgets |
INFO
After enabling gui module, if no display backend is manually selected (LinuxFB / DirectFB / XCB / EGLFS), the system will automatically enable LinuxFB as the default backend, ensuring at least one display output is available.
Display Backend Options
The following backend options are all under gui module and multiple can be enabled simultaneously:
| Configuration Item | Kconfig Symbol | Type | Dependency | Description |
|---|---|---|---|---|
| LinuxFB backend | BR2_PACKAGE_QT5BASE_LINUXFB | bool [manual] | None | Linux framebuffer backend, the most basic display method without GPU |
| DirectFB backend | BR2_PACKAGE_QT5BASE_DIRECTFB | bool [manual] | [depends BR2_PACKAGE_DIRECTFB] | DirectFB backend |
| XCB (X11) backend | BR2_PACKAGE_QT5BASE_XCB | bool [manual] | [depends BR2_PACKAGE_XORG7] | X.org XCB backend for the X11 window system |
| EGLFS backend | BR2_PACKAGE_QT5BASE_EGLFS | bool [manual] | [depends BR2_PACKAGE_HAS_LIBEGL, BR2_PACKAGE_QT5_GL_AVAILABLE] | EGL fullscreen backend, [selects OPENGL] |
When the dependency conditions for each backend are not met, menuconfig displays the following gray hints:
[comment]"directfb backend available if directfb is enabled"
[comment]"X.org XCB backend available if X.org is enabled"
[comment]"eglfs backend available if OpenGL and EGL are enabled"
Vulkan Support
| Configuration Item | Kconfig Symbol | Type | Dependency | Description |
|---|---|---|---|---|
| Vulkan support | BR2_PACKAGE_QT5BASE_VULKAN | bool [manual] | [depends BR2_INSTALL_LIBSTDCPP, !BR2_STATIC_LIBS, BR2_TOOLCHAIN_HAS_THREADS] | When enabled [selects vulkan-headers, vulkan-loader] |
Default QPA Platform
| Configuration Item | Kconfig Symbol | Type | Description |
|---|---|---|---|
| Default QPA platform | BR2_PACKAGE_QT5BASE_DEFAULT_QPA | string | Set the default QPA platform plugin name (e.g., eglfs, linuxfb, xcb); leave empty to use the compile-time default |
PrintSupport Module
| Configuration Item | Kconfig Symbol | Type | Dependency | Description |
|---|---|---|---|---|
| printsupport module | BR2_PACKAGE_QT5BASE_PRINTSUPPORT | [auto] | [depends BR2_PACKAGE_QT5BASE_WIDGETS] | Print support module, automatically enabled when Widgets is enabled (def_bool y) |
OpenGL and Graphics Acceleration
menuconfig path:
Qt5 → qt5base → gui module → OpenGL support
| Configuration Item | Kconfig Symbol | Type | Dependency | Description |
|---|---|---|---|---|
| OpenGL support | BR2_PACKAGE_QT5BASE_OPENGL | bool [manual] | [depends BR2_PACKAGE_QT5_GL_AVAILABLE] | OpenGL support master switch |
When the dependency condition is not met, menuconfig displays:
[comment]"OpenGL support needs an OpenGL-capable backend"
OpenGL API Selection [choice]
menuconfig path:
Qt5 → qt5base → gui module → OpenGL support → OpenGL API
After enabling OpenGL support, you must choose one of two APIs (choice block):
| Option | Kconfig Symbol | Dependency | Description |
|---|---|---|---|
| Desktop OpenGL | BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP | [depends BR2_PACKAGE_HAS_LIBGL] | Desktop-grade OpenGL, requires full libGL support |
| OpenGL ES 2.0+ | BR2_PACKAGE_QT5BASE_OPENGL_ES2 | [depends BR2_PACKAGE_HAS_LIBGLES] | Embedded OpenGL ES 2.0, suitable for embedded GPUs like RK3576 |
TIP
For the TaishanPi RK3576 platform, OpenGL ES 2.0+ is typically selected because the Mali GPU provides an OpenGL ES implementation rather than desktop-grade OpenGL.
OpenGL Module Library
| Configuration Item | Kconfig Symbol | Type | Description |
|---|---|---|---|
| opengl module | BR2_PACKAGE_QT5BASE_OPENGL_LIB | bool [manual] | QtOpenGL compatibility module library; when enabled [selects WIDGETS] |
Fonts and Images
menuconfig path:
Qt5 → qt5base → gui module
The following options are all within gui module, controlling font rendering and image format support:
| Configuration Item | Kconfig Symbol | Type | Description |
|---|---|---|---|
| Fontconfig support | BR2_PACKAGE_QT5BASE_FONTCONFIG | bool [manual] | Enable Fontconfig font configuration system for automatic system font discovery |
| HarfBuzz support | BR2_PACKAGE_QT5BASE_HARFBUZZ | bool [manual] | Enable HarfBuzz text shaping engine for improved complex text layout |
| GIF support | BR2_PACKAGE_QT5BASE_GIF | bool [manual] | GIF image format support |
| JPEG support | BR2_PACKAGE_QT5BASE_JPEG | bool [manual] | JPEG image format support; when enabled [selects BR2_PACKAGE_JPEG] automatically pulls in the JPEG library |
| PNG support | BR2_PACKAGE_QT5BASE_PNG | bool [manual] | PNG image format support; when enabled [selects BR2_PACKAGE_LIBPNG] automatically pulls in the libpng library |
TIP
For most embedded GUI applications, it is recommended to enable at least PNG support. If the interface contains photos or needs to load JPEG resources, JPEG support should also be enabled. Fontconfig is very useful when dynamically loading multiple fonts, and HarfBuzz is necessary for internationalized applications that need to display complex scripts such as Arabic or Thai.
Other qt5base Options
menuconfig path:
Qt5 → qt5base
The following options are at the qt5base top level, not within the GUI submenu:
| Configuration Item | Kconfig Symbol | Type | Dependency | Description |
|---|---|---|---|---|
| syslog support | BR2_PACKAGE_QT5BASE_SYSLOG | bool [manual] | None | Redirect Qt debug output to syslog |
| D-Bus support | BR2_PACKAGE_QT5BASE_DBUS | bool [manual] | [depends BR2_TOOLCHAIN_HAS_THREADS, BR2_USE_MMU] | Enable D-Bus inter-process communication support |
| ICU support | BR2_PACKAGE_QT5BASE_ICU | bool [manual] | [depends BR2_TOOLCHAIN_GCC_AT_LEAST_4_9, BR2_HOST_GCC_AT_LEAST_4_9] | Enable ICU internationalization component library for full Unicode and localization support |
| tslib support | BR2_PACKAGE_QT5BASE_TSLIB | bool [manual] | None | Enable tslib touchscreen calibration library support |
When ICU's dependency conditions are not met, menuconfig displays:
[comment]"icu support needs a toolchain w/ gcc >= 4.9, host gcc >= 4.9"
D-Bus Notes
D-Bus is widely used in many Linux system services. If your application needs to interact with system services (such as NetworkManager, BlueZ Bluetooth, etc.) or needs to use Qt's notification system, it is recommended to enable this option.
tslib Notes
tslib is used for resistive touchscreen calibration and input processing. If your device uses a capacitive touchscreen driven by evdev, you typically do not need to enable this option. For resistive touchscreens, enabling tslib provides touch calibration functionality.
4. QML / Quick Modules
QML/Quick is the core of Qt's declarative UI framework. All QML-related modules depend on JSCORE_AVAILABLE, meaning the toolchain architecture must be arm, aarch64, i386, x86_64, mipsel, or arc, and cannot be ARMv4. RK3576 is aarch64 architecture, which naturally satisfies this condition.
4.1 qt5declarative (QML Engine)
menuconfig path: Qt5 → qt5declarative
The QML engine is the foundation of the entire declarative UI system, providing QML language parsing, JavaScript engine, and base type system.
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5DECLARATIVE |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5BASE_GUI |
Sub-option: quick module
menuconfig path: Qt5 → qt5declarative → quick module
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects (conditional) | BR2_PACKAGE_QT5BASE_OPENGL_LIB (when BR2_PACKAGE_QT5BASE_OPENGL is already enabled) |
Note: The quick module is the core of Qt Quick scene graph rendering. When enabled, it automatically pulls in GUI support; if the system already has an OpenGL backend enabled, it also automatically selects the OpenGL library. Most QML applications need both qt5declarative and quick module enabled simultaneously.
4.2 qt5quickcontrols (Quick Controls 1)
menuconfig path: Qt5 → qt5quickcontrols
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5QUICKCONTROLS |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
4.3 qt5quickcontrols2 (Quick Controls 2)
menuconfig path: Qt5 → qt5quickcontrols2
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5QUICKCONTROLS2 |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
Note: Quick Controls 2 is the replacement for Quick Controls 1, providing a lighter-weight, higher-performance control set. New projects should prefer Quick Controls 2.
4.4 qt5quicktimeline (Quick Timeline)
menuconfig path: Qt5 → qt5quicktimeline
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5QUICKTIMELINE |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
Note: Provides keyframe-based timeline animation support, commonly used in animation projects exported from Qt Design Studio.
4.5 qt5graphicaleffects (Graphical Effects)
menuconfig path: Qt5 → qt5graphicaleffects
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5GRAPHICALEFFECTS |
| Type | bool |
| depends on | BR2_PACKAGE_QT5_GL_AVAILABLE |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
When the OpenGL backend is unavailable, this option appears grayed out in menuconfig with the following hint:
comment "qt5graphicaleffects needs an OpenGL-capable backend"
depends on BR2_PACKAGE_QT5JSCORE_AVAILABLE
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE2
3
Note: Provides GPU-accelerated visual effects such as blur, shadow, and gradient. Requires OpenGL backend support. On RK3576, the Mali GPU driver satisfies this requirement.
4.6 qt5lottie (Lottie Animation)
menuconfig path: Qt5 → qt5lottie
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5LOTTIE |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
Note: Supports playback of Bodymovin (Lottie) format vector animations, commonly used for UI motion effects exported from Adobe After Effects.
5. Multimedia and Graphics
5.1 qt5multimedia (Multimedia Framework)
menuconfig path: Qt5 → qt5multimedia
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5MULTIMEDIA |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
| selects (conditional) | BR2_PACKAGE_QT5BASE_OPENGL_LIB (when BR2_PACKAGE_QT5BASE_OPENGL is already enabled) |
Note: Provides audio playback/recording, video playback, camera access, and other multimedia features. Automatically pulls in GUI and NETWORK support. If OpenGL is already enabled, it also automatically selects the OpenGL library for hardware-accelerated video rendering. On RK3576, hardware decoding can be achieved with the GStreamer backend.
5.2 qt53d (3D Rendering)
menuconfig path: Qt5 → qt53d
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT53D |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| depends on | BR2_PACKAGE_QT5_GL_AVAILABLE |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
When the OpenGL backend is unavailable, menuconfig displays a gray hint:
comment "qt53d module needs an OpenGL-capable backend"
depends on BR2_PACKAGE_QT5JSCORE_AVAILABLE
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE2
3
Note: Provides 3D scene rendering capabilities including mesh loading, material system, lighting, and animation. Depends on both JSCORE and OpenGL. Automatically pulls in declarative + quick to support 3D integration in QML.
5.3 qt5svg (SVG Support)
menuconfig path: Qt5 → qt5svg
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SVG |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
Note: Provides SVG image loading and rendering support. No additional dependencies; only automatically pulls in GUI.
5.4 qt5imageformats (Extended Image Formats)
menuconfig path: Qt5 → qt5imageformats
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5IMAGEFORMATS |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
Note: Adds read/write support for additional image formats such as TIFF, MNG, TGA, and WBMP to Qt.
5.5 qt5charts (Charts Module)
menuconfig path: Qt5 → qt5charts
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5CHARTS |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_WIDGETS |
Note: Provides data visualization widgets such as line charts, bar charts, and pie charts. Automatically pulls in GUI and Widgets support.
6. Networking and Communication
6.1 qt5websockets (WebSocket)
menuconfig path: Qt5 → qt5websockets
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WEBSOCKETS |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
6.2 qt5webchannel (Web Channel)
menuconfig path: Qt5 → qt5webchannel
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WEBCHANNEL |
| Type | bool |
| selects | BR2_PACKAGE_QT5WEBSOCKETS |
Important: Enabling qt5webchannel automatically pulls in qt5websockets. This is an easily overlooked implicit dependency — after selecting webchannel in menuconfig, websockets will be automatically selected.
6.3 qt5mqtt (MQTT Protocol)
menuconfig path: Qt5 → qt5mqtt
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5MQTT |
| Type | bool |
Note: Provides an MQTT client implementation, suitable for IoT scenarios. No additional dependencies.
6.4 qt5coap (CoAP Protocol)
menuconfig path: Qt5 → qt5coap
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5COAP |
| Type | bool |
Note: Provides a CoAP (Constrained Application Protocol) client, suitable for communication with resource-constrained IoT devices. No additional dependencies.
6.5 qt5remoteobjects (Remote Objects)
menuconfig path: Qt5 → qt5remoteobjects
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5REMOTEOBJECTS |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
Note: Provides inter-process/inter-device Qt object sharing mechanism, supporting TCP and local Socket transport.
6.6 qt5knx (KNX Protocol)
menuconfig path: Qt5 → qt5knx
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5KNX |
| Type | bool |
Note: Provides KNX smart building protocol support. No additional dependencies.
6.7 qt5opcua (OPC UA Protocol)
menuconfig path: Qt5 → qt5opcua
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5OPCUA |
| Type | bool |
Note: Provides OPC UA industrial communication protocol support, suitable for industrial automation scenarios. No additional dependencies.
7. Hardware Interfaces
7.1 qt5serialport (Serial Port Communication)
menuconfig path: Qt5 → qt5serialport
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SERIALPORT |
| Type | bool |
Note: Provides a cross-platform serial port access API. No additional dependencies. On RK3576, it can be used to access UART serial devices.
7.2 qt5serialbus (Serial Bus)
menuconfig path: Qt5 → qt5serialbus
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SERIALBUS |
| Type | bool |
| depends on | BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_6 |
| selects | BR2_PACKAGE_QT5SERIALPORT |
When the toolchain kernel header version is below 3.6, menuconfig displays a gray hint:
comment "qt5serialbus needs headers >= 3.6"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_62
Important: Enabling qt5serialbus automatically pulls in qt5serialport. This module provides industrial serial bus protocol support including CAN bus and Modbus. The RK3576 toolchain header version is far above 3.6, so this dependency is automatically satisfied.
7.3 qt5sensors (Sensor Framework)
menuconfig path: Qt5 → qt5sensors
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SENSORS |
| Type | bool |
Note: Provides a unified access interface for hardware sensors such as accelerometers, gyroscopes, and light sensors. No additional dependencies.
7.4 qt5connectivity (Bluetooth/NFC Connectivity)
menuconfig path: Qt5 → qt5connectivity
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5CONNECTIVITY |
| Type | bool |
| depends on | BR2_PACKAGE_NEARD or BR2_PACKAGE_BLUEZ5_UTILS |
| selects | BR2_PACKAGE_QT5BASE_CONCURRENT |
| selects | BR2_PACKAGE_QT5BASE_DBUS |
When neither neard nor bluez5_utils is enabled in the system, menuconfig displays a gray hint:
comment "qt5connectivity needs neard and/or bluez5_utils"
depends on !BR2_PACKAGE_NEARD && !BR2_PACKAGE_BLUEZ5_UTILS2
Note: Provides Bluetooth (Classic/BLE) and NFC communication support. At least one of neard (NFC) or bluez5_utils (Bluetooth) must be enabled. Automatically pulls in Concurrent and D-Bus support.
7.5 qt5location (Location Services)
menuconfig path: Qt5 → qt5location
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5LOCATION |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
Note: Provides geolocation, map display, and navigation routing functionality. Automatically pulls in GUI support.
8. Web Engines
Web engines are the heaviest modules in Qt, with extremely strict dependency conditions. The RK3576's aarch64 + glibc toolchain can satisfy most conditions, but you need to ensure the GPU driver provides full OpenGL + EGL support.
8.1 qt5webengine (Chromium-Based Browser Engine)
menuconfig path: Qt5 → qt5webengine
Dependency conditions (all must be satisfied):
| Dependency | Description |
|---|---|
BR2_PACKAGE_QT5_GL_AVAILABLE | OpenGL backend must be available |
BR2_PACKAGE_QT5_EGL_AVAILABLE | EGL backend must be available |
BR2_PACKAGE_HAS_UDEV | udev device management required |
BR2_TOOLCHAIN_USES_GLIBC | Must use glibc toolchain (musl/uclibc not supported) |
BR2_TOOLCHAIN_GCC_AT_LEAST_8 | GCC version >= 8 |
BR2_HOST_GCC_AT_LEAST_4_9 | Host GCC version >= 4.9 |
BR2_SHARED_LIBS | Must use dynamic linking libraries |
BR2_TOOLCHAIN_HAS_THREADS | Toolchain must support threads |
BR2_USE_WCHAR | Toolchain must support wide characters |
When conditions are not met, menuconfig displays gray hints:
comment "qt5webengine needs udev /dev management and a glibc toolchain w/ gcc >= 8, host gcc >= 4.9, wchar, threads, dynamic library"
comment "qt5webengine needs an OpenGL and EGL-capable backend"2
Automatically pulled external dependencies (selects):
| Auto-pulled package | Description |
|---|---|
host-nodejs | Node.js required at build time |
ffmpeg | Audio/video codec |
lcms2 | Color management |
libevent | Event-driven library |
libglib2 | GLib base library |
libnss | Network security services |
libvpx | VP8/VP9 video codec |
libxkbcommon | Keyboard mapping handling |
libxml2 | XML parsing |
libxslt | XSLT transformation |
minizip | ZIP compression |
opus | Audio codec |
re2 | Regular expression engine |
snappy | Fast compression |
webp | WebP image format |
Automatically pulled Qt internal modules (selects):
| Auto-pulled Qt option | Description |
|---|---|
BR2_PACKAGE_QT5BASE_DBUS | D-Bus support |
BR2_PACKAGE_QT5BASE_EGLFS | EGL fullscreen platform plugin |
BR2_PACKAGE_QT5BASE_FONTCONFIG | Font configuration |
BR2_PACKAGE_QT5BASE_HARFBUZZ | Text shaping engine |
BR2_PACKAGE_QT5BASE_JPEG | JPEG image support |
BR2_PACKAGE_QT5BASE_ICU | ICU internationalization |
BR2_PACKAGE_QT5BASE_GUI | GUI support |
BR2_PACKAGE_QT5BASE_PNG | PNG image support |
BR2_PACKAGE_QT5BASE_WIDGETS | Widgets support |
BR2_PACKAGE_QT5DECLARATIVE | QML engine |
BR2_PACKAGE_QT5DECLARATIVE_QUICK | Quick module |
BR2_PACKAGE_QT5QUICKCONTROLS | Quick Controls 1 |
BR2_PACKAGE_QT5QUICKCONTROLS2 | Quick Controls 2 |
BR2_PACKAGE_QT5WEBCHANNEL | Web channel |
Important: qt5webengine has the longest dependency chain. Enabling it automatically pulls in approximately 15 external libraries and 14 Qt internal options. Since webchannel also automatically pulls in websockets, the actual impact scope is even larger. Build time is typically 1-3 hours (depending on host machine performance).
Sub-options:
menuconfig path: Qt5 → qt5webengine → Enable proprietary codecs
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WEBENGINE_PROPRIETARY_CODECS |
| Type | bool |
Note: Enables support for proprietary codecs such as H.264, H.265, and AAC. Be aware of license compliance.
menuconfig path: Qt5 → qt5webengine → Enable ALSA
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WEBENGINE_ALSA |
| Type | bool |
| selects | BR2_PACKAGE_ALSA_LIB |
Note: Enables the ALSA audio backend. Automatically pulls in alsa-lib.
8.2 qt5webkit (WebKit Engine)
menuconfig path: Qt5 → qt5webkit
Dependency conditions:
| Dependency | Description |
|---|---|
BR2_SHARED_LIBS | Must use dynamic linking libraries |
BR2_PACKAGE_QT5JSCORE_AVAILABLE | JSCORE must be available |
BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 | GCC version >= 4.9 |
BR2_HOST_GCC_AT_LEAST_4_9 | Host GCC version >= 4.9 |
BR2_TOOLCHAIN_HAS_THREADS | Toolchain must support threads |
Not BR2_BINFMT_FLAT | Flat binary format not supported |
| Not MIPS soft-float | MIPS soft-float configuration not supported |
When conditions are not met, menuconfig displays a gray hint:
comment "qt5webkit needs a toolchain w/ dynamic library, gcc >= 4.9, host gcc >= 4.9, threads"Automatically pulled external dependencies (selects):
| Auto-pulled package | Description |
|---|---|
gstreamer1 | GStreamer multimedia framework |
gst1-plugins-base | GStreamer base plugins |
icu | ICU internationalization library |
jpeg | JPEG image library |
leveldb | LevelDB key-value store |
libpng | PNG image library |
openssl | OpenSSL cryptography library |
libxml2 | XML parsing |
libxslt | XSLT transformation |
sqlite | SQLite database |
webp | WebP image format |
woff2 | WOFF2 font format |
Automatically pulled Qt internal modules (selects):
| Auto-pulled Qt option | Description |
|---|---|
BR2_PACKAGE_QT5BASE_ICU | ICU internationalization |
BR2_PACKAGE_QT5BASE_GUI | GUI support |
BR2_PACKAGE_QT5BASE_WIDGETS | Widgets support |
BR2_PACKAGE_QT5LOCATION | Location services |
BR2_PACKAGE_QT5SENSORS | Sensor framework |
BR2_PACKAGE_QT5WEBCHANNEL | Web channel |
Note: qt5webkit is an older web engine based on WebKit. It is lighter than qt5webengine but inferior in functionality and security compared to the Chromium kernel. Note that it automatically pulls in qt5location and qt5sensors.
8.3 qt5webview (Web View)
menuconfig path: Qt5 → qt5webview
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WEBVIEW |
| Type | bool |
| depends on | BR2_PACKAGE_QT5WEBENGINE |
When qt5webengine is not enabled, menuconfig displays a gray hint:
comment "qt5webview needs qt5webengine module"
depends on !BR2_PACKAGE_QT5WEBENGINE2
Note: Provides a lightweight web content display component that depends on qt5webengine as its backend. qt5webengine must be enabled first before this option becomes visible.
9. Tools and Utilities
9.1 qt5tools (Development Tool Set)
menuconfig path: Qt5 → qt5tools
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS |
| Type | bool |
qt5tools itself has no additional dependencies, but its sub-options have different dependency relationships:
Sub-option overview:
menuconfig path: Qt5 → qt5tools → linguist tools
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS |
| Type | bool |
Provides internationalization translation tools such as
lreleaseandlupdate.
menuconfig path: Qt5 → qt5tools → qdoc tool
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS_QDOC_TOOL |
| Type | bool |
| depends on | BR2_PACKAGE_LLVM (requires LLVM/Clang) |
Documentation generation tool, depends on LLVM. Rarely used in embedded scenarios.
menuconfig path: Qt5 → qt5tools → pixeltool
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS_PIXELTOOL |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_WIDGETS |
| selects | BR2_PACKAGE_QT5BASE_PNG |
Pixel-level screen magnifier tool; automatically pulls in GUI, Widgets, and PNG support.
menuconfig path: Qt5 → qt5tools → qtdiag
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS_QTDIAG |
| Type | bool |
| selects | BR2_PACKAGE_QT5BASE_GUI |
Qt diagnostic tool that outputs runtime information about platform plugins, OpenGL, fonts, etc. Very useful for debugging.
menuconfig path: Qt5 → qt5tools → qtpaths
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS_QTPATHS |
| Type | bool |
Command-line tool for querying Qt standard paths (installation directory, plugin directory, etc.).
menuconfig path: Qt5 → qt5tools → qtplugininfo
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5TOOLS_QTPLUGININFO |
| Type | bool |
Command-line tool for querying Qt plugin metadata.
9.2 qt5virtualkeyboard (Virtual Keyboard)
menuconfig path: Qt5 → qt5virtualkeyboard
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5VIRTUALKEYBOARD |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
| selects | BR2_PACKAGE_QT5SVG |
Note: Provides a touchscreen virtual keyboard; automatically pulls in declarative + quick + svg. Very practical for embedded touchscreen devices without a physical keyboard (such as the RK3576 development board with a touchscreen).
Sub-options:
menuconfig path: Qt5 → qt5virtualkeyboard → language layouts
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5VIRTUALKEYBOARD_LANGUAGE_LAYOUTS |
| Type | string |
| Default | "en_GB" |
Specifies the list of keyboard layout languages to include, separated by spaces. For example,
"en_GB zh_CN"includes both English and Chinese layouts.
menuconfig path: Qt5 → qt5virtualkeyboard → handwriting
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5VIRTUALKEYBOARD_HANDWRITING |
| Type | bool |
Enables handwriting recognition input support.
menuconfig path: Qt5 → qt5virtualkeyboard → arrow key navigation
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION |
| Type | bool |
Enables arrow key navigation support, suitable for non-touchscreen scenarios.
9.3 qt5xmlpatterns (XML Patterns)
menuconfig path: Qt5 → qt5xmlpatterns
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5XMLPATTERNS |
| Type | bool |
Note: Provides XPath, XQuery, XSLT, and XML Schema validation support. No additional dependencies.
9.4 qt5script (Script Engine, Deprecated)
menuconfig path: Qt5 → qt5script
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SCRIPT |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
Warning - Deprecated: The Qt Script module has been marked as deprecated. New projects should use QML/JavaScript instead. Retained only for legacy code compatibility.
9.5 qt5scxml (State Machine XML)
menuconfig path: Qt5 → qt5scxml
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SCXML |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
Note: Provides SCXML state machine support, enabling declarative state machines in QML. Automatically pulls in declarative.
9.6 qt5doc (Documentation and Examples)
menuconfig path: Qt5 → qt5doc
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5DOC |
| Type | bool |
| depends on | BR2_PACKAGE_QT5JSCORE_AVAILABLE |
| selects | BR2_PACKAGE_QT5BASE_EXAMPLES |
| selects | BR2_PACKAGE_QT5DECLARATIVE |
| selects | BR2_PACKAGE_QT5DECLARATIVE_QUICK |
Note: Installs Qt documentation and example programs. Significantly increases image size; typically only enabled during development.
9.7 qt5speech (Speech Synthesis)
menuconfig path: Qt5 → qt5speech
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5SPEECH |
| Type | bool |
Note: Provides text-to-speech (TTS) functionality. No mandatory dependencies, but optionally configurable with flite or speech-dispatcher as backend engines.
9.8 qt5enginio (Cloud Backend, Deprecated)
menuconfig path: Qt5 → qt5enginio
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5ENGINIO |
| Type | bool |
| selects | BR2_PACKAGE_OPENSSL |
| selects | BR2_PACKAGE_QT5BASE_GUI |
| selects | BR2_PACKAGE_QT5BASE_NETWORK |
Warning - Deprecated: Qt Cloud Services (Enginio) has been discontinued. This module is retained only for historical compatibility and should not be used in new projects. Automatically pulls in OpenSSL, GUI, and NETWORK.
10. Wayland and X11 Support
10.1 qt5wayland (Wayland Platform Support)
menuconfig path: Qt5 → qt5wayland
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WAYLAND |
| Type | bool |
| depends on | BR2_PACKAGE_QT5_GL_AVAILABLE |
| selects | BR2_PACKAGE_WAYLAND |
When the OpenGL backend is unavailable, menuconfig displays a gray hint:
comment "qt5wayland needs an OpenGL-capable backend"
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE2
Sub-options:
menuconfig path: Qt5 → qt5wayland → compositor
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5WAYLAND_COMPOSITOR |
| Type | bool |
Note (Experimental): Enables Qt Wayland Compositor functionality, allowing you to write a Wayland compositor using Qt. This feature is marked as experimental; use with caution in production environments.
RK3576 Recommendation: The RK3576's Mali GPU driver supports both Wayland and X11. If using Weston as the Wayland compositor, enabling qt5wayland allows Qt applications to run as Wayland clients. qt5wayland automatically pulls in the wayland library.
10.2 qt5x11extras (X11 Extensions)
menuconfig path: Qt5 → qt5x11extras
| Property | Value |
|---|---|
| Config symbol | BR2_PACKAGE_QT5X11EXTRAS |
| Type | bool |
| depends on | BR2_PACKAGE_QT5BASE_XCB |
| selects | BR2_PACKAGE_QT5BASE_WIDGETS |
Note: Provides X11-specific APIs (such as obtaining Display handles, screen information, etc.). Only available when using the XCB (X11) platform plugin. Automatically pulls in Widgets support. If the system uses Wayland instead of X11, this module is not needed.
11. GPU Driver Dependencies
The RK3576 features a Mali G52 MC3 GPU. Qt's OpenGL/EGL-related modules all depend on correct GPU driver configuration. The following describes the dependency relationships between GPU drivers and Qt modules:
11.1 Key Configuration Items
| Configuration Item | Description | Affected Modules |
|---|---|---|
BR2_PACKAGE_QT5_GL_AVAILABLE | Whether OpenGL backend is available | qt5graphicaleffects, qt53d, qt5wayland, qt5webengine |
BR2_PACKAGE_QT5_GL_AVAILABLE | Whether GL library is available | qt5webengine |
BR2_PACKAGE_QT5_EGL_AVAILABLE | Whether EGL is available | qt5webengine |
BR2_PACKAGE_QT5BASE_OPENGL | Whether OpenGL is enabled | Conditional selects for qt5declarative(quick), qt5multimedia |
BR2_PACKAGE_QT5BASE_OPENGL_LIB | OpenGL library selection | Conditionally pulled by quick module and multimedia |
BR2_PACKAGE_QT5BASE_EGLFS | EGL fullscreen platform plugin | Automatically pulled by qt5webengine |
11.2 Recommended Configuration for RK3576
When using the Mali G52 GPU driver on RK3576, the following configuration items are typically automatically satisfied:
BR2_PACKAGE_QT5_GL_AVAILABLE=y # Provided by Mali driver
BR2_PACKAGE_QT5_GL_AVAILABLE=y # Provided by Mali driver
BR2_PACKAGE_QT5_EGL_AVAILABLE=y # Provided by Mali driver
BR2_PACKAGE_QT5BASE_OPENGL=y # Recommended to enable
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y # Recommended to enable
BR2_PACKAGE_QT5BASE_EGLFS=y # Recommended embedded display solution2
3
4
5
6
Note: If the Mali GPU driver is not correctly installed or configured, all modules depending on
OPENGL_AVAILABLE(qt5graphicaleffects, qt53d, qt5wayland, qt5webengine) will appear grayed out and unselectable in menuconfig.
12. Module Dependency Diagram
The following ASCII tree shows the selects (auto-pull) and depends on (prerequisite) relationships between Qt5 modules. → indicates selects (auto-pull), ⇐ indicates depends on (prerequisite).
qt5base (core)
├── GUI backends [choice mutually exclusive]
│ ├── linuxfb ── pure software framebuffer
│ ├── eglfs ── EGL fullscreen (recommended for embedded)
│ └── xcb ── X11 window system
├── OpenGL API [choice mutually exclusive]
│ ├── Desktop OpenGL ⇐ requires libGL (typically unavailable on embedded)
│ └── OpenGL ES 2.0+ ⇐ requires libGLES (select this for RK3576 Mali GPU)
├── Image formats [independent bool]
│ ├── gif
│ ├── jpeg
│ └── png
├── Database drivers [independent bool]
│ ├── mysql
│ ├── psql
│ └── sqlite (none/qt/system) [choice mutually exclusive]
├── Font engines [independent bool]
│ ├── fontconfig
│ └── harfbuzz
├── Feature modules [independent bool]
│ ├── concurrent
│ ├── dbus
│ ├── gui
│ ├── network (+openssl/+libproxy)
│ ├── printsupport
│ ├── widgets
│ ├── icu
│ ├── tslib
│ └── examples
│
├─── QML / Quick module chain ⇐ JSCORE_AVAILABLE
│ │
│ ├── qt5declarative
│ │ → gui
│ │ └── quick module
│ │ → gui
│ │ → opengl_lib (conditional: when opengl is enabled)
│ │
│ ├── qt5quickcontrols ─────→ declarative + quick
│ ├── qt5quickcontrols2 ────→ declarative + quick
│ ├── qt5quicktimeline ─────→ declarative + quick
│ ├── qt5lottie ────────────→ declarative + quick
│ │
│ ├── qt5graphicaleffects ──→ declarative + quick
│ │ ⇐ OPENGL_AVAILABLE (additional dependency)
│ │
│ └── qt5virtualkeyboard ──→ declarative + quick + svg
│
├─── 3D / Graphics ⇐ JSCORE_AVAILABLE + OPENGL_AVAILABLE
│ └── qt53d ────────────────→ gui + declarative + quick
│
├─── Multimedia and Graphics
│ ├── qt5multimedia ────────→ gui + network (+opengl_lib conditional)
│ ├── qt5svg ───────────────→ gui
│ ├── qt5imageformats ──────→ gui
│ └── qt5charts ────────────→ gui + widgets
│
├─── Networking and Communication
│ ├── qt5websockets ────────→ network
│ ├── qt5webchannel ────────→ websockets (→ network)
│ ├── qt5mqtt (no additional dependencies)
│ ├── qt5coap (no additional dependencies)
│ ├── qt5remoteobjects ─────→ network
│ ├── qt5knx (no additional dependencies)
│ └── qt5opcua (no additional dependencies)
│
├─── Hardware Interfaces
│ ├── qt5serialport (no additional dependencies)
│ ├── qt5serialbus ─────────→ serialport
│ │ ⇐ TOOLCHAIN_HEADERS >= 3.6
│ ├── qt5sensors (no additional dependencies)
│ ├── qt5connectivity ──────→ concurrent + dbus
│ │ ⇐ neard or bluez5_utils
│ └── qt5location ──────────→ gui
│
├─── Web Engines
│ ├── qt5webengine ─────────→ [15 external libs] + dbus + eglfs + fontconfig
│ │ │ + harfbuzz + jpeg + icu + gui + png + widgets
│ │ │ + declarative + quick + quickcontrols
│ │ │ + quickcontrols2 + webchannel (→ websockets)
│ │ ⇐ glibc + gcc>=8 + udev + GL + EGL + dynamic + threads + wchar
│ │ ├── proprietary codecs (sub-option)
│ │ └── alsa ─────────────→ alsa-lib
│ │
│ ├── qt5webkit ────────────→ [12 external libs] + icu + gui + widgets
│ │ │ + location + sensors + webchannel (→ websockets)
│ │ ⇐ dynamic + JSCORE + gcc>=4.9 + threads
│ │
│ └── qt5webview
│ ⇐ qt5webengine (must be enabled first)
│
├─── Tools and Utilities
│ ├── qt5tools (no additional dependencies)
│ │ ├── linguist_tools
│ │ ├── qdoc_tool ⇐ LLVM
│ │ ├── pixeltool ────────→ gui + widgets + png
│ │ ├── qtdiag ───────────→ gui
│ │ ├── qtpaths
│ │ └── qtplugininfo
│ ├── qt5xmlpatterns (no additional dependencies)
│ ├── qt5script ⇐ JSCORE (deprecated)
│ ├── qt5scxml ─────────────→ declarative
│ │ ⇐ JSCORE
│ ├── qt5doc ───────────────→ examples + declarative + quick
│ │ ⇐ JSCORE
│ ├── qt5speech (no additional dependencies)
│ └── qt5enginio ───────────→ openssl + gui + network (deprecated)
│
├─── Display Server Support
│ ├── qt5wayland ───────────→ wayland
│ │ ⇐ OPENGL_AVAILABLE
│ │ └── compositor (sub-option, experimental)
│ └── qt5x11extras ─────────→ widgets
│ Platform plugins
│
└─── Cross-module Auto-pull Chains (Key Paths)
├── webchannel → websockets → network
├── serialbus → serialport
├── webengine → quickcontrols + quickcontrols2 → declarative + quick
├── webengine → webchannel → websockets → network
├── webkit → location + sensors + webchannel → websockets
├── virtualkeyboard → declarative + quick + svg → gui
└── connectivity → concurrent + dbus2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
13. menuconfig Complete List Reference
The following table lists all 37 user-visible Qt5 extension module entries (in alphabetical order), mapping their menuconfig configuration symbols, document sections, and key notes. Internal helper packages (such as qt5webengine-chromium, qt5webengine-chromium-catapult) are not included.
Of these, 36 are independent top-level module packages, and the 37th is the quick module sub-option within qt5declarative (BR2_PACKAGE_QT5DECLARATIVE_QUICK), which exists as an independently operable entry in menuconfig at the path Qt5 → qt5declarative → quick module.
| No. | Module Name | menuconfig Symbol | Document Section | Key Notes |
|---|---|---|---|---|
| 1 | qt53d | BR2_PACKAGE_QT53D | 5. Multimedia and Graphics | depends JSCORE + OPENGL_AVAILABLE; selects gui + declarative + quick |
| 2 | qt5charts | BR2_PACKAGE_QT5CHARTS | 5. Multimedia and Graphics | selects gui + widgets |
| 3 | qt5coap | BR2_PACKAGE_QT5COAP | 6. Networking and Communication | No additional dependencies; CoAP IoT protocol |
| 4 | qt5connectivity | BR2_PACKAGE_QT5CONNECTIVITY | 7. Hardware Interfaces | depends neard or bluez5_utils; selects concurrent + dbus |
| 5 | qt5declarative | BR2_PACKAGE_QT5DECLARATIVE | 4. QML / Quick | depends JSCORE; selects gui; contains quick module sub-option |
| 6 | qt5declarative (quick) | BR2_PACKAGE_QT5DECLARATIVE_QUICK | 4. QML / Quick | qt5declarative sub-option; selects gui; conditional selects opengl_lib |
| 7 | qt5doc | BR2_PACKAGE_QT5DOC | 9. Tools and Utilities | depends JSCORE; selects examples + declarative + quick |
| 8 | qt5enginio | BR2_PACKAGE_QT5ENGINIO | 9. Tools and Utilities | Deprecated; selects openssl + gui + network |
| 9 | qt5graphicaleffects | BR2_PACKAGE_QT5GRAPHICALEFFECTS | 4. QML / Quick | depends JSCORE + OPENGL_AVAILABLE; selects declarative + quick |
| 10 | qt5imageformats | BR2_PACKAGE_QT5IMAGEFORMATS | 5. Multimedia and Graphics | selects gui; adds TIFF/MNG/TGA formats |
| 11 | qt5knx | BR2_PACKAGE_QT5KNX | 6. Networking and Communication | No additional dependencies; KNX smart building protocol |
| 12 | qt5location | BR2_PACKAGE_QT5LOCATION | 7. Hardware Interfaces | selects gui; geolocation and maps |
| 13 | qt5lottie | BR2_PACKAGE_QT5LOTTIE | 4. QML / Quick | depends JSCORE; selects declarative + quick |
| 14 | qt5mqtt | BR2_PACKAGE_QT5MQTT | 6. Networking and Communication | No additional dependencies; MQTT IoT protocol |
| 15 | qt5multimedia | BR2_PACKAGE_QT5MULTIMEDIA | 5. Multimedia and Graphics | selects gui + network; conditional selects opengl_lib |
| 16 | qt5opcua | BR2_PACKAGE_QT5OPCUA | 6. Networking and Communication | No additional dependencies; OPC UA industrial protocol |
| 17 | qt5quickcontrols | BR2_PACKAGE_QT5QUICKCONTROLS | 4. QML / Quick | depends JSCORE; selects declarative + quick |
| 18 | qt5quickcontrols2 | BR2_PACKAGE_QT5QUICKCONTROLS2 | 4. QML / Quick | depends JSCORE; selects declarative + quick; recommended replacement for controls 1 |
| 19 | qt5quicktimeline | BR2_PACKAGE_QT5QUICKTIMELINE | 4. QML / Quick | depends JSCORE; selects declarative + quick |
| 20 | qt5remoteobjects | BR2_PACKAGE_QT5REMOTEOBJECTS | 6. Networking and Communication | selects network; inter-process object sharing |
| 21 | qt5script | BR2_PACKAGE_QT5SCRIPT | 9. Tools and Utilities | Deprecated; depends JSCORE |
| 22 | qt5scxml | BR2_PACKAGE_QT5SCXML | 9. Tools and Utilities | depends JSCORE; selects declarative |
| 23 | qt5sensors | BR2_PACKAGE_QT5SENSORS | 7. Hardware Interfaces | No additional dependencies; unified sensor interface |
| 24 | qt5serialbus | BR2_PACKAGE_QT5SERIALBUS | 7. Hardware Interfaces | depends headers >= 3.6; selects serialport; CAN/Modbus |
| 25 | qt5serialport | BR2_PACKAGE_QT5SERIALPORT | 7. Hardware Interfaces | No additional dependencies; serial communication |
| 26 | qt5speech | BR2_PACKAGE_QT5SPEECH | 9. Tools and Utilities | No mandatory dependencies; optional flite/speechd backend |
| 27 | qt5svg | BR2_PACKAGE_QT5SVG | 5. Multimedia and Graphics | selects gui; SVG rendering |
| 28 | qt5tools | BR2_PACKAGE_QT5TOOLS | 9. Tools and Utilities | No additional dependencies; contains 6 sub-option tools |
| 29 | qt5virtualkeyboard | BR2_PACKAGE_QT5VIRTUALKEYBOARD | 9. Tools and Utilities | depends JSCORE; selects declarative + quick + svg; contains language/handwriting sub-options |
| 30 | qt5wayland | BR2_PACKAGE_QT5WAYLAND | 10. Wayland and X11 | depends OPENGL_AVAILABLE; selects wayland; contains compositor sub-option |
| 31 | qt5webchannel | BR2_PACKAGE_QT5WEBCHANNEL | 6. Networking and Communication | selects websockets (implicit pull chain) |
| 32 | qt5webengine | BR2_PACKAGE_QT5WEBENGINE | 8. Web Engines | Most dependencies; selects 15 external libs + 14 Qt internal options; contains codecs/alsa sub-options |
| 33 | qt5webkit | BR2_PACKAGE_QT5WEBKIT | 8. Web Engines | selects 12 external libs + location + sensors + webchannel |
| 34 | qt5websockets | BR2_PACKAGE_QT5WEBSOCKETS | 6. Networking and Communication | selects network; WebSocket protocol |
| 35 | qt5webview | BR2_PACKAGE_QT5WEBVIEW | 8. Web Engines | depends qt5webengine; lightweight web display |
| 36 | qt5x11extras | BR2_PACKAGE_QT5X11EXTRAS | 10. Wayland and X11 | depends XCB; selects widgets |
| 37 | qt5xmlpatterns | BR2_PACKAGE_QT5XMLPATTERNS | 9. Tools and Utilities | No additional dependencies; XPath/XQuery/XSLT |
Count verification: The table above contains 37 rows. Numbers 1-5 and 7-37 are 36 independent top-level module packages (alphabetically: qt53d, qt5charts, qt5coap, qt5connectivity, qt5declarative, qt5doc, qt5enginio, qt5graphicaleffects, qt5imageformats, qt5knx, qt5location, qt5lottie, qt5mqtt, qt5multimedia, qt5opcua, qt5quickcontrols, qt5quickcontrols2, qt5quicktimeline, qt5remoteobjects, qt5script, qt5scxml, qt5sensors, qt5serialbus, qt5serialport, qt5speech, qt5svg, qt5tools, qt5virtualkeyboard, qt5wayland, qt5webchannel, qt5webengine, qt5webkit, qt5websockets, qt5webview, qt5x11extras, qt5xmlpatterns). Number 6 is the
quick modulesub-option withinqt5declarative, which exists as an independently operable entry in menuconfig. Total: 37 user-visible menuconfig entries.