Build infra: distcc recipe (CT108 + tesla) for kernel + userspace

This commit is contained in:
2026-04-24 19:04:38 +00:00
parent 9b54e3dcfe
commit f60315797c
+39
View File
@@ -181,6 +181,45 @@ HEVC once the stretch goal is viable.
Patches upstreamed along the way (v4l2-request to FFmpeg, VDPU346 to
linux-media) count double — they benefit the whole fleet.
## Build infrastructure
Fourier touches two kinds of builds: userspace (FFmpeg + patches, GStreamer,
libva-v4l2-request) and kernel (DT + module compiles if we carry out-of-tree
rkvdec2 / VDPU346). Both benefit from distcc — CT108 (14-core aarch64 on
data, wake via `wake-data` on hertz) plus always-on tesla on hertz.
Zeroconf is broken in containers — hand-wire `DISTCC_HOSTS`.
### Kernel / DT modules (cross-build from x86 host)
```sh
DISTCC_HOSTS="localhost/4 192.168.88.208:3632/14,lzo,cpp tesla.lxd:3632/4,lzo,cpp" \
pump make -j80 O=build/ ARCH=arm64 \
CROSS_COMPILE='distcc aarch64-linux-gnu-' HOSTCC='ccache gcc'
```
Pump mode sometimes misbehaves on aarch64 cross builds — fall back to plain
`make -j80` without `pump` if include-server throws.
### FFmpeg / userspace (native aarch64 host — ohm, ampere, fermi build CT)
```sh
export DISTCC_HOSTS="localhost/4 192.168.88.208:3632/14,lzo,cpp tesla.lxd:3632/4,lzo,cpp"
export MAKEFLAGS="-j80"
makepkg -s # AUR / marfrit-packages workflow
# or, from raw tree:
./configure && pump make -j80
```
`makepkg` honours `MAKEFLAGS` but not `DISTCC_HOSTS` for all build hooks —
put `DISTCC_HOSTS` in `/etc/makepkg.conf` or export before invocation. CC/CXX
wrappers: `/usr/lib/distcc/` symlinks on native aarch64 (NOT
`/usr/lib/distcc/bin/`).
Remember to re-run `wake-data` if CT108 is asleep — see `his` skill or the
`project_distcc_infra.md` memory for the full recipe. When that memory and
this README diverge, fix both.
## Packaging — marfrit-packages
New fleet hosts should get Fourier userspace via `pacman -S` / `apt install`,