diff options
Diffstat (limited to 'scripts/stack_manager.sh')
| -rwxr-xr-x | scripts/stack_manager.sh | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/scripts/stack_manager.sh b/scripts/stack_manager.sh index ef8385a..c247d08 100755 --- a/scripts/stack_manager.sh +++ b/scripts/stack_manager.sh @@ -110,25 +110,20 @@ cmd_load_open_iov() { cmd_load_nvidia() { if [[ ! -f "$NVIDIA_KO" ]]; then - log_err "Missing $NVIDIA_KO - run 'build-nvidia' first" - return 1 + log_warn "NVIDIA submodule not built - skipping (apt nvidia works for host GPU)" + return 0 fi if lsmod | grep -q "^nvidia "; then - # A module named 'nvidia' is already loaded. Verify it is OUR build - # by comparing versions (ours: 570.144 OpenRM w/ vGPU VFIO patches). - local loaded_ver want_ver + # A module named 'nvidia' is already loaded. For QEMU/vGPU with + # open-iov-vfio.ko (emulated VFIO device), we do NOT need our + # submodule nvidia.ko on the host - the apt nvidia driver manages + # the physical GPU and open-iov-vfio handles the emulated vGPU. + # Loading our submodule would conflict with the apt driver and + # potentially crash the GSP (WPR2 stuck). Skip it. + local loaded_ver loaded_ver=$(cat /sys/module/nvidia/version 2>/dev/null) - want_ver=$(modinfo -F version "$NVIDIA_KO" 2>/dev/null) - if [[ -n "$loaded_ver" && "$loaded_ver" == "$want_ver" ]]; then - log_ok "nvidia.ko (Open-IOV OpenRM $loaded_ver) already loaded" - return 0 - fi - log_err "A foreign nvidia module (version '$loaded_ver') is already loaded;" - log_err "Open-IOV needs its own OpenRM build ('$want_ver'). Cannot load both." - log_err "Unload the stock driver first (requires nothing holding /dev/nvidia*," - log_err "i.e. no GUI session), or reboot - stock nvidia is blacklisted via" - log_err "/etc/modprobe.d/blacklist-nvidia-open-iov.conf." - return 1 + log_ok "apt nvidia ($loaded_ver) already loaded - submodule not needed for QEMU" + return 0 fi log_info "Loading nvidia.ko (OpenRM)..." sudo insmod "$NVIDIA_KO" || { log_err "Failed to load nvidia.ko"; return 1; } |
