Skip to content

Commit 3b11f1a

Browse files
committed
docs(video): document new KO_* CLI flags, secrets usage & examples
- Add documentation for custom module source flags: --ko-dir, --ko-tree, --ko-tar, --ko-prefer-custom. - Explain one-shot tar extraction under /run/iris_mods/ and search order (tree/dirs) with bounded depth. - Clarify use of LAVA-provided secrets for SSID/PASSWORD in jobs. - Expand examples: --stack both, kodiak --downstream-fw usage, app override, and wait/timeout envs. - Refresh “What’s New” and features to include module-source customizations, network debounce, wget tunables, and SKIP-on-offline. Signed-off-by: Srikanth Muppandam <[email protected]>
1 parent b8302f9 commit 3b11f1a

File tree

1 file changed

+49
-3
lines changed

1 file changed

+49
-3
lines changed

Runner/suites/Multimedia/Video/Video_V4L2_Runner/README_Video.md

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ The suite includes a **reboot-free video stack switcher** (upstream ↔ downstre
3737
- **CLI parity**
3838
`--stack both` is supported to run the suite twice in one invocation (BASE/upstream pass then OVERLAY/downstream pass).
3939

40+
- **NEW (opt‑in) custom module sources**
41+
You can now point the runner at alternative module locations without disturbing the default flow. If you **do nothing**, behavior is unchanged.
42+
- `--ko-dir DIR[:DIR2:...]` — search these dir(s) for `.ko*` files when resolving modules.
43+
- `--ko-tree ROOT` — use `modprobe -d ROOT` (expects `ROOT/lib/modules/$(uname -r)`).
44+
- `--ko-tar FILE.tar[.gz|.xz|.zst]` — unpack once under `/run/iris_mods/$KVER`; auto-derives a `--ko-tree` or `--ko-dir`.
45+
- `--ko-prefer-custom` — prefer custom sources before the system tree.
46+
- The loader now logs **path resolution** and **load method** lines, e.g.:
47+
- `resolve-path: qcom_iris via KO_DIRS => /data/kos/qcom_iris.ko`
48+
- `load-path: modprobe(system): qcom_iris` / `load-path: insmod: /tmp/qcom_iris.ko`
49+
4050
---
4151

4252
## Features
@@ -53,6 +63,7 @@ The suite includes a **reboot-free video stack switcher** (upstream ↔ downstre
5363
- **Kodiak firmware live swap** with backup/restore helpers
5464
- **udev refresh + prune** of stale device nodes
5565
- **Waits/retries/sleeps** integrated across networking, downloads, module ops, and app launches (see next section)
66+
- **(Opt‑in)** custom module sources with **non-exported** CLI flags (`--ko-*`); defaults remain untouched
5667

5768
---
5869

@@ -68,8 +79,8 @@ These are **environment variables** (not user‑visible CLI flags) so your LAVA
6879
| `VIDEO_APP_LAUNCH_SLEEP` | `1` | Sleep (seconds) right before launching `iris_v4l2_test` for each case. |
6980
| `VIDEO_INTER_TEST_SLEEP` | `1` | Sleep (seconds) between cases to allow device/udev to settle. |
7081

71-
> Notes
72-
> - If download **stalls** or the system clock is invalid for TLS, the runner re-checks network health and treats it as **offline** → decode cases **SKIP** (not FAIL).
82+
> Notes
83+
> - If download **stalls** or the system clock is invalid for TLS, the runner re-checks network health and treats it as **offline** → decode cases **SKIP** (not FAIL).
7384
> - Module management includes small internal waits (e.g., `modprobe -r` retry after 200ms, 1s delays around remoteproc/module reloads). These are built‑in, no extra env required.
7485
7586
---
@@ -138,6 +149,12 @@ cd <target_path>/Runner
138149
| `--stack auto|upstream|downstream|base|overlay|up|down|both` | Select target stack (use `both` for BASE→OVERLAY two-pass) |
139150
| `--platform lemans|monaco|kodiak` | Force platform (else auto-detect) |
140151
| `--downstream-fw PATH` | **Kodiak**: path to DS firmware (e.g. `vpu20_1v.mbn`) |
152+
| `--ko-dir DIR[:DIR2:...]` | *(Opt‑in)* Additional directories to search for `.ko*` files during resolution |
153+
| `--ko-tree ROOT` | *(Opt‑in)* Use `modprobe -d ROOT` (expects `ROOT/lib/modules/$(uname -r)`) |
154+
| `--ko-tar FILE.tar[.gz|.xz|.zst]` | *(Opt‑in)* Unpack once into `/run/iris_mods/$KVER`; auto-derives `--ko-tree` or `--ko-dir` |
155+
| `--ko-prefer-custom` | *(Opt‑in)* Prefer custom module sources (KO_DIRS/KO_TREE) before system |
156+
157+
> **Default remains unchanged.** If you omit all `--ko-*` flags, the runner uses the system module tree and `modinfo`/`modprobe` resolution only.
141158
142159
---
143160

@@ -288,6 +305,34 @@ export VIDEO_INTER_TEST_SLEEP=3
288305
./run.sh --stack upstream
289306
```
290307

308+
### (Opt‑in) Use custom module sources
309+
**Default behavior is unchanged.** Only use these when you want to test modules from a non-system location.
310+
311+
#### Use a prepared tree (modprobe -d)
312+
```sh
313+
./run.sh --ko-tree /opt/custom-kmods --stack upstream
314+
```
315+
316+
#### Search one or more directories of loose .ko files
317+
```sh
318+
./run.sh --ko-dir /data/kos:/mnt/usb/venus_kos --stack downstream
319+
```
320+
321+
#### Prefer custom before system
322+
```sh
323+
./run.sh --ko-dir /sdcard/kos --ko-prefer-custom --stack upstream
324+
```
325+
326+
#### Unpack a tarball of modules and auto-wire paths
327+
```sh
328+
./run.sh --ko-tar /sdcard/iris_kmods_${KVER}.tar.xz --stack upstream
329+
# The runner unpacks into /run/iris_mods/$KVER and derives --ko-tree or --ko-dir.
330+
```
331+
332+
> While resolving and loading modules, the runner logs lines like:
333+
> - `resolve-path: venus_core via KO_TREE => /run/iris_mods/6.9.0/lib/modules/6.9.0/venus_core.ko`
334+
> - `load-path: insmod: /data/kos/qcom_iris.ko` or `load-path: modprobe(system): qcom_iris`
335+
291336
---
292337

293338
## Troubleshooting
@@ -304,4 +349,5 @@ export VIDEO_INTER_TEST_SLEEP=3
304349
- **Download fails**
305350
Ensure time is sane (TLS), network is reachable, and provide Wi‑Fi creds via env or `ssid_list.txt`. The downloader uses BusyBox‑compatible flags with retries and a final TLS‑lenient attempt if needed. When the network remains unreachable, the runner **SKIPs** decode cases.
306351

307-
---
352+
---
353+

0 commit comments

Comments
 (0)