No meu computador, tenho 2 GPUs discretas. Tenho usado o VFIO para passar a segunda GPU para uma VM do Windows para trabalhar com alguns programas. Agora quero passar minha primeira GPU mais poderosa para a VM do Windows para jogar alguns jogos. (Posso criar uma segunda VM do Windows, se necessário, isso não é um problema).
Verifiquei com um script se a primeira GPU tem seu próprio grupo IOMMU e tem.
O problema é que o Gnome DE e o gdm3 iniciam sem problemas quando inicializo normalmente ou passo a segunda GPU, mas não quando passo a primeira GPU.
Os monitores ligam/desligam dependendo da GPU aprovada.
Eu tentei reiniciar o gdm3, kill gnome-shell
, reboot, mas não parece ter nenhum efeito para chegar ao DE. O GDM3 começou de alguma forma, mas apenas obteve a senha e voltou ao menu de seleção do usuário.
A saída do script: (excluindo material não necessário, apenas as 2 GPUs)
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
quando ele começa (sem passagem):
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
quando não inicia (primeira passagem de GPU):
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
com depuração habilitada ( /etc/gdm3/custom.conf
, primeira passagem de GPU): https://paste.ubuntu.com/p/cSsDpBynyM/
(a saída é de cerca de 52k caracteres, não posso postar aqui)
Especificações do sistema:
Ubuntu 20.04.5
Kernel 5.15.0-60-genérico
Processador AMD FX 6100
Primeira GPU AMD RX 460 4G
Segunda GPU AMD Radeon 5450
Esta resposta resolveu meu problema de não conseguir iniciar o Gnome com a segunda GPU.
Para entrar em um estado sem sessão X ativa, inicializei com a primeira GPU desativada. Depois disso, mudei para
tty3
e executeiXorg -configure
. Ele criou um arquivo de configuração com 21 placas e telas (estranho, talvez fosse para todos os IDs PCI).Depois de excluir todas as outras placas, exceto minha segunda GPU, todas as telas, exceto as 3 primeiras, copiei o arquivo de configuração
/etc/X11/xorg.conf
e reiniciei.A princípio, queria ver se funcionava quando não desativei a primeira GPU e inicializei normalmente. Os números dos monitores mudaram e quando verifiquei com
xrandr --listproviders
o provedor com o ID 0 era minha segunda GPU. Depois disso, reiniciei e desativei a primeira GPU e ela iniciou o Gnome DE sem problemas.Meu
xorg.conf
arquivo: