Siggi (OpenClaw Agent) 44003bebb6 docs: verify Ubuntu 22.04 + air-gapped deployment (Rev 3.1)
Tested in two separate Ubuntu 22.04 Docker containers:
- Container 1 (online): Clone, setup, fetch 510/510 
- Container 2 (air-gapped): BB_NO_NETWORK=1 fetch 510/510 

Updated verification table with two new rows:
- Ubuntu 22.04 host: 
- Air-gapped fetch (BB_NO_NETWORK=1): 
2026-03-01 22:05:14 +00:00

TQMa6UL Yocto BSP Mirror & Build Documentation

Project ID: TQMA6-YOCTO-2038 Date: 2026-03-01 Target Hardware: TQMa6UL-AB (i.MX6 UltraLite) on MBa6ULx Carrier Yocto Version: Scarthgap (5.0.11) LTS Objective: Create offline mirror for software approval, ensure 2038 compliance


Overview

This project addresses the requirement to migrate from legacy PTXdist-based BSP to Yocto Project for TQMa6UL hardware. The primary drivers are Year 2038 compliance for military/long-term deployments and support for Qt-based graphical applications.

2038 Problem Context

The Year 2038 Problem (Y2K38) affects 32-bit systems using signed 32-bit time_t:

  • Maximum representable time: 03:14:07 UTC on 19 January 2038
  • Systems will overflow and behave unpredictably after this date
  • Critical for military/aerospace systems with 15+ year service life

Solution

Yocto Scarthgap (5.0 LTS) provides 2038 compliance with both C libraries:

  • glibc 2.39: 64-bit time_t on 32-bit ARM (default since glibc 2.34 in Yocto)
  • musl 1.2+: 64-bit time_t unconditionally since 2020

Board Identification

Field Value
SoM TQMa6UL (sticker: TQMA6U-AB)
SoC NXP i.MX6 UltraLite (Cortex-A7, single core)
Carrier MBa6ULx
Machine tqma6ul-multi-mba6ulx
BSP Config mainline (not imx!)

⚠️ Critical: The TQMa6UL machines are only available in the mainline config template. The imx config does NOT include this board.

Distro Selection

The BSP provides two main distribution families:

Distro C Library Init Qt Use Case
dumpling-wayland glibc systemd Qt6 Recommended full-featured, Qt/GUI support
spaetzle musl busybox blocked Minimal/headless only
poky glibc sysvinit configurable Yocto upstream default

Recommendation: dumpling-wayland

Use dumpling-wayland if you need:

  • Qt5/Qt6 graphical applications
  • glibc compatibility for third-party software
  • systemd, Wayland, WiFi, Bluetooth, OpenGL
  • Full tq-image-qt6 support

Note: spaetzle explicitly blocks Qt images: SKIP_RECIPE[tq-image-qt6] = "not buildable with spaetzle"

Qt5 is not included in the BSP layers. If needed, add meta-qt5 manually.

Both distros are 2038-safe

Distro C Library time_t 2038-safe?
dumpling-wayland glibc 2.39 64-bit
spaetzle musl 1.2+ 64-bit

Verified Build Configuration

Tested 2026-03-01 on Debian 13 (Python 3.13):

spaetzle (minimal, musl)

TARGET_SYS           = arm-tq-linux-musleabi
MACHINE              = tqma6ul-multi-mba6ulx
DISTRO               = spaetzle
DISTRO_VERSION       = 5.0.11
TUNE_FEATURES        = arm vfp cortexa7 neon thumb callconvention-hard
# Setup with dumpling-wayland instead:
export ACCEPT_FSL_EULA=1
export MACHINE=tqma6ul-multi-mba6ulx
. ./setup-environment build_ut mainline
# Edit conf/local.conf:
#   DISTRO = "dumpling-wayland"
#   ACCEPT_FSL_EULA = "1"

Expected output:

TARGET_SYS           = arm-tq-linux-gnueabi
DISTRO               = dumpling-wayland

Quick Start

1. Prerequisites (Debian 13 / Ubuntu 22.04+)

