---
title: 在 Proxmox VE 上的 Ubuntu 24.04 VM 中為 Tesla V100 安裝 NVIDIA Driver 和 CUDA 12.9
description: "Proxmox VE / Ubuntu 24.04 / NVIDIA CUDA # 在 Proxmox VE 的 Ubuntu 24.04 VM 上為 Tesla V100 安裝 NVIDIA Driver 與 CUDA 12.9 本文說明如何在 Proxmox VE 上將 Tesla V100 以 PCIe Passthrough 方式直通給 OVMF 虛擬機， 並在 Ubuntu 24.04…"
url: "https://bestnetllc.co.jp/zh-hant/docs/%e5%9c%a8-proxmox-ve-%e4%b8%8a%e7%9a%84-ubuntu-24-04-vm-%e4%b8%ad%e7%82%ba-tesla-v100-%e5%ae%89%e8%a3%9d-nvidia-driver-%e5%92%8c-cuda-12-9/"
updated: "2026-06-08"
category: Tech Blog / GPU 與 LLM 基礎設施
---

# 在 Proxmox VE 上的 Ubuntu 24.04 VM 中為 Tesla V100 安裝 NVIDIA Driver 和 CUDA 12.9

Proxmox VE / Ubuntu 24.04 / NVIDIA CUDA

# 在 Proxmox VE 的 Ubuntu 24.04 VM 上為 Tesla V100 安裝 NVIDIA Driver 與 CUDA 12.9

本文說明如何在 Proxmox VE 上將 Tesla V100 以 PCIe Passthrough 方式直通給 OVMF 虛擬機，
並在 Ubuntu 24.04 端安裝 NVIDIA 驅動程式與 CUDA Toolkit 12.9。
同時也涵蓋 OVMF 環境中常見的 `BAR0 is 0M @ 0x0` /
`This PCI I/O region assigned to your NVIDIA device is invalid`
問題的解決方法。

目標 GPU：Tesla V100
Guest OS：Ubuntu 24.04 LTS
虛擬化技術：Proxmox VE / KVM
開機方式：OVMF（UEFI）

## 本文前提條件

- Proxmox 主機端的 IOMMU / VFIO 設定已完成
- GPU Passthrough 至客體機已可正常運作
- Guest OS 為 Ubuntu 24.04 LTS
- 本文以運算用途的 VM 為前提

## 驗證環境設定

Hypervisor
Proxmox VE / KVMVM BIOS
OVMF（UEFI）Machine Type
q35GPU
Tesla V100 PCIe 32GBGuest OS
Ubuntu 24.04 LTSCUDA Toolkit
12.9

## 為何使用 CUDA 12.9

Tesla V100 屬於 Volta 世代的 GPU。自 CUDA 13 起，Volta 架構的離線編譯與
函式庫支援已被移除，因此建議將 V100 開發環境固定
在 CUDA 12.x 系列較為安全。本文使用 CUDA Toolkit 12.9。

STEP 1

## 在 Proxmox 端設定 VM 以進行 GPU Passthrough

首先，設定虛擬機以進行 GPU Passthrough。
若 OVMF / q35 / Host PCI 設定已完成，請直接前往下一步。

```bash
qm stop 101
qm set 101 --bios ovmf
qm set 101 --machine q35
qm set 101 --hostpci0 65:00,pcie=1
qm start 101
```

**備註：** `101` 為 VMID 範例，`65:00` 為 GPU PCI 位址範例。
請依實際環境的數值進行替換。

STEP 2

## 在 OVMF 環境中擴充 MMIO Aperture

這是最大的陷阱。在 OVMF UEFI VM 中，GPU 的 BAR 資源常常無法被充分映射，
因而導致 `BAR0 is 0M @ 0x0` 或
`This PCI I/O region assigned to your NVIDIA device is invalid` 的錯誤。
此時需加入 `X-PciMmio64Mb` 設定以
擴充 MMIO Aperture。

加入此設定後，實際解決了在 Proxmox 的 OVMF 虛擬機上
`nvidia-smi` 無法正常運作的問題。

```bash
qm stop 101
qm set 101 --args '-fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144'
qm start 101
```

**重點：** 變更設定後，請務必進行
**完整關機後再重新啟動**，而非僅在客體系統內重新開機。

STEP 3

## 在 Ubuntu 24.04 上安裝所需套件

在安裝 NVIDIA 驅動程式與 CUDA Toolkit 之前，請先安裝核心標頭檔與建置相關工具。

```bash
sudo apt update
sudo apt install -y linux-headers-$(uname -r) gcc g++ make wget pciutils
```

STEP 4

## 加入 NVIDIA 官方軟體庫

為 Ubuntu 24.04 加入 NVIDIA 官方 APT 軟體庫。

