在PVE中实现核显直通一直是All in One用户的热门需求。无论是为了搭建高效的影音服务器,还是希望在虚拟机中享受硬件加速,核显直通都能大幅提升性能体验。本文将介绍一种使用MMTool软件从BIOS中提取核显GOP和VBIOS模块,并合并生成完整ROM文件的方法。
为什么需要核显直通?
核显直通允许虚拟机独占使用宿主机的集成显卡,从而获得近乎原生的图形性能。这对于需要硬件编解码的媒体服务器(如Jellyfin、Plex)、轻量级游戏虚拟机,或需要GPU加速的应用程序至关重要。传统方法往往需要编译定制OVMF固件,过程复杂且容易出错。而本文介绍的方法通过直接操作BIOS文件提取必要模块,大大简化了流程,提高了成功率,适用于Intel 4-14代及AMD全系列CPU的核显。
准备工作
在开始之前,需要准备以下工具和环境:
- MMTool软件(用于BIOS模块操作)
- EfiRom工具(来自EDK2项目,用于合并ROM)
- 主板BIOS文件(可从官网下载或使用AFUWIN在Windows下提取)
- Proxmox VE 环境
♥工具包下载:
百度网盘:
https://pan.baidu.com/s/1qbu-YB5YWAOOtw46r0ey9Q?pwd=fqkj 提取码: fqkj
夸克网盘:
https://pan.quark.cn/s/90d95043e5f4 提取码:VnSE
在PVE中查看并记录核显ID:
lspci -D -nn | grep VGA
重要提醒:操作前请备份原有BIOS和重要数据。如果之前定制过OVMF固件,请将定制的文件复原,以免影响本次操作。
本文主要参考李晓流大神B站教程。
使用MMTool提取GOP和VBIOS
第一步:获取BIOS文件
首先需要获取主板的BIOS文件。建议从主板官网下载对应型号的最新BIOS,或使用AFUWIN等工具在Windows环境下提取当前主板的BIOS,确保BIOS文件为ROM格式。
- 天钡官网云盘:天钡云盘
- 若你无法提取你物理机BIOS,可以到华擎官网下载与自己同代处理器的都可以通用:
https://www.asrockind.com/zh-cn/download-center
第二步:使用MMTool提取模块
MMTool是一款功能强大的BIOS工具,可以插入、替换、删除和提取BIOS资源。
- 打开MMTool,点击”打开”按钮加载你的BIOS文件(.rom格式)。
- 切换到”Option ROM”或相应标签页,查看所有模块列表。
- 在列表中识别核显相关模块:
- Intel平台:查找Vendor ID为8086的模块
- AMD平台:查找Vendor ID为1002的模块
- 注意Vendor ID和Device ID为空(N/A)的模块通常是核显GOP
- 选择导出Option ROM-应用,分别导出GOP驱动和VBIOS模块(通常各有两个关键模块)。
合并生成ROM文件
获取到GOP和VBIOS模块后,需要使用EfiRom工具将它们合并成完整的ROM文件。
Win+R,以管理员身份运行cmd,cd 到EfiRom文件夹
对于AMD平台:
.\EfiRom.exe -b .\15e7 .\164c .\1638 -e .\gop -f 0x1002 -i 0xffff -o amd.rom
注意这里的文件名称(.\15e7 .\164c .\1638 -e .\gop)是上面生成的文件的名称,-i参数后的ffff可以替换为你的核显设备ID(如15e7),amd.rom可自定义输出文件名。
对于Intel平台:
.\EfiRom.exe -e .\gop .\IgdAssignmentDxe.efi .\PlatformGOPPolicy.efi -f 0x8086 -i 0xffff -o Intel.rom
同样,ffff可替换为你的核显设备ID(如3185),intel.rom可自定义输出文件名。
运行结束后在EfiRom文件中获取到***.rom的文件,将生成的ROM文件上传到PVE的/usr/share/kvm目录。
文件上传工具推荐:
PVE环境配置
生成ROM文件后,需要配置PVE环境以支持核显直通。可以参考我之前的教程:
《PVE all in one保姆级教程:iKuai+iStoreOS, 核显SR-IOV, 飞牛fnOS, 黑群晖, TrueNAS, Windows10》
1. 启用IOMMU支持(pve中已设置的请忽略)
编辑GRUB配置启用IOMMU:
nano /etc/default/grub # 对于Intel CPU GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction" # 对于AMD CPU GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt initcall_blacklist=sysfb_init pcie_acs_override=downstream,multifunction"
按Ctrl+X -> Y – >回车退出。
更新GRUB并重启:
update-grub && reboot
2. 添加驱动黑名单
编辑黑名单配置文件,阻止宿主机使用核显驱动。
如有重复项记得删除。
解释:屏蔽三大显卡驱动,屏蔽hdmi声音驱动;
options,options vfio_iommu_type1 allow_unsafe_interrupts=1。允许不安全的设备中断
nano /etc/modprobe.d/pve-blacklist.conf # 在里面加入 blacklist nvidiafb blacklist nouveau blacklist nvidia blacklist snd_hda_codec_hdmi blacklist snd_hda_intel blacklist snd_hda_codec blacklist snd_hda_core blacklist radeon blacklist amdgpu blacklist i915 options vfio_iommu_type1 allow_unsafe_interrupts=1
按Ctrl+X -> Y – >回车退出。
查看并记录核显、音频ID,核显一般带VGA。
lspci -D -nn | grep VGA lspci -D -nn | grep Audio
更新initramfs模块并重启PVE
update-initramfs -u -k all reboot
3. 配置虚拟机
虚拟机配置要点:
- 现阶段建议安装Windows10。Windows11不是不能用,但我的体验bug相对多一些
- Intel平台:虚拟机类型选择i440fx,固件选择OVMF(UEFI)
- AMD平台:虚拟机类型选择q35
- 系统类型建议选择Linux(或者安装完成在直通核显前切换为Linux)。Windows或其他类型可能会导致安装核显驱动等bug
- CPU类型选择host
- 硬盘可以选sata,也可以scsi(sata主要针对有游戏的需要)
- 切记将虚拟机显示设置为”无”(none)
- 添加PCI设备核显,勾选主GPU,ROM-Bar,PCI-Express这3个选项,不勾选所有功能
- 添加PCI设备声卡
- 添加PCI设备USB键鼠
在PVE中执行命令(102是你创建核显直通的虚拟机ID):
nano /etc/pve/qemu-server/102.conf
在文件中增加一行:
#对于Intel,这行用于设置核显额外参数,包括把设备地址设置为02.0,设置x-igd-gms大小并启用x-igd-opregion args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=1 -set device.hostpci0.x-igd-opregion=on
#对于AMD
args: -cpu host,hypervisor=off
添加或修改hostpci0开头的这一行,这行用于添加核显,开启 legacy-igd 模式,加载 romfile。
#对于Intel hostpci0: 0000:00:02,legacy-igd=1,romfile=***.rom
#对于AMD(AMD加了直通声卡)
hostpci0: 0000:06:00.0,pcie=1,x-vga=1,romfile=***.rom
hostpci1: 0000:06:00.1,rombar=0
按Ctrl+X -> Y – >回车退出。
启动虚拟机后,可以看到PVE BIOS的开机画面,Windows也能够驱动核显,就表示所有直通的操作成功成了。
故障排除与注意事项
- AMD复位错误(Reset Bug):
这是AMD GPU直通的老问题,可安装RadeonResetBugFixService解决。
安装方法:下载解压放在C盘根目录,cmd管理员模式下运行:
RadeonResetBugFixService.exe install - 直通后宿主机无显示:这是正常现象,核显已完全交由虚拟机使用。
- BIOS设置关键:
- 启用VT-d/IOMMU
- 禁用CSM(使用纯UEFI环境)
- 预分配DVMT内存为64M或更高
- 关于关机、重启:直通后的Windows要在系统中正常关机或重启,不然你可能核显无法驱动并输出画面,此时需要重启PVE才能恢复。
结语
通过MMTool提取BIOS中的GOP和VBIOS模块,再合并生成完整ROM文件的方法,为PVE核显直通提供了更为简便和通用的解决方案。这种方法避免了复杂的OVMF定制过程,适用于更广泛的硬件平台。
希望本教程能帮助你在PVE环境中成功实现核显直通。如果您有任何问题或经验分享,欢迎在评论区交流。

番茄科技-电脑,手机,网络知识,应用分享












