fix(server): pin runtime HDMI defaults during install

This commit is contained in:
Brad Stein 2026-04-22 13:40:25 -03:00
parent c1212dcb86
commit 1525d3f888

View File

@ -30,6 +30,19 @@ is_attached_state() {
return 1
}
detect_connected_hdmi_connector() {
local dev status best=""
for dev in /sys/class/drm/card*-HDMI-A-*; do
[[ -e $dev/status ]] || continue
status=$(cat "$dev/status" 2>/dev/null || true)
if [[ $status == connected ]]; then
best=$(basename "$dev")
break
fi
done
printf '%s\n' "$best"
}
run_as_user() {
sudo -u "$ORIG_USER" env HOME="$USER_HOME" SSH_AUTH_SOCK="${SSH_AUTH_SOCK:-}" "$@"
}
@ -191,6 +204,25 @@ sudo install -Dm755 "$SRC_DIR/target/release/lesavka-uvc" /usr/local/bin/lesa
sudo install -Dm755 "$SRC_DIR/scripts/daemon/lesavka-core.sh" /usr/local/bin/lesavka-core.sh
sudo install -Dm755 "$SRC_DIR/scripts/daemon/lesavka-uvc.sh" /usr/local/bin/lesavka-uvc.sh
echo "==> 5b. Runtime environment defaults"
sudo install -d -m 0755 /etc/lesavka
HDMI_CONNECTOR=${LESAVKA_HDMI_CONNECTOR:-$(detect_connected_hdmi_connector)}
if [[ -n $HDMI_CONNECTOR ]]; then
echo " ↪ HDMI connector: $HDMI_CONNECTOR"
else
echo "⚠️ no connected HDMI connector detected; leaving LESAVKA_HDMI_CONNECTOR unset." >&2
fi
{
echo "# generated by lesavka/scripts/install/server.sh"
echo "# Edit only for local hardware overrides; rerunning the installer refreshes defaults."
if [[ -n $HDMI_CONNECTOR ]]; then
printf 'LESAVKA_HDMI_CONNECTOR=%q\n' "$HDMI_CONNECTOR"
fi
printf 'LESAVKA_HDMI_DRIVER=%q\n' "${LESAVKA_HDMI_DRIVER:-vc4}"
printf 'LESAVKA_UAC_DEV=%q\n' "${LESAVKA_UAC_DEV:-hw:UAC2Gadget,0}"
printf 'LESAVKA_ALSA_DEV=%q\n' "${LESAVKA_ALSA_DEV:-hw:UAC2Gadget,0}"
} | sudo tee /etc/lesavka/server.env >/dev/null
echo "==> 6a. Systemd units - lesavka-core"
cat <<'UNIT' | sudo tee /etc/systemd/system/lesavka-core.service >/dev/null
[Unit]
@ -238,6 +270,7 @@ Environment=LESAVKA_EYE_FPS=20
Environment=LESAVKA_MIC_INIT_ATTEMPTS=5
Environment=LESAVKA_MIC_INIT_DELAY_MS=250
Environment=LESAVKA_ALLOW_GADGET_CYCLE=1
EnvironmentFile=-/etc/lesavka/server.env
Restart=always
RestartSec=5
StandardError=append:/tmp/lesavka-server.stderr