vdi-cloud/docs/gpu-passthrough-20261030.md
songyiming ade16efe49 功能:GPU 数据展示看板上线(http://192.168.1.51:8090,systemd 自启);修正 GPU/IOMMU 实测事实
- tools/gpu_dashboard.py:宿主机端采集(lspci/sysfs/qm),直通前显示驱动/解绑/IOMMU 状态,直通后经 guest agent 采 nvidia-smi 实时利用率/显存/温度/NVENC 会话
- 实测修正:GPU 为 CLEVO 准系统 GM204M/965M(非笔记本误判);IOMMU 已启用(组 2 = 00:01.0 + 01:00.0 整组直通);Maxwell 需 R580 legacy 驱动
- docs/gpu-passthrough-20261030.md:明日直通操作单
2026-10-30 09:52:18 +08:00

2.7 KiB
Raw Blame History

GPU 直通前置核查与数据看板(2026-10-30)

硬件事实(SSH 到宿主机实测,修正旧文档误判)

宿主机 starhe(192.168.1.51,pve-manager/9.2.21,内核 7.0.2-6-pve):

00:02.0 VGA  : Intel 4th Gen Core (Haswell) iGPU [8086:0416]  驱动 i915(宿主显示用,保留)
01:00.0 3D   : NVIDIA GM204M [GeForce GTX 965M] [10de:13d9]   驱动 nouveau(直通前需解绑)
两者 Subsystem 均为 CLEVO/KAPOK [1558:6557]
  • 机身是 CLEVO 准系统(外形像台式机箱),GPU 是移动版 GM204M/965M—— 此前"笔记本"与"IOMMU Group 2 独占"的记载部分有误,以本页为准。
  • HDMI 音频功能(01:00.1)不存在,无需处理。
  • IOMMU 实测已启用(/sys/kernel/iommu_groups 有 15 组,DMAR 生效; 内核 6.8+ 默认开启,不需要显式 intel_iommu=on)。
  • GPU 位于 IOMMU 组 2,组内设备:0000:00:01.0(root port)+ 0000:01:00.0(GPU), 直通需整组传入。
  • VM 100:q35 + SeaBIOS、4 核 8G、win10,未配置 hostpci。

明日直通操作单(按序执行)

  1. 约窗口:宿主机重启会让全部 VM(100/101/102)停机。
  2. 解绑 nouveau:/etc/modprobe.d/blacklist.conf 加 blacklist nouveau, update-initramfs -u,重启宿主机(重启后 lsmod | grep nouveau 应为空)。
  3. 绑 vfio:/etc/modprobe.d/vfio.conf 写 options vfio-pci ids=10de:13d9 (含 root port 的话用 QEMU 参数整组传),重启后确认 lspci -nnk -s 01:00.0 显示 Kernel driver in use: vfio-pci(看板会自动变绿)。
  4. 挂载:qm set 100 -hostpci0 00:01.0,pcie=1(按组传;若启动报隔离不满足, 用 -hostpci0 0000:00:01.0;0000:01:00.0 形式补传 root port)。 vBIOS ROM 先不挂,Code 43 在 R465+ 驱动已移除检测。
  5. VM 内装驱动:Maxwell 已进 legacy 分支,装 R580 系驱动(提前下载好放 VM)。
  6. 验证:VM 内 nvidia-smi 出卡 → 看板"VM 内实时数据"卡片自动出现利用率/显存/温度。
  7. Sunshine 切 NVENC(配置 encoder=nvenc 或按其自动探测),1080p60 复测帧率。

GPU 数据看板(已上线)

  • 地址:http://192.168.1.51:8090/(自动刷新 4 秒)
  • 源码:tools/gpu_dashboard.py(宿主机 /root/gpu_dashboard.py, systemd 单元 gpu-dashboard.service 已设开机自启)
  • 直通前显示:型号/驱动/直通阶段/IOMMU 状态与组内设备/VM 配置; 直通后自动经 qm guest exec 100 采集 nvidia-smi:利用率、显存、温度、 驱动版本、功耗、NVENC 编码会话数。
  • 手动重启:systemctl restart gpu-dashboard。
  • 后续:接管理平台后,该数据源可换成平台 GPU 池接口(Web 控制台监控模块复用)。