From e5e5cd263005f2316ef7dcc050497115f5e36121 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Sun, 30 Nov 2025 18:09:52 -0300 Subject: [PATCH] core: tolerate missing uvc control speeds --- scripts/daemon/lesavka-core.sh | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/scripts/daemon/lesavka-core.sh b/scripts/daemon/lesavka-core.sh index 99e93d6..09f9226 100644 --- a/scripts/daemon/lesavka-core.sh +++ b/scripts/daemon/lesavka-core.sh @@ -163,32 +163,30 @@ done # ── 4. Video‑Control interface ───────────────────────────────────── mkdir -p "$F/control/header/h" # real dir – mandatory mkdir -p "$F/control/class" # parent once -mkdir -p "$F/control/class/fs" "$F/control/class/hs" "$F/control/class/ss" +mkdir -p "$F/control/class/fs" "$F/control/class/hs" "$F/control/class/ss" 2>/dev/null || true echo "[lesavka-core] ★ directory tree just before links:" tree -L 3 "$F/control" | sed 's/^/[lesavka-core] /' for s in fs hs ss; do - mkdir -p "$F/control/class/$s" - # use absolute path to avoid relative path issues under configfs - ln -snf "$F/control/header/h" "$F/control/class/$s/h" + # best-effort: some UDCs reject certain speeds; skip on failure + if mkdir -p "$F/control/class/$s" 2>/dev/null; then + ln -snf "$F/control/header/h" "$F/control/class/$s/h" 2>/dev/null || \ + log "⚠️ control/class/$s/h link missing (continuing)" + else + log "⚠️ skipping control/class/$s (mkdir failed)" + fi done for s in fs hs ss; do - [ -L "$F/control/class/$s/h" ] || { - echo "[lesavka‑core] ❌ $s/h link missing, aborting" >&2 - exit 1 - } + [ -L "$F/control/class/$s/h" ] || log "⚠️ $s/h link missing (continuing)" done echo "[lesavka-core] ★ directory tree just before bind:" tree -L 3 "$F/control" | sed 's/^/[lesavka-core] /' for s in fs hs ss; do - [ -L "$F/control/class/$s" ] || { - echo "[lesavka-core] ❌ $s link missing, gadget aborting" >&2 - exit 1 - } + [ -L "$F/control/class/$s" ] || log "⚠️ $s link missing (continuing)" done # optional: hide unsupported controls