From 334e934dd79aadd378ebf98ec9cb010862d4ac35 Mon Sep 17 00:00:00 2001 From: David Gwilliam Date: Tue, 23 Jun 2026 14:31:11 -0700 Subject: [PATCH] stabilize systemd services: fix races, masked flooding, dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - pd-synth: add After=usb-gadget-audio.service midi-bridge.service (was Wants= only, race) - usb-gadget-audio: add Restart=on-failure After=sysinit.target - pd-synth-i2s: fix Wants=configure-usb-audio.service → usb-gadget-audio.service - detect-usb-role.sh: hardcode gadget role (all 4 detection methods always fail, skip 2s sleep) - arduino-router-serial: masked on board (flooded 2173× restarts looking for nonexistent /dev/ttyGS0) --- system/pd-synth-i2s.service | 2 +- system/pd-synth.service | 6 +++--- system/usb-gadget-audio.service | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/system/pd-synth-i2s.service b/system/pd-synth-i2s.service index b267d00..dd91e93 100644 --- a/system/pd-synth-i2s.service +++ b/system/pd-synth-i2s.service @@ -1,7 +1,7 @@ [Unit] Description=Pure Data I2S DAC Synth (standalone) After=network.target sound.target -Wants=configure-usb-audio.service +Wants=usb-gadget-audio.service [Service] Type=simple diff --git a/system/pd-synth.service b/system/pd-synth.service index a9dd7ef..c8a77ca 100644 --- a/system/pd-synth.service +++ b/system/pd-synth.service @@ -1,7 +1,7 @@ [Unit] -Description=Pure Data USB Audio Synth -After=network.target sound.target -Wants=usb-gadget-audio.service +Description=Pure Data USB Audio Synth (Gadget Mode) +After=usb-gadget-audio.service midi-bridge.service +Wants=usb-gadget-audio.service midi-bridge.service [Service] Type=simple diff --git a/system/usb-gadget-audio.service b/system/usb-gadget-audio.service index 104ef76..37e3516 100644 --- a/system/usb-gadget-audio.service +++ b/system/usb-gadget-audio.service @@ -1,5 +1,6 @@ [Unit] Description=Configure USB Audio Gadget +After=sysinit.target Before=pd-synth.service [Service] @@ -7,6 +8,8 @@ Type=oneshot ExecStart=/usr/local/bin/configure-usb-audio.sh start ExecStop=/usr/local/bin/configure-usb-audio.sh stop RemainAfterExit=yes +Restart=on-failure +RestartSec=2 [Install] WantedBy=multi-user.target