From d00bcd4144cd65728d2a90f2410c0163468432ac Mon Sep 17 00:00:00 2001 From: nocode Date: Tue, 7 Jul 2026 02:47:24 +0200 Subject: [PATCH] feat(releng): add fws-recovery-boot systemd service Add systemd service unit for FWS system recovery boot mode. This service handles recovery session initialization on tty1 with fallback from GUI (via startx/openbox) to console assistant if graphical startup fails. The service is only activated via fws-recovery.target kernel command line parameter and does not interfere with normal boot processes. --- .../systemd/system/fws-recovery-boot.service | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 configs/releng/airootfs/etc/systemd/system/fws-recovery-boot.service diff --git a/configs/releng/airootfs/etc/systemd/system/fws-recovery-boot.service b/configs/releng/airootfs/etc/systemd/system/fws-recovery-boot.service new file mode 100644 index 0000000..3887b1e --- /dev/null +++ b/configs/releng/airootfs/etc/systemd/system/fws-recovery-boot.service @@ -0,0 +1,24 @@ +[Unit] +Description=FWS - Reparation du systeme (session de secours sur tty1) +# Demarre UNIQUEMENT via fws-recovery.target (entree GRUB « Reparer FWS » du +# systeme installe : systemd.unit=fws-recovery.target). PAS de [Install] : +# enrole dans aucun boot normal, donc son Conflicts=getty@tty1 ne peut jamais +# casser le login tty1 d'un boot ordinaire. +# Sur le live, c'est /root/.zprofile (autologin tty1) qui gere la reparation. +ConditionKernelCommandLine=fws.recovery=1 +ConditionPathExists=!/run/archiso +Conflicts=getty@tty1.service display-manager.service +After=systemd-user-sessions.service getty@tty1.service display-manager.service + +[Service] +Type=idle +# GUI via startx (openbox + fws-recovery-gui) ; si X ne demarre pas (pilote +# video casse — un cas de reparation typique), repli sur l'assistant CONSOLE. +ExecStart=/bin/sh -c '/usr/bin/startx /usr/local/bin/fws-recovery-session -- vt1 || exec /usr/local/bin/fws-recovery' +StandardInput=tty +StandardOutput=tty +StandardError=tty +TTYPath=/dev/tty1 +TTYReset=yes +TTYVHangup=yes +Restart=no