O mistério do sistema que não boota nenhuma distro sem o parâmetro amdgpu.dc=0

Saudações a todos os navegantes. Este é meu “last resort”, já fui a diversos fóruns especializados, já cansei o povo do Reddit, mas parece que não há solução.
Meu sistema consiste em uma mobo MSI Bazooka V2, GPU RX 570 e CPU Ryzen 5 2400G da AMD. Era pra funcionar liso, certo? Só que ao contrário, o incrível número de 12 distros testadas, variando dos Kernels 4.17 ao 5.4, instaladas ou em live CD, nenhuma, absolutamente nenhuma dá sinal 0gráfico se eu não bootar com o parâmetro amdgpu.dc=0 (ou nomodeset) no kernel! BIOS da mobo 100% atualizada. Sistema funciona normalmente com os parâmetros supracitados. Alguém tem alguma ideia do que eu possa fazer? Estou há uma semana nessa batalha e prestes a me entregar. Obrigado pela atenção!

Uma vez o “último recurso” que eu fiz foi tirar a GPU e encaixar de novo. Aí parou de dar kernel panic aleatório na inicialização e carregava o driver amdgpu certinho.

Boa sugestão, não tinha pensado nessa possibilidade. Por mais que depois do BIOS update eu tenha tirado e reintroduzido o cabo de força nela, a troco de nada! Vou tentar reencaixá-la e torcer pra dar certo.
Cabe um adendo. Eu consigo dar ssh dentro da máquina, isso quer dizer que o kernel não tá travado mas não consegue gerar imagem depois que inicia!

Você não é o único com esse problema, algumas revisões das RX 3xx e RX4xx tem apresentado esse problema desde o kernel 4.17.. A AMD faz algumas mudanças na maneira como o kernel detecta as saída da placa nessa versão. Talvez um encaixe e um reencaixe resolva, mas se não, tendo em vista que o:

você pode se tirar o inconveniente de ter que editar esse parâmetro do kernel toda vez que inicia a distro instalada abrindo o /etc/default/grub por sudo e mudar

GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3"

para

GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 amdgpu.dc=0"

Seguido de

sudo update-grub # Debian, Ubuntu, Mint, Zorin, derivados
sudo grub-mkconfig -o /boot/grub/grub.cfg #Arch Linux, Manjaro, etc.

Até onde eu sei, nenhuma função da placa é perdida fazendo isso.

2 curtidas

Esta era uma das minhas preocupações, o que eu estaria perdendo utilizando esse parâmetro. Admito não ter rodado nenhum benchmark para testar a performance da máquina nestas condições mas é o que farei assim que chegar em casa. Muito obrigado pela atenção.

Consigo utilizar o sistema sem o parâmetro amdgpu.dc=0 se durante a tela preta eu desplugar o HDMI da GPU e plugá-lo novamente. Por quais razões? Fica aí o mistério…

No meu comentário acima:

Muito provavelmente o que você fez ativou uma nova detecção de saídas e nesse intervalo o driver percebeu que esqueceu de uma.

Reitero que o amdgpu.dc=0 não tira nem põe nada nas outras funções do driver, como OpenGL e Vulkan, e é suportado pela AMD nas placas não-RX Vega. Adicioná-lo nas opções de inicialização da sua distro pelo procedimento acima ou pelo GRUB Customizer é sim uma solução (ou os seus benchmarks disseram o contrário?).

Perfeitamente! Desenvolvi alguns testes e não parece ter havido perdas notáveis. Estou utilizando esse parâmetro no boot com tranquilidade. Apenas adicionei mais uma curiosidade a essa situação intrigante.
@edit: Despluguei o cabo HDMI e repluguei ele durante um desses acessos de tela preta na distro elementaryOS. Rebootei o sistema sem qualquer parâmetro adicional (nem mesmo o famigerado amdgpu.dc=0) e magicamente o sistema bootou normalmente. Fui abençoado pelos deuses? Haha obrigado pela força galera, tudo liso agora!

Tirar o suporte ao engine DC nas placas da série RX acaba tirando o suporte ao som HDMI dessas placas. Nenhum problema caso seja usado em monitor que não tem saída de som, mas eu já fiz isso e não saía mais som na TV, embora o pulseaudio mostrasse o dispositivo HDMI. Não testei do display port.

1 curtida