diff --git a/scripts/install/server.sh b/scripts/install/server.sh index c298c38..b3ac2ab 100755 --- a/scripts/install/server.sh +++ b/scripts/install/server.sh @@ -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