Per-node "Capture Drivers / SDKs" panel installs Blackmagic / AJA / Deltacast / NDI drivers without SSH. node-agent gains NODE_TOKEN-gated /driver/install + /driver/status (spawns a one-shot privileged ubuntu container that bind- mounts host kernel paths + the repo and runs deploy/install-driver.sh); mam-api adds admin-gated /cluster/:id/install-driver + /driver-status. Driver files live in-repo under sdk/<vendor>/ (private repo); binaries are admin-supplied per each sdk/<vendor>/README.md. Vendor allowlist throughout. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
35 lines
1.4 KiB
Markdown
35 lines
1.4 KiB
Markdown
# NDI redistributable runtime
|
|
|
|
Drop the **NDI runtime redistributable** shared libraries into this directory.
|
|
NDI has **no kernel module** — it is purely user-space shared libraries, so this
|
|
is the lowest-risk install (no DKMS, no reboot).
|
|
|
|
## Required files
|
|
|
|
| File | Notes |
|
|
|------|-------|
|
|
| `libndi.so.*` | The versioned NDI runtime shared object, e.g. `libndi.so.6`. **Required.** |
|
|
| `libndi.so` *(optional)* | Dev symlink. The installer recreates it if absent. |
|
|
|
|
You may instead drop the whole **NDI SDK / Advanced SDK** `lib/x86_64-linux-gnu/`
|
|
directory contents here; the installer copies every `libndi*.so*` it finds.
|
|
|
|
Example name: `libndi.so.6.1.1`
|
|
|
|
## Where to get it
|
|
|
|
NDI → Tools / SDK download (NDI 6 SDK or NDI Advanced SDK for Linux). The
|
|
runtime libs live under `lib/x86_64-linux-gnu/` in the SDK. Per the NDI licence
|
|
the runtime is redistributable **within your own product** only — keep it in this
|
|
private repo, do not publish it.
|
|
|
|
## What the install script does
|
|
|
|
1. Copies every `libndi*.so*` from here into `/opt/ndi-lib`.
|
|
2. Writes `/etc/ld.so.conf.d/ndi.conf` pointing at `/opt/ndi-lib` and runs
|
|
`ldconfig`.
|
|
3. Recreates the `libndi.so` → `libndi.so.<N>` dev symlink if missing.
|
|
4. Verifies `ldconfig -p | grep libndi` resolves.
|
|
|
|
**No reboot required.** Running processes that already loaded an old `libndi`
|
|
must be restarted to pick up the new version — the script notes this.
|