#!/bin/bash # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2026 Open-IOV contributors # load_vgpu_stack.sh - Load complete vGPU driver stack # Usage: ./load_vgpu_stack.sh [firmware_name] set -euo pipefail FIRMWARE_NAME="${1:-gsp-570.144.fwimage.bin}" BASE_DIR="${OPEN_IOV_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}" NVIDIA_KO="$BASE_DIR/nvidia-open-gpu-kernel-modules/kernel-open/nvidia.ko" VFIO_KO="$BASE_DIR/kernel/vgsp.ko" FIRMWARE_PATH="$BASE_DIR/firmware/57X-GSP/570.144/$FIRMWARE_NAME" echo "==========================================" echo "Loading vGPU Driver Stack (Refactored: Host-only GSP Emulation)" echo "==========================================" echo "Firmware: $FIRMWARE_NAME" echo "" # Check files exist for f in "$NVIDIA_KO" "$VFIO_KO" "$FIRMWARE_PATH"; do if [[ ! -f "$f" ]]; then echo "ERROR: Missing file: $f" exit 1 fi done # Load vgsp.ko FIRST (provides symbols nvidia.ko needs) if lsmod | grep -q "^vgsp "; then echo "vgsp.ko already loaded" else echo "Loading vgsp.ko..." sudo insmod "$VFIO_KO" echo " OK" fi # Check if already loaded if lsmod | grep -q "^nvidia "; then echo "nvidia.ko already loaded" else echo "Loading nvidia.ko (OpenRM)..." sudo insmod "$NVIDIA_KO" echo " OK" fi echo "" echo "==========================================" echo "Driver Stack Loaded Successfully" echo "==========================================" lsmod | grep -E "nvidia|open_iov" echo "" echo "Device nodes:" ls -la /dev/nvidia* 2>/dev/null || echo " (none yet - create mdev first)" echo "" echo "Next steps:" echo " 1. Create mdev: $BASE_DIR/scripts/create_mdev.sh" echo " 2. Launch QEMU: $BASE_DIR/scripts/launch_qemu_vgpu.sh"