Compare commits
10 Commits
3aca228498
...
4f629facca
| Author | SHA1 | Date | |
|---|---|---|---|
| 4f629facca | |||
| 7844ec9870 | |||
| 17b70bec5e | |||
| 0615992d9b | |||
| 29933a685e | |||
| 7222020631 | |||
| f04fc1c02a | |||
| a1d6728c59 | |||
| 29c51fe694 | |||
| 28f564c8d6 |
@ -6,6 +6,11 @@
|
||||
set -euo pipefail
|
||||
|
||||
log() { printf '[lesavka-core] %s\n' "$*"; }
|
||||
cleanup() { echo "" >"$G/UDC" 2>/dev/null || true; }
|
||||
|
||||
exec 2> >(tee -a /tmp/lesavka-core.debug.$(date +%s).log)
|
||||
set -x
|
||||
echo "[lesavka-core] running: $0 (sha1sum=$(sha1sum "$0" | cut -d' ' -f1))"
|
||||
|
||||
#──────────────────────────────────────────────────
|
||||
# 1. Ensure overlay + kernel modules
|
||||
@ -155,20 +160,45 @@ for s in fs hs ss; do
|
||||
ln -sf "$header_h" "$F/streaming/class/$s/h"
|
||||
done
|
||||
|
||||
# control‑interface header – share the very same directory
|
||||
mkdir -p "$F/control/header"
|
||||
# ln -sf "$header_h" "$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"
|
||||
# done
|
||||
# ── 4. Video‑Control interface ─────────────────────────────────────
|
||||
mkdir -p "$F/control/header/h" # real dir – mandatory
|
||||
mkdir -p "$F/control/class" # parent once
|
||||
|
||||
echo 0x0 >"$F/control/terminal/camera/default/bmControls" 2>/dev/null || true
|
||||
echo 0x0 >"$F/control/processing/default/bmControls" 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
|
||||
# ensure the per‑speed dir exists (created by kernel)
|
||||
mkdir -p "$F/control/class/$s" # harmless if already there
|
||||
|
||||
# create the mandatory *symlink inside* that directory:
|
||||
ln -snf ../../header/h "$F/control/class/$s/h"
|
||||
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
|
||||
}
|
||||
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
|
||||
}
|
||||
done
|
||||
|
||||
# optional: hide unsupported controls
|
||||
echo 0 >"$F/control/terminal/camera/default/bmControls" 2>/dev/null || true
|
||||
echo 0 >"$F/control/processing/default/bmControls" 2>/dev/null || true
|
||||
|
||||
# friendly label
|
||||
# mkdir -p "$F/control/header/strings/0x409"
|
||||
# echo "Lesavka UVC" >"$F/control/header/strings/0x409/label"
|
||||
mkdir -p "$F/control/header/strings/0x409"
|
||||
echo "Lesavka UVC" >"$F/control/header/strings/0x409/label"
|
||||
|
||||
# ----------------------- configuration -----------------------------
|
||||
mkdir -p "$G/configs/c.1/strings/0x409"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user