博客

  • 为PVE8.4设置6800H显卡直通

    参考地址:pve系列: amd显卡直通

    方案目标:

    让宿主系统完全不使用核显(包括关闭 EFI framebuffer 和 amdgpu 驱动加载),
    让核显被 VFIO 接管,从而可以 passthrough 给虚拟机。


    ⚙️ 总体流程

    1. 启用 IOMMU + ACS override
    2. 屏蔽宿主系统对核显的使用(禁用 EFI framebuffer + amdgpu)
    3. 使用 EFI stub 启动 Linux 内核,避免系统初始化时触碰显卡
    4. VFIO 接管核显(通过 PCI ID)
    5. 验证成功后绑定到 VM

    ✅ 一步步实现


    🧩 Step 1:启用 IOMMU + 禁用 EFI framebuffer

    编辑 grub 配置文件:

    nano /etc/default/grub
    

    将原本的:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    

    修改为如下:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=efifb:off pcie_acs_override=downstream"
    

    解释:

    • amd_iommu=on iommu=pt:开启 IOMMU 直通
    • pcie_acs_override=downstream:强制打散 IOMMU group
    • video=efifb:off:关闭 EFI framebuffer(防止内核绑定核显)

    保存后,更新 grub:

    update-grub
    

    🧩 Step 2:使用 VFIO 接管核显与HDMI音频

    找到核显/HDMI的设备 ID:

    lspci -nn | grep VGA
    lspci -nn | grep -i audio

    输出显卡和HDMI音频信息:

    e5:00.0 VGA compatible controller [0300]: AMD/ATI Rembrandt [Radeon 680M] [1002:1681]
    e5:00.1 Audio device [0403]: Advanced Micro Devices, Inc. Rembrandt HDMI Audio [1002:1640]

    所以创建 VFIO 绑定配置:

    echo "options vfio-pci ids=1002:1681,1002:1640" | tee /etc/modprobe.d/vfio.conf

    并屏蔽宿主加载 amdgpu

    echo "blacklist amdgpu" | tee /etc/modprobe.d/blacklist-amdgpu.conf
    同理添加以下黑名单:
    blacklist radeon
    blacklist snd_hda_intel
    blacklist drm_kms_helper
    blacklist drm

    🧩 Step 3:启用 VFIO 模块提前加载

    编辑文件 /etc/initramfs-tools/modules,加入以下内容:

    vfio
    vfio_pci
    vfio_iommu_type1
    vfio_virqfd
    

    🧩 Step 4:更新 initramfs 并重启

    执行以下命令:

    update-initramfs -u -k all
    reboot
    

    🧪 Step 5:验证 VFIO 是否接管核显

    重启后执行:

    lspci -nnk -d 1002:1681
    

    输出应为:

    Kernel driver in use: vfio-pci
    

    如果是 amdgpu,说明有步骤未成功。


    🧩 Step 6:编辑 VM 配置,绑定核显

    这是很重要的一个步骤,添加vbios让虚拟机可以正常初始化加载直通显卡,否则驱动安装失败,显卡无法使用。

    下载对应核显CPU型号(此处为6800H)的rom及bin文件:

    ryzen-gpu-passthrough-proxmox

    下载好的rom及bin文件放入pve宿主机的/usr/share/kvm目录下

    编辑你的 VM 配置:

    nano /etc/pve/qemu-server/100.conf

    添加(ID、ROM、BIN一定与上述名称对应一致):

    hostpci0: e5:00.0,pcie=1,x-vga=1,romfile=vbios_6800h.bin
    hostpci1: e5:00.1,romfile=AMDGopDriver_6800H.rom
    


    PVE虚拟机配置信息:

    BIOS:OVMF(UEFI)(提前添加EFI硬盘)

    显示:无

    机型:q35

    额外提示:Windows虚拟机及驱动安装好后,验证所有功能OK后,可以打Reset Bug的补丁:RadeonResetBugFix

  • 世界,您好!

    欢迎来到我的个人技术博客站,旨在分享编程、AI、极客技术与心得,技术创造美好生活。