This chapter covers the dependency package installation for the development machine (Ubuntu VM) required for Qt development, as well as the SDK directory structure. Toolchain configuration and SDK compilation are described separately in the respective route documents.
Prerequisites
You need to complete the following three steps in full and verify that the current environment is working properly before proceeding with the environment setup.
| Step | Reference |
|---|---|
| Set up Ubuntu 22.04 VM | VMware Ubuntu 22.04 Setup |
| Obtain and initialize SDK | SDK Setup (Buildroot) |
| Compile and flash system image | System Flashing |
This document assumes the SDK has been extracted to
/home/lckfb/TaishanPi-3-Linuxand the development machine is Ubuntu 22.04 x86_64.
Dependency Installation
The following dependencies are additionally required for Qt cross-compilation development. Run this after completing the SDK base build environment setup:
sudo apt update && \
sudo apt install -y \
cmake libgl1-mesa-dev libgles2-mesa-dev libglib2.0-dev libfontconfig1-dev \
libfreetype6-dev libx11-dev libxext-dev libxfixes-dev libxi-dev \
libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-keysyms1-dev \
libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \
libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev \
libxcb-util-dev libxkbcommon-dev libxkbcommon-x11-dev \
libxcb-xinerama0 libgl1-mesa-glx libxcb-cursor0 libfontconfig1 libxkbcommon-x11-0 \
libncursesw5 libpython2.72
3
4
5
6
7
8
9
10
| Package | Purpose |
|---|---|
cmake | Qt project build system |
libgl1-mesa-dev / libgles2-mesa-dev | OpenGL / OpenGL ES development headers |
libfontconfig1-dev / libfreetype6-dev | Font rendering support |
libxcb*-dev | Qt XCB platform plugin dependencies (needed when compiling Qt on the dev machine) |
libxkbcommon-dev | Keyboard layout support |
libncursesw5 | Terminal interface support |
libpython2.7 | Python 2.7 runtime library |
SDK Directory Structure
Key directories in the SDK root /home/lckfb/TaishanPi-3-Linux:
| Directory / File | Description |
|---|---|
kernel-6.1/ | Linux kernel source (version 6.1.99, kernel is a symlink) |
u-boot/ | U-Boot bootloader |
buildroot/ | Buildroot root filesystem (includes Qt 5.15.11) |
prebuilts/gcc/ | SDK pre-built cross-toolchain (GCC 10.3.1, used for kernel/u-boot) |
device/rockchip/.chips/rk3576/ | Board-level defconfig files (note: .chips is a hidden directory) |
rkbin/ | Rockchip binary firmware |
build.sh | One-click build script |
rockdev/ | Build output directory (update.img, etc.) |
The LCSC-TaishanPi-3M-RK3576 related defconfigs are located in device/rockchip/.chips/rk3576/:
tspi_3m_rk3576_buildroot_defconfig # Buildroot system (recommended for Qt development)
tspi_3m_rk3576_ubuntu_noble_xubuntu_defconfig # Ubuntu Xubuntu desktop
tspi_3m_rk3576_ubuntu_noble_gnome_defconfig # Ubuntu GNOME desktop
tspi_3m_rk3576_debian_bookworm_desktop_defconfig # Debian desktop2
3
4
About the Two Cross-Toolchains
The SDK contains two cross-compilers with different purposes:
- SDK pre-built GCC 10.3.1 (under
prebuilts/gcc/): Used for compiling kernel and u-boot - Buildroot GCC 12.4.0 (under
buildroot/output/rockchip_rk3576/host/bin/): Automatically generated after a full Buildroot build, used for compiling Buildroot userspace programs (including Qt applications)
The two have different versions (10.3 vs 12.4) and incompatible C++ ABIs — they must not be mixed. Specific configuration is described in the respective route documents.
Next Step
Please choose the corresponding section based on your system route:
- Buildroot Route (recommended): Buildroot Qt Build Environment
- Ubuntu Route: (coming soon)