Thomas Stallinger 8615d9fde1 Konsole: kompakte Kreisel/Haken-Anzeige statt Log-Wand + Kernel-Zeitstempel entfernt
Nutzer-Feedback (01.09.2026, echter Hardware-Test) mit mehreren
zusammenhaengenden Konsolen-UX-Punkten:

- "Die Darstellung des Abarbeitens der Skripte und Module ist noch nicht
  schön... Modul XY läuft (kreiselnde Symbole)... gründer Haken als
  erledigt" - neue run_module_quiet() (utils.sh) fuehrt ein Modul im
  Hintergrund aus, zeigt waehrenddessen einen Kreisel auf derselben Zeile,
  am Ende [OK] (gruen) oder [FEHLER] (rot) + volle mitgeschnittene Ausgabe
  bei einem Fehlschlag. Nur im echten Auto-Modus aktiv (dort fragt kein
  Modul interaktiv nach) - 40_backend.sh bleibt bewusst verbose
  (TUXFLOTTE_VERBOSE_MODULES), da dort der neue Download-Fortschrittsbalken
  sichtbar bleiben soll.
- "Bei Entpacken und schreiben des Archivs, kann man das einen
  Fortschrittsbalken... anzeigen lassen?" - curl "--silent" durch
  "--progress-bar" ersetzt (image_deploy.sh).
- "Der Kernel Zeitstempel ist für den Kunden nicht interessant, sondern
  nur verwirrend." - eigentliche Ursache war nicht der GRUB-Splash
  (separater Commit), sondern StandardOutput=journal+console im
  systemd-Unit: journald spiegelt Konsolenausgaben im kmsg-Stil mit
  monotonem "[  12.345678]"-Zeitstempel, sah aus wie ein Kernel-Log.
  Jetzt "StandardOutput/Error=console" (direkt an /dev/tty1, kein
  journald) - journalctl zeigt dadurch nur noch Dienst-Lebenszyklus-
  Meldungen, die volle Ausgabe bleibt vollstaendig in
  /var/log/tuxflotte-installer.log (bereits der dokumentierte Weg).

Zwei echte Bugs beim eigenen Boot-Test dieser Aenderung gefunden+behoben:
(1) log_module_title() gab den Titel per Command-Substitution zurueck -
lief dadurch in einer Subshell, der TUXFLOTTE_STEP_COUNT-Zaehler blieb
immer bei 1 stehen ("[1/12]" bei jedem Modul). Jetzt ueber eine globale
TUXFLOTTE_CURRENT_TITLE-Variable statt Command-Substitution.
(2) Unicode-Kreisel (⠋⠙...) und Haken (✓/✗) wurden von der
vt-Konsolenschriftart nicht abgedeckt, zeigten nur einen generischen
Ersatz-Kasten - auf reines ASCII (|/-\, "[OK]"/"[FEHLER]") umgestellt,
garantiert auf jeder Konsolenschriftart lesbar.

Ausserdem: Beep + "Stick jetzt entfernen"-Hinweis + ENTER-Bestaetigung
(oder automatischer Neustart nach 5 Minuten) direkt vor dem finalen
Reboot in backend.sh (separater Commit, siehe backend_postinstall()).

Live in QEMU boot-getestet (Zaehler/Farben/Kreisel im Rohlog verifiziert,
kompletter Auto-Modus-Durchlauf inkl. Fehlerfall-Dump getestet, voller
End-to-End-Durchlauf bis zum echten Mint-Cinnamon-Login-Bildschirm nach
Reboot bestaetigt).
2026-09-01 15:46:18 +02:00

40 lines
1.7 KiB
Desktop File

[Unit]
Description=Tuxflotte Installer Auto-Start
Conflicts=getty@tty1.service
After=getty@tty1.service NetworkManager.service
Wants=NetworkManager.service
[Service]
Type=idle
ExecStart=/opt/tuxflotte/scripts/boot-autostart.sh
StandardInput=tty-force
StandardOutput=console
StandardError=console
TTYPath=/dev/tty1
TTYReset=yes
TTYVHangup=yes
# Live gefunden (31.08.2026): ein ExecStopPost, der getty@tty1.service beim
# Dienstende neu startet, ist unzuverlaessig (Race mit dem eigenen
# TTY-Teardown). Geloest stattdessen in boot-autostart.sh selbst: die
# Konsole faellt nach installer.sh deterministisch in eine interaktive
# Shell, kein getty-Neustart noetig.
#
# StandardOutput/Error war zuerst "journal+console" (journalctl konnte die
# Installationsausgabe so zusaetzlich zeigen) - Nutzer-Feedback (01.09.2026,
# echter Hardware-Test): "Der Kernel Zeitstempel ist für den Kunden nicht
# interessant, sondern nur verwirrend." journald spiegelt Konsolen-Ausgaben
# im kmsg-Stil mit einem monotonen "[ 12.345678]"-Zeitstempel je Zeile -
# genau das sah aus wie ein Kernel-Log, obwohl es nur unsere eigene
# Installationsausgabe war. "console" (ohne "journal+") verbindet fd1/fd2
# stattdessen direkt mit /dev/tty1, ohne journald-Vermittlung: kein
# Zeitstempel-Praefix mehr, und "-t 1" ist ab hier wieder ein echter,
# zuverlaessiger tty-Test (siehe TUXFLOTTE_TTY_LIVE in boot-autostart.sh).
# journalctl -u tuxflotte-installer zeigt dadurch nur noch die eigenen
# Lebenszyklus-Meldungen des Dienstes, nicht mehr die volle
# Installationsausgabe - die bleibt weiterhin vollstaendig in
# /var/log/tuxflotte-installer.log einsehbar (das war laut Kopfkommentar
# oben ohnehin schon der dokumentierte Weg, "ohne journalctl zu brauchen").
[Install]
WantedBy=multi-user.target