在我的电脑上,我有 2 个独立的 GPU。我一直在使用 VFIO 将第二个 GPU 传递给 Windows VM 以处理某些程序。现在我想将功能更强大的第一个 GPU 传递给 Windows VM 以玩一些游戏。(如果需要,我可以创建第二个 Windows VM,这不是问题)。
我已经用脚本检查了第一个 GPU 是否有自己的 IOMMU 组,它确实有。
问题是,当我正常启动或通过第二个 GPU 时,Gnome DE 和 gdm3 启动没有问题,但当我通过第一个 GPU 时却没有。
显示器会根据传递的 GPU 打开/关闭。
我试过重启 gdm3、kill gnome-shell
、重启,但似乎对 DE 没有任何影响。GDM3不知何故启动了,但它只是得到了密码并返回到用户选择菜单。
脚本的输出:(不包括不必要的东西,只有 2 个 GPU)
IOMMU Group 12:
00:15.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] SB700/SB800/SB900 PCI to PCI bridge (PCIE port 0) [1002:43a0]
05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series] [1002:68f9]
05:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series] [1002:aa68]
IOMMU Group 14:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] [1002:67ef] (rev cf)
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X] [1002:aae0]
journalctl -u gdm
当它开始时(无直通):
Feb 11 17:29:53 Alienus-PC systemd[1]: Starting GNOME Display Manager...
Feb 11 17:29:54 Alienus-PC systemd[1]: Started GNOME Display Manager.
Feb 11 17:29:57 Alienus-PC gdm-autologin][1490]: gkr-pam: no password is available for user
Feb 11 17:30:00 Alienus-PC gdm-autologin][1490]: pam_unix(gdm-autologin:session): session opened for user alienus by (uid=0)
journalctl -u gdm
当它不启动时(第一个 GPU passthough):
Feb 11 17:25:58 Alienus-PC systemd[1]: Starting GNOME Display Manager...
Feb 11 17:25:58 Alienus-PC systemd[1]: Started GNOME Display Manager.
Feb 11 17:25:58 Alienus-PC gdm-autologin][2650]: gkr-pam: no password is available for user
Feb 11 17:25:58 Alienus-PC gdm-autologin][2650]: pam_unix(gdm-autologin:session): session opened for user alienus by (uid=0)
Feb 11 17:25:58 Alienus-PC gdm-autologin][2650]: gkr-pam: couldn't unlock the login keyring.
Feb 11 17:25:59 Alienus-PC gdm-autologin][2650]: pam_unix(gdm-autologin:session): session closed for user alienus
Feb 11 17:25:59 Alienus-PC gdm3[1359]: GdmDisplay: Session never registered, failing
Feb 11 17:25:59 Alienus-PC gdm-launch-environment][2659]: pam_unix(gdm-launch-environment:session): session opened for user gdm by (uid=0)
Feb 11 17:25:59 Alienus-PC gdm-launch-environment][2659]: pam_unix(gdm-launch-environment:session): session closed for user gdm
Feb 11 17:25:59 Alienus-PC gdm3[1359]: Child process -2688 was already dead.
journalctl -u gdm
启用调试(/etc/gdm3/custom.conf
,第一个 GPU 直通):https://paste.ubuntu.com/p/cSsDpBynyM/
(输出大约 52k 个字符,我不能在这里发布)
系统规格:
Ubuntu 20.04.5
内核 5.15.0-60-通用
中央处理器AMD FX 6100
第一个 GPU AMD RX 460 4G
第二个 GPU AMD Radeon 5450