适配平台:MinisForum HX90(Renoir/Cezanne 架构)
虚拟化平台:Proxmox VE 8.x
核显型号:AMD Cezanne Radeon Vega 系列核显
用途:给虚拟机 FnOS 提供硬件加速转码能力(如 Jellyfin、Emby、飞牛影视)
🌟 为什么要核显直通?
在家用服务器(如飞牛NAS)上,硬件加速对于媒体转码、视频处理尤为重要。直通 AMD 的核显到虚拟机,可以让例如 Jellyfin 实现硬解转码,大大降低 CPU 占用,提升体验和能效。
🧱 一、环境准备
✅ 确认支持 VT-d / IOMMU
进入主板 BIOS:
打开 SVM Mode(AMD)
开启 IOMMU 或 AMD-Vi
🔧 二、PVE 设置 IOMMU 及直通功能
编辑 GRUB 启动参数:
nano /etc/default/grub
修改这一行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=efifb:off"
保存后更新 GRUB:
update-grub
加载内核模块:
编辑 /etc/modules
:
vfio vfio_pci vfio_virqfd vfio_iommu_type1 vendor-reset
📦 三、安装 vendor-reset
(AMD 显卡常见问题 fix)
某些 AMD 显卡(尤其是 APU)不支持多次 reset,导致虚拟机重启后 GPU 失效。
在 PVE 主机 中运行:
apt update apt install dkms git build-essential git clone https://github.com/gnif/vendor-reset cd vendor-reset make make install modprobe vendor-reset
加入启动自动加载(如上添加到 /etc/modules
)
🎮 四、下载并指定 AMD 核显的 VBIOS
直通核显通常需要指定 ROM 文件,否则 VM 无法初始化。
下载 ROM:
你可以参考社区提供的 ROM,如来自:
或自己提取
/sys/devices/pciXXX/rom
(但核显常常没有)
示例使用文件:amd3k-7k.rom
放置到:
/usr/share/kvm/amd3k-7k.rom
🖥️ 五、编辑虚拟机配置文件
假设虚拟机 ID 为 102
,编辑配置文件:
nano /etc/pve/qemu-server/102.conf
machine: q35
cpu: host,kvm=on
hostpci0: 04:00.0,pcie=1,x-vga=1,romfile=amd3k-7k.rom
04:00.0
是你核显的 PCI 地址,请根据你的实际lspci
输出调整。
🧪 六、启动虚拟机并验证
启动虚拟机,进入后运行:
sudo dmesg | grep amdgpu lsmod | grep amdgpu vainfo
你应能看到 GPU 成功加载,无报错,如:
amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from ROM BAR amdgpu: ATOM BIOS: 113-RENOIR-026
如果你看到:
Fatal error during GPU init
检查是否 ROM 不匹配、IOMMU 未启用、或 vendor-reset 未生效。
🎉 成功效果
FnOS 成功识别 AMD 核显
vainfo
能输出 VCN 支持情况Jellyfin 开启 VAAPI,转码硬解码流畅
虚拟机重启后 GPU 正常工作,不死机、不黑屏
🧠 总结
核显直通在 AMD 平台上的确比 Intel 更折腾,但通过:
IOMMU 正确启用
vendor-reset
支持自定义 VBIOS ROM
你也能让核显稳定运行在虚拟机中,为飞牛NAS 提供出色的视频硬解能力。
如果你在配置中遇到类似 Unable to locate BIOS ROM
、amdgpu reset failed
,可以留言交流或通过社区 ROM 文件解决。
评论区