书接上回

PVE直通Nvidia显卡给Windows10中挖的坑今天咱也是给填上了

我使用的设备是畅网微控5800U软路由

BIOS和PVE基础设置

首先BIOS设置打开IOMMUSVM

然后是经典的参照安装PVE并开启硬件直通配置好直通环境。

提取VBIOS和GOP

准备主板BIOS文件和相关工具

去你主板官网下载你使用主板的BIOS固件。

需要用到2个工具,UEFI BIOS Updater(UBU)edk2-BaseTools-win32

UBU的官方MEGA下载链接

edk2-BaseTools-win32直接把repo下载下来就可以。

查看核显ID

PVE shell输入lspci -D -nn | grep VGA

1
2
root@pve:~# lspci -D -nn | grep VGA
0000:07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1638] (rev c1)

其中[1002:1638]即为核显ID,前后部分都有用,记住。

提取VBIOS

  1. 解压UBU,把主板BIOS固件(通常是.bin文件)扔到其目录下,运行UBU.cmd
  2. 等待软件扫描固件,然后依次选择2 - Video OnBoardX - Extracted
  3. 导出文件在Extracted文件夹里,有VBIOSGOP两个文件夹。
  4. 进入VBIOS文件夹,进入目录最深层,有一堆后缀不同的vbios_xxxx.dat文件,后缀匹配核显ID后半部分.dat文件即为所需,复制出来备用。

提取GOP

  1. 在提取VBIOS的步骤三,Extracted文件夹里的GOP中,有GOP.efi文件,通常是AMDGopDriver.efi,需要转换成.rom文件。
  2. 使用edk2-BaseTools-win32进行转换,先解压,把.efi文件扔到EfiRom.exe的同级目录。
  3. EfiRom.exe所在目录打开cmd,用EfiRom.exe -f 0x1002 -i 0x1368 -e AMDGopDriver.efi进行格式转换,得到AMDGopDriver.rom其中0x10020x1368分别对应核显ID的前后半部分。

直通

准备

  1. 按照屏蔽显卡驱动添加AMD屏蔽
  2. 创建虚拟机装系统,机型选q35,用UEFI,勾上Qemu代理,显示设备在装好系统以后改成none。
  3. 上传AMDGopDriver.romvbios_xxxx.dat2个文件到/usr/share/kvm目录。
    1
    scp AMDGopDriver.rom root@192.168.2.1:/usr/share/kvm

虚拟机加载VBIOS和GOP

首先给虚拟机添加PCI设备,核显和核显附带的声卡2个设备都添加上去,一定要2个分别添加,切忌勾选所有功能。核显要勾选主GPUPCI-Express

编辑虚拟机配置文件,虚拟机id记得替换。

1
nano /etc/pve/qemu-server/103.conf

在核显的后面添加romfile=vbios_1638.dat,声卡的后面添加romfile=AMDGopDriver.rom

示例

1
2
hostpci0: 0000:07:00.0,pcie=1,x-vga=1,romfile=vbios_1638.dat
hostpci1: 0000:07:00.1,romfile=AMDGopDriver.rom

启动虚拟机,Enjoy it!

参考链接

https://www.bilibili.com/video/BV1ZN411n74e
https://www.bilibili.com/video/BV11d4y1G7Nk