介绍:
您好,我有两个 GPU,一个是 NVIDIA 3060,另一个是 AMD 7800XT。我想将 nvidia 连接到主机本身,并将 amd GPU 直通到 virt-manager 中的 W11 VM。我已经进行了直通,但只是展示我所经历的。
查找 GPU、Passthru 并启用 IOMMU
我首先在 UEFI 中启用 IOMMU,并检查它是否正常工作,结果确实如此。还找到了 AMD GPU 的 PCIe 地址,并记下它以粘贴到默认 grub 中
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:747e] (rev c8)
Kernel driver in use: vfio-pci
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:ab30]
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:ab30]
Kernel driver in use: vfio-pci
(这里是“正在使用的内核驱动程序:”中的原始内容“amdgpu”)以下是 /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt vfio.pci.ids=1002:747e,1002:ab30"
并重新启动。
总的来说,IOMMU 可以正常工作并直通。
修复 GPU 主机接管:
现在我制作并编辑了 /etc/modprobe.d/vfio.conf 文件。
options vfio-pci ids=1002:747e,1002:ab30
softdep amdgpu pre: vfio-pci
之后我跑了:
sudo update-initramfs -u
并重新启动。
证明我做对了:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:747e] (rev c8)
Subsystem: ASUSTeK Computer Inc. Device [1043:05fd]
Kernel driver in use: vfio-pci
Kernel modules: amdgpu
03:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:ab30]
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:ab30]
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
虚拟管理器
芯片组和固件以及 pcie 直通:
芯片组: Q35
固件:UEFI x86_64:/usr/share/OVMF/OVMF_CODE_4M.fd
通过 AMD 7800 XT 的声音和 VGA
(我使用 PRO 设置了 VM 和 Windows 11 标准安装)
在 W11 VM 中
一切正常,我继续安装 virtio 驱动程序。之后我重新启动以确保更加安全。
现在我安装我需要的 AMD GPU 驱动程序。
我安装了 amdsoftware 安装程序并运行它。 第一次运行出错我只需按“确定”并继续。
现在出现推荐的驱动程序(AMD Radeon RX 7800 XT),我只需单击确定并继续。
启动下载驱动程序后出现第二个错误,我只需按确定,它就会运行并开始下载。
驱动程序下载完成后,现在看来我的驱动程序没有问题,一切都很好,但如果我将 GPU HDMI 物理插入其中一个屏幕,它只是一个黑屏...此外,如果我现在重新启动 VMGPU 将提示错误代码 43
我尝试过的事情:
我首先尝试的是使用相同方法通过 NVIDIA 卡。这种方法很完美,但 AMD 卡更好。
我跟着这个reddit(记得按“查看更多回复”)
该链接指向提供 ROM 文件和如何绕过视频卡驱动程序检测的操作指南。
结论
我一直在寻找解决方案,但实际上我不知道现在该做什么,但我最确定的是,由于 NVIDIA passthru 的成功,在较新的 AMD GPU 上存在一种用于 VM 的检测类型,而且我记得我读过一些东西,它正在与旧版本的 AMD GPU 一起工作。所以我可能必须进行某种类型的绕过,但我真的不知道从哪里开始。
我真的希望得到任何帮助。如果有什么不清楚或解释得不好,请评论,以便我可以改进。
感谢您的关注。