sdlamp2/docs/TOOLCHAIN.md
Michael Smith a5b04fcd08 Document RG35XX Plus boot chain, reorganize device docs
Move device-specific content (hardware, software, libraries) from
TOOLCHAIN.md into new docs/rg35xx-plus.md. Add partition layout,
full boot chain trace (systemd → launcher.sh → loadapp.sh → dmenu_ln),
and sdlamp2 deployment instructions via dmenu_ln config toggle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:18:59 +01:00

35 lines
1.4 KiB
Markdown

# Build Container
arm64 Docker build container for producing device binaries. For target device details see [`rg35xx-plus.md`](rg35xx-plus.md).
The `docker-arm64/` directory contains a Docker setup that runs an arm64 Ubuntu 22.04 container via QEMU user-mode emulation. This matches the target device exactly — same distro, same glibc 2.35, same library versions. The project's native `make` (using `pkg-config`) works as-is inside the container, no cross-compilation flags needed.
### Prerequisites
QEMU binfmt handlers must be registered on the host (one-time setup, persists across reboots):
```sh
docker run --privileged --rm tonistiigi/binfmt --install arm64
```
### Usage
From the `docker-arm64/` directory:
```sh
make build # one-shot: build sdlamp2 inside the container
make shell # interactive bash shell for development
make clean # remove the Docker image
```
The container mounts the project root at `/workspace`. Output binary is `build/sdlamp2` (`ELF 64-bit ARM aarch64`).
### Image Contents
- **Base:** `ubuntu:22.04` (arm64)
- **Build tools:** `build-essential`, `pkg-config`
- **SDL2:** `libsdl2-dev`, `libsdl2-image-dev`
- **FFmpeg:** `libavformat-dev`, `libavcodec-dev`, `libavutil-dev`, `libswresample-dev`
The image is tagged `arm64-dev` and is generic enough to reuse for other projects targeting the same device.