From f60315797cefaa67951c454fb6645f64f0b606da Mon Sep 17 00:00:00 2001 From: Markus Fritsche Date: Fri, 24 Apr 2026 19:04:38 +0000 Subject: [PATCH] Build infra: distcc recipe (CT108 + tesla) for kernel + userspace --- README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/README.md b/README.md index 65a7189..92a27c9 100644 --- a/README.md +++ b/README.md @@ -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`,