fix(display): Phase im Kopfbalken, Rand unten, Wants-Fehler behoben

Drei Befunde der Hardware-Abnahme: die Migrationsphase stand als eigene
kleine Zeile unter dem Lampennamen und ging dort unter - sie steht jetzt
rechtsbuendig neben dem Modus in der invertierten Kopfzeile (mit
Kuerzung/kleinerer Schrift/Weglassen als gestaffelte Antwort auf eine zu
lange Phase, nie mit Ueberlappung). Die letzte Beiwerkzeile klebte am
unteren Panelrand - durch das Verschieben der Phase in den Kopf bleiben
nur noch fuenf statt sechs Beiwerkzeilen, zusaetzlich durchgesetzt per
BOTTOM_MARGIN_PX in der Abbruchbedingung von compose().

Ausserdem ein am Geraet nachgewiesener Fund: ninlight-display.service
trug Wants=ninlight-station.service NEBEN dem gewollten After= - Wants=
aktiviert die genannte Unit aber, statt nur zu ordnen, und zog den
absichtlich deaktivierten Stationsdienst bei jedem Boot ohne
Zugangspunkt in einen "failed"-Zustand. Wants= entfernt, After= bleibt.
This commit is contained in:
Michael Sauer
2026-09-14 03:11:32 +02:00
parent bb39105ac4
commit 03d6328dd5
4 changed files with 319 additions and 44 deletions
+20
View File
@@ -719,6 +719,26 @@ else
fail "ninlight-display.service wurde nicht installiert - Szenario 19 kann nichts pruefen"
fi
echo "=== Szenario 20 (Hardware-Abnahme, Pi 2): Wants= zieht den Stationsdienst nicht mehr mit hoch ==="
# Befund am Geraet: ninlight-station ist absichtlich disabled (die Station ist per
# Vorgabe aus), wurde aber bei jedem Boot trotzdem gestartet, weil dieser (enabled)
# Anzeigedienst per Wants=ninlight-station.service die andere Unit AKTIVIERT hat - Wants=
# ordnet nicht nur, es startet die genannte Unit mit. Ohne Zugangspunkt kann server.py
# 192.168.8.1 nicht binden, stirbt, wird von Restart=always mehrfach neu versucht und
# bleibt auf "failed" haengen (flutet das Journal bei jedem Boot). Gemeint war reine
# Reihenfolge - dafuer reicht After= allein, das nur ordnet, FALLS beide Units ohnehin
# starten, und aktiviert nichts von sich aus.
if [ -f "$INSTALLED_DISPLAY_UNIT" ]; then
grep -Eq '^Wants=ninlight-station\.service$' "$INSTALLED_DISPLAY_UNIT" \
&& fail "Wants=ninlight-station.service steht noch in der ausgelieferten Unit - das zieht die (absichtlich disabled) Station bei jedem Boot mit hoch" \
|| pass "kein Wants=ninlight-station.service mehr in der ausgelieferten Unit"
grep -Eq '^After=ninlight-station\.service$' "$INSTALLED_DISPLAY_UNIT" \
&& pass "After=ninlight-station.service bleibt (reine Reihenfolge, falls beide ohnehin starten)" \
|| fail "After=ninlight-station.service fehlt - die Startreihenfolge waere nicht mehr garantiert"
else
fail "ninlight-display.service wurde nicht installiert - Szenario 20 kann nichts pruefen"
fi
echo
if [ "$FAILED" -eq 0 ]; then
echo "Alle Tests bestanden."