From d03110197f3dc28e55206f9094962d64b590c624 Mon Sep 17 00:00:00 2001 From: Florian Asche Date: Thu, 16 Apr 2026 21:22:39 +0200 Subject: [PATCH 1/2] feat(audiodriver): add wait and reboot after driver setup Add 10 second delay for hardware initialization then automatically reboot system after completing audio driver configuration. --- .../01-driver/files/seeed-voicecard-v2 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard-v2 b/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard-v2 index 2813955..4dd9e2e 100644 --- a/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard-v2 +++ b/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard-v2 @@ -132,3 +132,9 @@ echo "Force 3.5mm (headphone-jack)" if aplay -l | grep -q "bcm2835 ALSA"; then amixer cset numid=3 1 || true fi + +# Wait 10 seconds +sleep 10 + +# Reboot system +reboot From 310b62e9ddfb51d3687dc881ceac8bf5578e5d3a Mon Sep 17 00:00:00 2001 From: Florian Asche Date: Thu, 16 Apr 2026 23:51:11 +0200 Subject: [PATCH 2/2] fix(systemd): correct service unit behaviour for first boot - Remove invalid pipewire user service dependencies from all audio units - Remove --now flag when disabling services to prevent boot race conditions - Apply fixes across hostname setup and all audio driver stage services --- .../04-set-hostname/files/configure_hostname.service | 2 +- .../01-driver/files/seeed-voicecard.service | 6 +++--- .../02-set-audio-volume/files/configure_audio.service | 4 ++-- .../01-set-audio-volume/files/configure_audio.service | 4 ++-- .../01-keep-audio-alive/files/keep-audio-alive.service | 2 +- .../02-set-audio-volume/files/configure_audio.service | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/01-stage-picompose/04-set-hostname/files/configure_hostname.service b/01-stage-picompose/04-set-hostname/files/configure_hostname.service index 73e74b1..0546ed9 100644 --- a/01-stage-picompose/04-set-hostname/files/configure_hostname.service +++ b/01-stage-picompose/04-set-hostname/files/configure_hostname.service @@ -6,7 +6,7 @@ Wants=network-online.target [Service] Type=oneshot ExecStart=/usr/bin/configure_hostname.sh -ExecStartPost=/bin/systemctl disable --now %n +ExecStartPost=/bin/systemctl disable %n RemainAfterExit=yes Restart=on-failure RestartSec=30s diff --git a/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard.service b/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard.service index 39dde8e..85b2d0e 100644 --- a/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard.service +++ b/02-stage-audiodriver-2michat-v1/01-driver/files/seeed-voicecard.service @@ -1,7 +1,7 @@ [Unit] Description=Seeed Voicecard service -After=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service -Wants=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service +After=user@1000.service sound.target alsa-restore.service +Wants=user@1000.service sound.target alsa-restore.service Requires=user@1000.service [Service] @@ -9,7 +9,7 @@ Type=oneshot RemainAfterExit=yes Environment=XDG_RUNTIME_DIR=/run/user/1000 ExecStart=/usr/bin/seeed-voicecard-v2 -ExecStartPost=/bin/systemctl disable --now %n +ExecStartPost=/bin/systemctl disable %n Restart=on-failure RestartSec=10s User=root diff --git a/02-stage-audiodriver-2michat-v1/02-set-audio-volume/files/configure_audio.service b/02-stage-audiodriver-2michat-v1/02-set-audio-volume/files/configure_audio.service index 73d13fe..baa3d2c 100644 --- a/02-stage-audiodriver-2michat-v1/02-set-audio-volume/files/configure_audio.service +++ b/02-stage-audiodriver-2michat-v1/02-set-audio-volume/files/configure_audio.service @@ -1,7 +1,7 @@ [Unit] Description=PiCompose - Configure Audio volume setting -After=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service seeed-voicecard.service -Wants=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service seeed-voicecard.service +After=user@1000.service sound.target alsa-restore.service seeed-voicecard.service +Wants=user@1000.service sound.target alsa-restore.service seeed-voicecard.service [Service] Type=oneshot diff --git a/02-stage-audiodriver-other/01-set-audio-volume/files/configure_audio.service b/02-stage-audiodriver-other/01-set-audio-volume/files/configure_audio.service index daf6239..d7012e3 100644 --- a/02-stage-audiodriver-other/01-set-audio-volume/files/configure_audio.service +++ b/02-stage-audiodriver-other/01-set-audio-volume/files/configure_audio.service @@ -1,7 +1,7 @@ [Unit] Description=PiCompose - Configure Audio volume setting -After=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service -Wants=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service +After=user@1000.service sound.target alsa-restore.service +Wants=user@1000.service sound.target alsa-restore.service [Service] Type=oneshot diff --git a/02-stage-audiodriver-respeaker_lite/01-keep-audio-alive/files/keep-audio-alive.service b/02-stage-audiodriver-respeaker_lite/01-keep-audio-alive/files/keep-audio-alive.service index c6a9436..b59667f 100644 --- a/02-stage-audiodriver-respeaker_lite/01-keep-audio-alive/files/keep-audio-alive.service +++ b/02-stage-audiodriver-respeaker_lite/01-keep-audio-alive/files/keep-audio-alive.service @@ -1,6 +1,6 @@ [Unit] Description=Keep soundcard alive (play silence) -After=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service +After=user@1000.service sound.target alsa-restore.service [Service] Type=simple diff --git a/02-stage-audiodriver-respeaker_lite/02-set-audio-volume/files/configure_audio.service b/02-stage-audiodriver-respeaker_lite/02-set-audio-volume/files/configure_audio.service index daf6239..d7012e3 100644 --- a/02-stage-audiodriver-respeaker_lite/02-set-audio-volume/files/configure_audio.service +++ b/02-stage-audiodriver-respeaker_lite/02-set-audio-volume/files/configure_audio.service @@ -1,7 +1,7 @@ [Unit] Description=PiCompose - Configure Audio volume setting -After=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service -Wants=user@1000.service sound.target alsa-restore.service user@1000.service:pipewire.service +After=user@1000.service sound.target alsa-restore.service +Wants=user@1000.service sound.target alsa-restore.service [Service] Type=oneshot