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
tpi1.1.1. Between them: a parked image is ordered against the running version instead of showing asunknown, andtpi firmware installcan 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