From a1d6728c59b93f56f23925d57b297ad8b070dc72 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Sat, 5 Jul 2025 13:43:56 -0500 Subject: [PATCH] usb fix --- scripts/daemon/lesavka-core.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/daemon/lesavka-core.sh b/scripts/daemon/lesavka-core.sh index 6932517..6169ca3 100644 --- a/scripts/daemon/lesavka-core.sh +++ b/scripts/daemon/lesavka-core.sh @@ -156,12 +156,20 @@ for s in fs hs ss; do done # ── 4. Video‑Control interface (must be a real directory) ─────────── -mkdir -p "$F/control/header/h" # REAL dir – no symlink +mkdir -p "$F/control/header/h" # real dir – must exist first -# Link that directory into the per‑speed class dirs (relative links required) +# The kernel may need a few ms to add class/{fs,hs,ss}; wait and link for s in fs hs ss; do - mkdir -p "$F/control/class/$s" - ln -sf ../../header/h "$F/control/class/$s/h" + # give the kernel up to 0.5 s to create the directory + for _ in {1..50}; do + [[ -d "$F/control/class/$s" ]] && break + sleep 0.010 + done + # some gadgets (FS‑only) never get “hs” – skip gracefully + [[ -d "$F/control/class/$s" ]] || continue + + # finally create the mandatory ‘h’ link + ln -sf ../../header/h "$F/control/class/$s/h" done echo 0x0 >"$F/control/terminal/camera/default/bmControls" 2>/dev/null || true