From 120424925bbe9c862746b0e4af064c8335a0fd2d Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Fri, 4 Jul 2025 14:27:31 -0500 Subject: [PATCH] fixing daemon for cam --- scripts/daemon/lesavka-core.sh | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/scripts/daemon/lesavka-core.sh b/scripts/daemon/lesavka-core.sh index 438ae98..7263b83 100644 --- a/scripts/daemon/lesavka-core.sh +++ b/scripts/daemon/lesavka-core.sh @@ -132,26 +132,37 @@ echo 333333 >"$F/streaming/uncompressed/u/f1/dwDefaultFrameInterval" # 30 fp echo 333333 >"$F/streaming/uncompressed/u/f1/dwFrameInterval" # ── 3. REQUIRED HEADER LINKS ────────────────────────────────────── -# 3‑a Streaming‑interface header (directory, not symlink) -rm -rf "$F/streaming/uncompressed/u1" -mkdir -p "$F/streaming/header/h" -ln -sf ../../uncompressed/u "$F/streaming/header/h/1" # “format 1” link -echo 1 >"$F/streaming/header/h/bNumFormats" -echo 0 >"$F/streaming/header/h/bmInfo" +# NOTE: do *not* try to delete the kernel‑made “u1” place‑holder – the +# easiest way is to wipe the whole gadget at the top of the script (you +# already do that) and recreate everything cleanly. -# 3‑b “class” sub‑dirs for FS / HS / SS (must pre‑exist!) +# 3‑a Streaming‑interface header directory +mkdir -p "$F/streaming/header/h" + +# 3‑b Per‑speed “class” directories *must* exist before the links for s in fs hs ss; do mkdir -p "$F/streaming/class/$s" - ln -sf ../../header/h "$F/streaming/class/$s/h" + ln -sf ../../header/h "$F/streaming/class/$s/h" done -# 3‑c Video‑control header (and class links) +# 3‑c Link format #1 (our YUY2 descriptor) into the header. +# Path is *relative* to header/h, hence ../../uncompressed/u +ln -sf ../../uncompressed/u "$F/streaming/header/h/1" + +echo 1 >"$F/streaming/header/h/bNumFormats" # exactly one format +echo 0 >"$F/streaming/header/h/bmInfo" + +# 3‑d Video‑CONTROL side needs the very same header mkdir -p "$F/control/header/h" for s in fs hs ss; do mkdir -p "$F/control/class/$s" - ln -sf ../../header/h "$F/control/class/$s/h" + ln -sf ../../header/h "$F/control/class/$s/h" done +# Friendly string for entity (unchanged) +mkdir -p "$F/control/header/strings/0x409" +echo "Lesavka UVC" >"$F/control/header/strings/0x409/label" + # Friendly string for the camera entity mkdir -p "$F/control/header/strings/0x409" echo "Lesavka UVC" >"$F/control/header/strings/0x409/label"