From d202bd6df1e35d680f623fea5b3f6ef5b5b84660 Mon Sep 17 00:00:00 2001 From: songyiming <1000000008@qq.com> Date: Fri, 30 Oct 2026 13:56:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9AGPU=20=E7=9B=B4?= =?UTF-8?q?=E9=80=9A=E5=AE=9E=E6=96=BD=E4=B8=8E=E7=9C=8B=E6=9D=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=93=BE=E8=B7=AF=E2=80=94=E2=80=94vfio=20=E6=8E=A5?= =?UTF-8?q?=E7=AE=A1=E3=80=81=E9=A9=B1=E5=8A=A8=E5=AE=89=E8=A3=85=E6=88=90?= =?UTF-8?q?=E5=8A=9F=EF=BC=8CvBIOS=20=E9=98=BB=E5=A1=9E=E4=B8=8E=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E8=B7=AF=E7=BA=BF=E5=B7=B2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/gpu-passthrough-20261030.md | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/docs/gpu-passthrough-20261030.md b/docs/gpu-passthrough-20261030.md index 2344dbb..a68349e 100644 --- a/docs/gpu-passthrough-20261030.md +++ b/docs/gpu-passthrough-20261030.md @@ -44,3 +44,50 @@ 驱动版本、功耗、NVENC 编码会话数。 - 手动重启:`systemctl restart gpu-dashboard`。 - 后续:接管理平台后,该数据源可换成平台 GPU 池接口(Web 控制台监控模块复用)。 + +--- + +# 2026-10-30 实施记录:直通落地成功,卡在 vBIOS,已回退保环境 + +## 已完成并持久化 + +1. 宿主机:blacklist nouveau + vfio.conf(ids=10de:13d9,8086:0c01) + initramfs 更新 + 重启; + 重启后 `01:00.0` 由 vfio-pci 接管,nouveau 0。 +2. VM 100:hostpci0=0000:01:00.0,pcie=1 挂载成功;客户机出现 `3D Video Controller`。 +3. 驱动:582.66 WHQL 经"PC 下载 → 宿主机 8091 HTTP → VM 内网拉取"进入 VM + (VM 直连 NVIDIA CDN 被 403,需走内网中转);安装器兼容性检测拒绝(桌面包 INF 无移动 ID), + 改用 `pnputil /add-driver Display.Driver/nvcvi.inf /install` 成功—— + nvcvi.inf 含我们的精确 ID `PCI\VEN_10DE&DEV_13D9&SUBSYS_65571558`, + 设备绑定成功、`C:\Windows\System32\nvidia-smi.exe` 出现。 +4. 全部 VM 已设 onboot 自启;宿主机新增 systemd 服务:`gpu-dashboard`(8090)、`dl-http`(8091)。 + +## 阻塞点:GM204M 缺少可用 vBIOS,驱动初始化失败(Code 43) + +- 宿主机 dmesg:`Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff` —— + 该 Optimus 移动卡的 ROM BAR 读不出 vBIOS;sysfs 转储 0 字节。 +- 已尝试无效:`cpu host,hidden=1`;`args -cpu host,-hypervisor,hv_vendor_id=...,kvm=off`; + `rombar=0`(设备直接不枚举)。 +- 供体 ROM 实验:TechPowerUp 上两个 "GTX 965M" 条目实为 GM206(1427) 改版(芯片不符); + 同 GM204 的 Clevo GTX 970M(13D8) ROM 经 PCIR 补丁(vendor 10de + device 13d9 + 子系统 6557) + 后 guest 仍不枚举设备。 +- 结论:**需要这块卡(或同款 GM204M/13D9)的真 vBIOS 才能完成驱动初始化**。 + +## 已回退(保客户演示环境) + +- VM 100 已摘除 hostpci 并重启,Sunshine 正常(x264 路线),47989 开放; + 失败安装无残留(无 NVIDIA 目录)。 +- 直通重新启用只需两条命令:`qm set 100 -hostpci0 0000:01:00.0,pcie=1[,romfile=...]` + 重启 VM。 + +## 后续选项(按代价排序) + +1. **宿主机整机冷断电 30 秒以上**(现场 1 分钟操作;Maxwell 多次热重启后设备状态可能损坏, + 冷启动是社区最后一招)→ 开机后重挂 `romfile=gtx965m-fixed.rom`(已留存 + `/usr/share/kvm/gtx965m-fixed.rom`,即 970M ROM 补丁版)再试。 +2. **获取真 GM204M(13D9) vBIOS**:任何可进系统的 965M 机器用 GPU-Z 导出 + (同事/二手渠道),或从 CLEVO BIOS 刷写包提取;放到 `/usr/share/kvm/` 后 romfile 挂载。 +3. 业务备选:若 965M 直通确认不可行,NVENC 需换卡(桌面 GM204 及以上)或改用其他硬件方案。 + +## GPU 数据看板 + +`http://192.168.1.51:8090/`(systemd `gpu-dashboard`,源码 `tools/gpu_dashboard.py`)。 +驱动一旦可初始化,"VM 内实时数据"卡片自动显示利用率/显存/温度/NVENC 会话,无需改代码。