Files
tqma6-yocto-mirror/README.md
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

109 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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](docs/01-analysis/2038-problem-analysis.md) | Detailed 2038 risk assessment |
| [Mirror Creation Guide](docs/02-mirror-creation/step-by-step-mirror-creation.md) | Step-by-step build instructions |
| [License Summary](docs/03-license-analysis/license-summary.md) | License overview and compliance |
| [License Table](docs/03-license-analysis/UT-license-table.csv) | CSV format for import |
| [Air-Gapped Deployment](docs/04-deployment/corporate-network-deployment.md) | Offline build setup |
## Quick Start
```bash
# 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
- [TQ-Systems ci-meta-tq](https://github.com/tq-systems/ci-meta-tq)
- [TQMa6UL Product Page](https://www.tq-group.com/en/products/tq-embedded/arm-architecture/tqma6ul/)
- [Yocto Scarthgap Docs](https://docs.yoctoproject.org/5.0/)
- [musl 64-bit time_t](https://musl.libc.org/time64.html)