Merge kiosk-hdmi-audio-fix: PipeWire env, in-process-gpu, asound.conf tracking

Conflict resolution: keep the branch's CPUQuota=200% (75% was the proven
cause of choppy HDMI audio — the file's own comment says so; the 75% on main
was an accidental regression bundled into an unrelated UI commit) and keep
main's newer MemoryMax=2800M/MemoryHigh=2200M tuning.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-07-10 20:19:47 +01:00
co-authored by Claude Fable 5
5 changed files with 75 additions and 8 deletions
+16
View File
@@ -425,6 +425,22 @@ deploy_node() {
' 2>/dev/null || true
fi
# ── Deploy ALSA default-device config ────────────────────────────
ASOUND_CONF="$PROJECT_DIR/image-recipe/configs/asound.conf"
if [ -f "$ASOUND_CONF" ]; then
step "Deploying ALSA default-device config"
scp $SSH_OPTS "$ASOUND_CONF" "$TARGET:/tmp/asound.conf" 2>/dev/null || true
ssh $SSH_OPTS "$TARGET" '
if ! diff -q /tmp/asound.conf /etc/asound.conf >/dev/null 2>&1; then
sudo cp /tmp/asound.conf /etc/asound.conf
echo " Installed"
else
echo " Unchanged"
fi
rm -f /tmp/asound.conf
' 2>/dev/null || true
fi
# ── Step 18: NTP + swap ──────────────────────────────────────────
step "Ensuring NTP + swap"
ssh $SSH_OPTS "$TARGET" '
+33
View File
@@ -463,6 +463,22 @@ deploy_secondary() {
' 2>/dev/null || true
fi
# Deploy ALSA default-device config (routes ALSA "default" through PulseAudio/PipeWire)
ASOUND_CONF="$PROJECT_DIR/image-recipe/configs/asound.conf"
if [ -f "$ASOUND_CONF" ]; then
echo " Syncing ALSA default-device config to .$SEC_LABEL..."
scp $SSH_OPTS "$ASOUND_CONF" "$SEC_TARGET:/tmp/asound.conf" 2>/dev/null || true
ssh $SSH_OPTS "$SEC_TARGET" '
if ! diff -q /tmp/asound.conf /etc/asound.conf >/dev/null 2>&1; then
sudo cp /tmp/asound.conf /etc/asound.conf
echo " ALSA default-device config installed"
else
echo " ALSA default-device config unchanged"
fi
rm -f /tmp/asound.conf
' 2>/dev/null || true
fi
# Dev mode + FileBrowser
ssh $SSH_OPTS "$SEC_TARGET" '
# Dev mode
@@ -805,6 +821,23 @@ if [ "$LIVE" = true ]; then
' 2>/dev/null || true
fi
# Deploy ALSA default-device config (routes ALSA "default" through
# PulseAudio/PipeWire — without it Chromium's raw ALSA fallback can't
# reach the HDMI sink and kiosk HDMI audio is silent).
ASOUND_CONF="$PROJECT_DIR/image-recipe/configs/asound.conf"
if [ -f "$ASOUND_CONF" ]; then
scp $SSH_OPTS "$ASOUND_CONF" "$TARGET_HOST:/tmp/asound.conf" 2>/dev/null || true
ssh $SSH_OPTS "$TARGET_HOST" '
if ! diff -q /tmp/asound.conf /etc/asound.conf >/dev/null 2>&1; then
sudo cp /tmp/asound.conf /etc/asound.conf
echo " ALSA default-device config installed"
else
echo " ALSA default-device config unchanged"
fi
rm -f /tmp/asound.conf
' 2>/dev/null || true
fi
# Deploy Claude API proxy (auto-install if missing)
progress "Setting up Claude API proxy"
ssh $SSH_OPTS "$TARGET_HOST" '