### 贴一段我几个月前折腾 PVE win 显卡直通的笔记,也是折腾好几天看了好多教程才搞定。网上有很多 Vgpu 的方案,我只有一台 win 需要显卡直通,所以用独享直通方案。
PVE8 以后内核默认支持直通,不需要修改内核启动参数,很多教程都严重滞后。
#引用教程 [PVE8.2 核显直通到 Windows10
https://www.meowpass.com/pages/4bd3bc/]
args: 这个参数用于向 QEMU 传递额外的命令行参数,以进一步配置虚拟机。
Win10LTSC 虚拟机主要几个选项设置如下:
16G/8C/UFEI/none/PCi440fx9.0/SCSI/EFI/QGA 启用
配置文件增加 [/etc/pve/qemu-server/202.conf]
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on
hostpci0: 0000:00:02,legacy-igd=1,romfile=intel-11-14.rom
完成以上两项配置后启动虚拟机,此时 PVE 控制台是看不到 win 画面的,本地起 mstsc 直接进,系统显卡驱动终于能识别且正常工作。把显卡直通给虚拟机后,支持 PVE 宿主机启动选择进入 PVE 还是 Win ,实现一机两用。
参数解释:
args: 这个参数用于向 QEMU 传递额外的命令行参数,以进一步配置虚拟机。
-set device.hostpci0.addr=02.0: 设置直通的 iGPU 设备地址。02.0 是设备的 PCI 地址。
-set device.hostpci0.x-igd-gms=0x2: 配置 iGPU 的图形内存大小( GMS ,Graphics Memory Size )。0x2 代表一个特定的内存大小值(具体含义请参考相关文档或硬件规格)。
-set device.hostpci0.x-igd-opregion=on: 启用 iGPU 的 OpRegion 支持,OpRegion 是一个 BIOS 扩展,用于操作系统与 iGPU 之间的通信。
hostpci0: 0000:00:02.0: 这是直通的 iGPU 设备的 PCI 地址。
legacy-igd=1: 这个参数用于启用 iGPU 的传统模式支持,确保 iGPU 能够在虚拟机中正确初始化和工作。
romfile=n100.rom: 指定用于 iGPU 的 VBIOS 文件(在前面步骤中你放置到/usr/share/kvm/目录下的 vbios_gvt_uefi.rom 文件)。
最重要的 [romfile=n100.rom] 从网上搜索下载人家调试好的 [
https://www.meowpass.com/assets/page-img/2024/20240703/n100.rom]