Siggi (OpenClaw) 227e1f259f fix: correct machine, config, and C library references (verified by build test)
Critical corrections based on actual build test on 2026-03-01:

1. Machine: tqma6ulx-mba6ulx → tqma6ul-multi-mba6ulx
   (the -multi variant is the correct one for the MBa6ULx carrier)

2. Config: imx → mainline
   (TQMa6UL machines are NOT in the imx config, only in mainline)

3. Carrier: MBa6x → MBa6ULx
   (MBa6x is for the Quad/Dual, MBa6ULx is for the UltraLite)

4. C library: glibc 2.38 → musl 1.2+
   (BSP uses musl: TARGET_SYS=arm-tq-linux-musleabi)

5. README rewritten with verified build output

Verified: DISTRO=spaetzle 5.0.11, BB_VERSION=2.8.0
2026-03-01 19:48:45 +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 driver is Year 2038 compliance for military/long-term deployments.

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 + musl

Yocto Scarthgap (5.0 LTS) with musl libc provides:

  • 64-bit time_t by default on 32-bit ARM (musl 1.2+)
  • Long-term support until April 2028+
  • Comprehensive license manifests for approval

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.

Verified Build Configuration

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

BB_VERSION           = 2.8.0
BUILD_SYS            = x86_64-linux
NATIVELSBSTRING      = universal
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
TARGET_FPU           = hard

2038 Compliance Status

Component Version 2038-safe? Notes
Kernel Mainline 6.x 64-bit time syscalls
musl libc 1.2+ 64-bit time_t since 1.2.0
Userspace Scarthgap Rebuilt against 64-bit time_t
U-Boot Mainline No time_t issues in bootloader

Note: This BSP uses musl libc (arm-tq-linux-musleabi), NOT glibc. musl has provided 64-bit time_t unconditionally on all 32-bit architectures since version 1.2.0 (February 2020).

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 format for import
Air-Gapped Deployment Offline build setup

Quick Start

# 1. Clone
git clone --recurse-submodules https://github.com/tq-systems/ci-meta-tq.git
cd ci-meta-tq

# 2. Setup
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

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

# 4. Build
bitbake tq-image-small-debug

References

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