```bash
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
```

STEP 5

## 安裝 NVIDIA 驅動程式

安裝前請先將驅動程式版本固定在 580 系列。V100 目前仍受 580 系列支援。

```bash
sudo apt install -y nvidia-driver-pinning-580
sudo apt install -y cuda-drivers
```

若希望採用不含 GUI 的純運算設定，也可以
依使用情境切換為以 `libnvidia-compute` 與 `nvidia-dkms` 為基礎的精簡安裝，
但建議先以 `cuda-drivers` 確認一般運作正常後再進行調整。

STEP 6

## 固定並安裝 CUDA Toolkit 12.9

為避免自動追蹤至最新版 CUDA，請使用中介套件 `cuda-toolkit-12-9`，
鎖定為 12.9 系列。

```bash
sudo apt install -y cuda-toolkit-12-9
```

**容量不足時：**完整 Toolkit 容量相當大，因此也可以
先只安裝執行環境與編譯器。

```bash
sudo apt install -y cuda-runtime-12-9 cuda-compiler-12-9
# Add development libraries later if needed
sudo apt install -y cuda-libraries-dev-12-9
```

STEP 7

## 設定 PATH 並重新啟動

設定 PATH 與函式庫路徑以方便使用 `nvcc`，然後重新啟動。

```bash
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
sudo reboot
```

STEP 8

## 確認運作狀態

重新啟動後，請確認 GPU 是否可被辨識、驅動程式是否正常載入，
以及 CUDA 編譯器是否可正常使用。

```bash
source ~/.bashrc
uname -r
lspci | grep -i nvidia
nvidia-smi
nvidia-smi -L
nvcc --version
dmesg -T | grep -E 'NVRM|BAR0|nvidia'
```

若安裝正確，`nvidia-smi` 會顯示 Tesla V100，
`nvcc --version` 則會顯示 CUDA 12.9。

## 疑難排解

### 出現 `BAR0 is 0M @ 0x0`

這幾乎可以確定是 OVMF 的 MMIO Aperture 空間不足所致。請先套用
`qm set 101 --args '-fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144'`，
接著完整關機後再重新啟動。

### `nvidia-smi` 無法與驅動程式通訊

可能是驅動程式的核心模組尚未載入。請先檢查 OVMF 的 MMIO
設定，再確認模組狀態。

```bash
lsmod | grep -E 'nvidia|nouveau'
sudo journalctl -k -b | grep -Ei 'nvidia|nouveau|secure|module verification'
```

### 安裝 Toolkit 過程中磁碟空間不足

完整 Toolkit 容量較大，因此在可用空間有限的 VM 上安裝時可能會中途失敗。
此時請先清除快取，並改用精簡的套件配置以確保安全。

```bash
df -h /
sudo apt clean
sudo apt autoremove -y
sudo apt --fix-broken install
```

## 總結

在 Proxmox VE 上的 Ubuntu 24.04 VM 中為 Tesla V100
安裝 NVIDIA 驅動程式與 CUDA Toolkit 本身並不困難。然而在 OVMF 虛擬機上，
MMIO Aperture 空間不足可能導致 NVIDIA 驅動程式無法啟動，因此
設定 `X-PciMmio64Mb` 是實務上的關鍵重點。

日後建置相同環境時，最好從一開始就同時配置
**OVMF / q35 / PCIe** 與
**MMIO Aperture 擴充**。

## 參考資訊

- [CUDA Installation Guide for Linux](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/)
- [NVIDIA Driver Installation Guide for Ubuntu](https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/ubuntu.html)
- [Known Issues with Large BAR in KVM/UEFI VM](https://docs.nvidia.com/vgpu/latest/known-issues/bug-200719557-vgpu-graphics-driver-fails-to-load-linux-kvm-vm.html)
- [Proxmox VE PCI(e) Passthrough](https://pve.proxmox.com/wiki/PCI%28e%29_Passthrough)

## 免責聲明

本文係依撰寫當下的驗證環境所製作，我們並不保證
內容在特定環境中的正確性、完整性、實用性或運作結果。
依 OS、核心、GPU、韌體、BIOS/UEFI、Proxmox VE、
NVIDIA 驅動程式、CUDA Toolkit 等版本差異或更新狀態不同，本文所述之程序與行為可能有所差異。

- 本文所述程序包含 GPU Passthrough、核心模組安裝及開機設定變更。
- 執行前請先準備備份、快照與維運計畫，並於測試環境中充分驗證。
- 因使用本文內容所導致之任何缺陷、停機、故障、資料遺失或其他損害，我們概不負責。
- 於正式環境中實施與否，由使用者自行判斷並自負責任。
- 文中提及之產品名稱、服務名稱及公司名稱，均為各該公司之商標或註冊商標。
