diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 12:11:10 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-09-23 12:11:10 -0400 |
| commit | 13f46e60760cc0855484cc69de913ea34f55c24f (patch) | |
| tree | df67eb2dfc5afd2c56845e514624a4842152a1f1 /docs/BUILD_NVIDIA_OPENRM.md | |
| parent | 21b8ebc9db1d0ae649d6406087ea22b54e3b5775 (diff) | |
| download | open-iov-13f46e60760cc0855484cc69de913ea34f55c24f.tar.gz open-iov-13f46e60760cc0855484cc69de913ea34f55c24f.zip | |
docs: refresh status, supersede stale material, link the CUDA analysis
* Status now matches the live state: guest driver probe and nvidia-smi work;
cuInit/device queries work; cuCtxCreate returns 999 because the emulated
engine list is missing the async copy engine (COPY14). The userspace
libcuda segfault is recorded as solved, with its mechanism (an RM
allocation reply must echo request parameters; zeroing them corrupted the
caller's saved frame pointer).
* Correct the emulation claims: only a subset of RM controls are
special-cased; the rest return a success reply with zeroed parameters whose
consumed fields are still being corrected; allocation replies are coherent
but no server-side object model exists.
* Add the eight-point emulation checklist and reply-fidelity ladder as
explicit gates, documented in userspace/cuda and linked from the
architecture, implementation and operations docs.
* Fix operational errors: build/test commands, module load order, mdev type
names, LFS references, debugfs claims, in-repo firmware claims, CI claims,
portability matrix (guest status, config layout, userspace driver facts).
* Mark historical material: one superseded banner per legacy document with a
pointer to its replacement; STATE.md marked as a 2026-09-21 snapshot.
* Wiki: fix the index, add status banners and in-place factual corrections
(msgq transport vs legacy mailbox, BAR definitions, error statuses,
migration, glossary), and note the archived 2023 imports.
Diffstat (limited to 'docs/BUILD_NVIDIA_OPENRM.md')
| -rw-r--r-- | docs/BUILD_NVIDIA_OPENRM.md | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/docs/BUILD_NVIDIA_OPENRM.md b/docs/BUILD_NVIDIA_OPENRM.md index 5699036..309a64f 100644 --- a/docs/BUILD_NVIDIA_OPENRM.md +++ b/docs/BUILD_NVIDIA_OPENRM.md @@ -1,5 +1,10 @@ # Building NVIDIA OpenRM with Open-IOV vGPU VFIO Symbols +> **Status: historical build notes.** These notes predate the current workflow. +> For the current build/load model see +> [03-architecture/06-host-module-and-hybrid-model.md](03-architecture/06-host-module-and-hybrid-model.md) +> and [02-getting-started/01-install-and-first-run.md](02-getting-started/01-install-and-first-run.md). + ## Overview The NVIDIA OpenRM `nvidia.ko` kernel module requires the vGPU VFIO interface symbols exported by `open-iov-vfio.ko`: @@ -18,8 +23,8 @@ These symbols must be resolved at build time via `KBUILD_EXTRA_SYMBOLS` pointing ``` 1. Build open-iov-vfio.ko → Generates kernel/Module.symvers 2. Build NVIDIA OpenRM with KBUILD_EXTRA_SYMBOLS=kernel/Module.symvers -3. Load nvidia.ko first -4. Load open-iov-vfio.ko +3. Load open-iov-vfio.ko first (exports the vGPU VFIO symbols) +4. Optionally load nvidia.ko (imports those symbols) ``` ## Automated Build (Recommended) @@ -76,12 +81,14 @@ modinfo nvidia-open-gpu-kernel-modules/kernel-open/nvidia.ko | grep -i vgpu ## Module Loading Order ```bash -# 1. Load NVIDIA OpenRM (provides vGPU VFIO symbols) -sudo insmod nvidia-open-gpu-kernel-modules/kernel-open/nvidia.ko - -# 2. Load Open-IOV VFIO driver (registers mdev parent with nvidia.ko) +# 1. Load Open-IOV VFIO driver FIRST (exports the vGPU VFIO symbols and +# registers the mdev parent on the physical GPU) sudo insmod kernel/open-iov-vfio.ko +# 2. Load the optional NVIDIA OpenRM (imports the vGPU VFIO symbols; build it +# with KBUILD_EXTRA_SYMBOLS as above) +sudo insmod nvidia-open-gpu-kernel-modules/kernel-open/nvidia.ko + # 3. Copy firmware sudo cp firmware/57X-GSP/570.144/gsp-570.144.fwimage.bin /lib/firmware/ |
