• 参考资料
  • 硬件配置
    • 主板:MS-终结者 Z790M D5
    • CPU:I5-13600K
    • TypeC一线通触摸屏显示器
    • HDMI显示器
    • 一根DP转TypeC线(注意实际上准确描述是DP视频+TypeC供电+USB触摸转TypeC一线通哦)
    • 一更HDMI线
  • 准备工作:
    • 第一步:查询自己的核显PCI信息
      1
      2
      3
      lspci -nn | grep -iE "(VGA|Audio)"
      00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770] [8086:a780] (rev 04)
      00:1f.3 Audio device [0403]: Intel Corporation Device [8086:7a50] (rev 11)
    • 第二步:两个ROM文件准备
      1
      2
      3
      4
      5
      6
      7
      8
      9
      显卡ROM文件
      1. 直接使用Github上的gen12_igd.rom(注意,我改了个名字叫:IntelGopDriverGPU.rom)
      声卡ROM文件
      2. 下载主板的BIOS
      3. 将BIOS文件复制到UBU脚本同级目录
      4. 使用UBU.bat脚本导出GOP文件:双击UBU.bat,然后按下 2 S 显示成功即可
      5. 将IntelGopDriver.efi文件复制到EfiRom.exe同级目录下执行如下命令:
      .\EfiRom.exe -f 0x8086 -i 0xa780 -e IntelGopDriver.efi
      6. 后续会将命令生成的:IntelGopDriver.rom 文件作为声卡的rom文件
    • 第三步:复制IntelGopDriver.romIntelGopDriverGPU.rom(实际就是igd项目的gen12_igd.rom,我就改了个名字)到PVE的/usr/share/kvm/目录
  • PVE系统修改:通过官方教程开启系统的硬件直通功能(操作前记得开启主板的CPU虚拟化和IOMMU才能成功)
    • 第一步:修改启动参数
      1
      2
      3
      4
      vi /etc/default/grub
      GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
      # 可选 initcall_blacklist=sysfb_init 让PVE画面开机后不再输出。
      # 建议 pcie_acs_override=downstream,multifunction 增加PCI分组规则,Intel平台基本都要加
    • 第二步:增加启动时加载的内核模块
      1
      2
      3
      4
      5
      vi /etc/modules
      # Passthrough
      vfio
      vfio_iommu_type1
      vfio_pci
    • 第三步:添加内核模块黑名单
      1
      2
      3
      vi /etc/modprobe.d/blacklist.conf
      blacklist i915
      blacklist snd_hda_intel
    • 第四步:执行命令
      1
      2
      3
      update-grub
      update-initramfs -u -k all
      reboot
  • PVE创建虚拟机(一些建议和说明):建议勾选高级选项,可以看到更多选择。尽量使用默认的,因为默认一般情况下都是最稳的。
    • 常规选项:全默认。这里可以指定自启动和启动顺序,启动顺序。
    • 操作系统选项:全默认。选择安装的系统镜像,注意版本是否对应。
    • 系统选项:部分默认。
      • SCSI控制器:VirtIO SCSI single 目前性能最好。
      • Qemu代理:勾选,不然虚拟机无法通过网页控制。
      • BIOS:选择OVMF使用EFI方式。
    • 磁盘选项:部分默认。
      • 总线:SCSI,性能最好
      • 缓存:无缓存,选这个最稳;Write back (不安全),性能最好
      • IO Thread:勾选,提高性能
      • SSD仿真:SSD就勾选,不是SSD就不勾选
    • CPU选项:部分默认。
      • 类别:Host,性能最优。
      • 启用NUMA:1个CPU不要勾选;2个或以上CPU勾选,优化性能。
    • 内存选项:部分默认。
      • Ballooning设备:勾选,让内存动态分配。
    • 网络选项:部分默认。
      • 模型:VirtIO (半虚拟化),性能最优。Intel E1000,免驱网卡。
  • 修改虚拟机配置文件:主要参考开源项目说明。
    1
    2
    3
    args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on -debugcon file:/root/igd_debug.log -global isa-debugcon.iobase=0x402
    hostpci0: 0000:00:02.0,legacy-igd=1,romfile=IntelGopDriverGPU.rom
    hostpci1: 0000:00:1f.3,romfile=IntelGopDriver.rom
  • 双显示器配置
    • 触摸屏:普通TypeC接口无法支持视频输出,需要购买DP转TypeC线连接触摸屏,这种线主机端需要接DP(用于显示输出)和TypeC用于供电和触摸。
    • 普通:直接连接HDMI即可