You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 22.04LTS环境下Virt-manager中AMD 7800XT GPU直通异常问题求助

Ubuntu 22.04LTS环境下Virt-manager中AMD 7800XT GPU直通异常问题求助

大家好,我目前在Ubuntu 22.04LTS上用Virt-manager管理虚拟机,手里有两张显卡:NVIDIA 3060(留给宿主机使用)和AMD 7800XT(计划直通给Win11虚拟机)。我已经完成了基础的直通配置流程,但遇到了棘手的异常问题,想请各位帮忙分析解决。

已完成的直通基础配置

启用IOMMU并绑定VFIO驱动

我先在UEFI中开启了IOMMU功能,确认正常工作后,找到了AMD 7800XT的PCIe设备信息:

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

注:原本这两个设备的驱动分别是amdgpusnd_hda_intel,现在已成功切换绑定到vfio-pci

修改GRUB启动参数

我编辑了/etc/default/grub文件,添加了IOMMU和VFIO相关配置:

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt vfio.pci.ids=1002:747e,1002:ab30"

修改完成后重启系统,确认IOMMU和直通基础功能正常。

配置模块加载优先级

为了避免宿主机抢占AMD显卡资源,我创建了/etc/modprobe.d/vfio.conf文件,内容如下:

options vfio-pci ids=1002:747e,1002:ab30
softdep amdgpu pre: vfio-pci

随后执行了更新initramfs的命令:

sudo update-initramfs -u

再次重启后,确认设备依然稳定绑定在vfio-pci驱动上:

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

Virt-Manager虚拟机配置

创建Win11虚拟机时,我做了以下关键配置:

  • 芯片组:Q35
  • 固件:UEFI x86_64(路径为/usr/share/OVMF/OVMF_CODE_4M.fd
  • 直通了AMD 7800XT的VGA设备和配套音频设备
  • 完成Win11 Pro标准安装后,安装了Virtio驱动并重启,虚拟机系统运行正常

遇到的具体问题

在Win11虚拟机中安装AMD官方驱动时,出现了一系列异常现象:

  1. 启动AMD Software安装程序时弹出错误提示,点击确定后可继续流程
  2. 选择推荐的RX 7800XT驱动开始下载时,再次弹出错误,点击确定后下载能完成
  3. 驱动安装完成后,安装程序提示“一切正常”,但将显示器HDMI线接到AMD显卡上时,屏幕完全黑屏
  4. 重启虚拟机后,设备管理器中的AMD显卡报错误代码43,Adrenalin软件也无法正常识别显卡

已尝试的解决方案

  • 用完全相同的流程直通NVIDIA 3060到Win11虚拟机,全程无异常,驱动安装和显示功能均正常
  • 查找过关于提供显卡ROM文件、绕过驱动虚拟机检测的相关方案,但尝试后未解决问题

我猜测可能是新款AMD显卡内置了虚拟机检测机制,导致驱动无法正常工作,但不清楚具体该从何处入手绕过限制。如果有任何细节我描述得不够清楚,欢迎随时提问,我会补充相关信息。非常感谢大家的帮助!

备注:内容来源于stack exchange,提问作者cookiemonster

火山引擎 最新活动