sudo apt install -y \
  git python3 jq bash grep gawk wget diffstat \
  chrpath cpio texinfo gcc g++ make file tar \
  bzip2 gzip xz-utils zstd lz4 patch perl \
  python3-pexpect socat unzip rsync bc \
  libsdl1.2-dev xterm

2. Clone & Setup

mkdir -p ~/UT && cd ~/UT
git clone --recurse-submodules https://github.com/tq-systems/ci-meta-tq.git
cd ci-meta-tq

export ACCEPT_FSL_EULA=1
export MACHINE=tqma6ul-multi-mba6ulx
. ./setup-environment build_ut mainline
echo 'ACCEPT_FSL_EULA = "1"' >> build_ut/conf/local.conf

# For Qt/GUI applications, switch to dumpling-wayland:
# echo 'DISTRO = "dumpling-wayland"' >> build_ut/conf/local.conf

3. Optional: Redirect Storage

mkdir -p ~/.yocto
cat > ~/.yocto/site.conf << 'EOF'
DL_DIR ?= "/srv/yocto/downloads"
SSTATE_DIR ?= "/srv/yocto/sstate-cache"
EOF

4. Fetch & Build

# Fetch all sources (for mirror creation)
bitbake tq-image-small-debug --runall=fetch

# Build
bitbake tq-image-small-debug

# Or with dumpling-wayland: build Qt6 image
# bitbake tq-image-qt6

Available Images

Image spaetzle dumpling-wayland Description
tq-image-small Minimal
tq-image-small-debug Minimal + debug
tq-image-generic Full-featured
tq-image-weston Wayland compositor
tq-image-qt6 Qt6 demo image
core-image-minimal Yocto bare minimum

Documentation

Document Description
2038 Compliance Analysis Detailed 2038 risk assessment
Mirror Creation Guide Step-by-step build instructions
License Summary License overview and compliance
License Table (CSV) For import into spreadsheets
Air-Gapped Deployment Offline build setup

Air-Gapped / Offline Deployment

# 1. On connected machine: fetch all sources
bitbake tq-image-qt6 --runall=fetch   # or tq-image-small-debug

# 2. Package the mirror
tar czf yocto-mirror-tqma6ul.tar.gz -C /srv/yocto downloads/

# 3. On air-gapped machine: extract + configure
tar xzf yocto-mirror-tqma6ul.tar.gz -C /srv/yocto/
# Add to local.conf:
#   SOURCE_MIRROR_URL = "file:///srv/yocto/downloads/"
#   INHERIT += "own-mirrors"
#   BB_NO_NETWORK = "1"

Softwarefreigabeantrag (PDF)

The complete approval document is available as PDF: docs/softwarefreigabe.pdf (13 pages, LaTeX source: docs/softwarefreigabe.tex)

Contents: title page, build configuration, complete 264-package license table, proprietary component assessment, military use evaluation, compliance checklist.

Complete License & Source Table

The file docs/03-license-analysis/UT-license-table.csv contains the complete inventory of all 264 source packages in the build graph, extracted via bitbake -e with fully resolved download URLs.

Metric Value
Total packages 264
Download URLs resolved 224 (85%)
Packages without URL 40 (meta-packages, virtual providers)
Extraction method bitbake -e <recipe> per package

License Distribution

License Count Military Use
MIT 41 Approved
GPL-2.0-only 32 Approved (source required)
GPL-2.0-or-later 22 Approved (source required)
BSD-3-Clause 19 Approved
GPL-3.0-or-later 13 Review (anti-tivoization)
GPL-3.0-only 11 Review (anti-tivoization)
Proprietary 2 Review required

See docs/03-license-analysis/UT-license-table-excel.md for import instructions.

Known Issues

Issue Severity Notes
Python 3.13 fork() warnings Cosmetic Does not affect build
Debian 13 not validated Cosmetic Build works correctly
spaetzle blocks Qt/Weston images By design Use dumpling-wayland

References

Description
Complete Yocto mirror with license table for TQMa6UL (2038-compliance) - Softwarefreigabeantrag
Readme 27 MiB
Languages
Markdown 100%