Skip to content

Firmware v2.8.1

turingpi.local resolves again.

Firmware v2.8.1, 9 September 2026. Every item below is the repository's own changelog entry, taken apart; the whole entry is a click away under each one.

New

turingpi.local resolves again

(SQU-162).

The whole entry

Dropping avahi for rootfs headroom (SQU-110) also removed the board's mDNS advertisement, and nothing replaced it — so tpi with no --host has failed since v2.3.0, because its default host is literally turingpi.local, and upstream's documentation tells people to reach the board that way. Nobody noticed here because this estate always passes an address.

mdnsd replaces avahi: BSD-3, about 40 KB, and no D-Bus, expat or libdaemon behind it — which is what made avahi expensive, not avahi itself. The board advertises its own hostname, so a default image is turingpi.local again and a renamed board is whatever it was renamed to. - The web interface is advertised as _https._tcp on 443, so a Bonjour browser finds the board. Port 443 rather than the port-80 redirect: advertising the redirect costs a client two round trips to reach a page that was always going to be served over TLS. - The promotion gate checks that the image is the one that was staged, and that it serves metrics (SQU-140). The two existing checks prove the image is alive — the daemon answers, the switch ports exist — and neither proves it is correct: a build whose /metrics was completely broken would have been promoted. release_matches() now also requires that /etc/os-release agrees with the version named in the staged note, and that /metrics answers with bmcd_build_info.

Verified on hardware: a note tampered to v0.0.1 rolled the board back to v2.8.0 in about 35 seconds with the disagreement in postupdate.log — the first rollback this firmware has ever performed — and the same image, installed untampered, promoted. Every compute module's uptime continued uninterrupted through both reboots.

Two details the board taught this change. /metrics has no loopback exception — only /api/bmc does — so the gate asks the daemon for a token via type=metrics_token, which mints one if none exists; reading the overlay file instead would have rolled back every good image on a fresh board. And a staged note that names a file but no version now says so, rather than claiming there was no note at all.

Changed

  • bmcd 2.10.1 and tpi 1.1.1. Between them: a parked image is ordered against the running version instead of showing as unknown, and tpi firmware install can actually install one — 1.1.0 posted it to an endpoint the daemon refuses for local sources, so the resolution succeeded and the install failed with a 400.

Every release of the firmware · the roadmap · follow by feed