From 52510ac20d826096f0745c462d6182cb23418fe7 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Thu, 16 Apr 2026 16:25:01 -0300 Subject: [PATCH] lesavka: let server install continue without capture cards --- scripts/install/server.sh | 47 +++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/scripts/install/server.sh b/scripts/install/server.sh index ae7cfc9..29081fd 100755 --- a/scripts/install/server.sh +++ b/scripts/install/server.sh @@ -116,33 +116,42 @@ if [ "${#GC_VIDEOS[@]}" -ne 2 ]; then fi if [ "${#GC_VIDEOS[@]}" -ne 2 ]; then - echo "❌ Exactly two GC311 capture cards (index0) must be attached!" >&2 - printf ' Detected: %s\n' "${GC_VIDEOS[@]}" - exit 1 -fi + echo "⚠️ GC311 capture cards not fully present; skipping udev eye-link refresh." >&2 + if [ "${#GC_VIDEOS[@]}" -eq 0 ]; then + echo " Detected: none" >&2 + else + printf ' Detected: %s\n' "${GC_VIDEOS[@]}" >&2 + fi + echo " The server install will continue, and existing /dev/lesavka_* links stay untouched." >&2 +else + mapfile -t TAGS < <( + for v in "${GC_VIDEOS[@]}"; do + sudo udevadm info -q property -n "$v" | + awk -F= '/^ID_PATH_TAG=/{print $2}' + done + ) -mapfile -t TAGS < <( - for v in "${GC_VIDEOS[@]}"; do - sudo udevadm info -q property -n "$v" | - awk -F= '/^ID_PATH_TAG=/{print $2}' - done -) + if [ -z "${TAGS[0]:-}" ] || [ -z "${TAGS[1]:-}" ]; then + echo "⚠️ GC311 cards were detected, but ID_PATH_TAG lookup was incomplete." >&2 + echo " Skipping udev eye-link refresh and preserving any existing /dev/lesavka_* links." >&2 + else + printf ' ↪ Left card: %s (%s)\n' "${GC_VIDEOS[0]}" "${TAGS[0]}" + printf ' ↪ Right card: %s (%s)\n' "${GC_VIDEOS[1]}" "${TAGS[1]}" -printf ' ↪ Left card: %s (%s)\n' "${GC_VIDEOS[0]}" "${TAGS[0]}" -printf ' ↪ Right card: %s (%s)\n' "${GC_VIDEOS[1]}" "${TAGS[1]}" + LEFT_TAG=${TAGS[0]} + RIGHT_TAG=${TAGS[1]} -LEFT_TAG=${TAGS[0]} -RIGHT_TAG=${TAGS[1]} - -sudo tee /etc/udev/rules.d/85-gc311.rules >/dev/null </dev/null < 3. Rust toolchain" sudo rustup default stable