Shellscript para alterar drive GPU radeon para amdgpu

Recentemente instalei o Debian 12 para um cliente e notei que ficou muito lento e travando, sendo que as configurações do PC eram boas para tarefas básicas.

I5 de 6° geração
8g de ram
SSD de 240g
Placa de video r7 360

Ao investigar o problema vi no blog Diolinux que o drive de video que estava sendo utilizado era o radeon mas que essa GPU tinha suporte para amdgpu e teria que editar o arquivo /etc/default/grub
Fiz um shellscript para facilitar quem precisar fazer o mesmo.
Esse shellscript verifica se vc tem o amdgpu já ativo, se estiver usando radeon e sua placa for compatível com amdgpu, ele faz as alterações necessárias .
Testei no Debian 12, mas deve funcionar em qualquer derivação.
Link GitHub com as instruções:

8 curtidas

one liner :stuck_out_tongue:


curl -o radeon_to_amdgpu.sh https://raw.githubusercontent.com/phaleixo/radeon_to_amdgpu/main/radeon_to_amdgpu.sh && chmod +x radeon_to_amdgpu.sh && ./radeon_to_amdgpu.sh
1 curtida

Se for pra baixar e rodar o script sem pensar, a opção melhor seria direto curl https://... | bash, mais curto e mais imprudente (e por isso mesmo, mais emocionante).

2 curtidas

obrigado, vou incluir no readme

1 curtida

Esse software vai dar erro com um punhado de iniciantes, ele não faz verificação se esta sendo executado como root ou com o sudo para avisar o usuário.

1 curtida

Ele foi feito para instalações do Debian 12 live com Gnome , nesse caso o sudo vem habilitado.
Mas é possível melhorar o código ,se tiver sugestão posso incluir no script.
Estou fazendo outro script mais completo, com remoção de apps duplicados, por exemplo Thunderbird e Evolution , os vários terminais, etc
Além disso o script vai instalar fontes, codecs, o flatpak .Habilitar o flathub e instalar alguns aplicativos de lá.
E claro Instalar drives Nvidia.
Quem puder ajudar, agradeço.

A principal melhoria que eu posso sugerir é que placas gráficas no lspci podem ser de 3 tipos

  • VGA compatible controller
  • Display controller
  • 3D controller

Porém, o script só reconhece placas que saem como VGA compatible controller. A minha, por exemplo, sai como Display controller e o script não funcionaria nela.

Tenho outras ideias, mas são mais questões de estilo que não vão mudar muito o funcionamento:

  • Lidar com erros usando ||.
  • Analisar o arquivo do grub para ver se as opções já existem e se não, interromper o script.
  • Tirar os blocos de echo repetidos em cada if/elif e deixar no cabeçalho logo.
  • Em vez de analisar a saída de lspci -k para saber se o AMDGPU está carregado, ver se há há a pasta /sys/module/amdgpu com test -d. Assim, o lspci só precisa ser chamado uma vez.
1 curtida

Qual a sua placa de video?

Ele deixo ela descrita no perfil.

Não tenho uma placa de video como a sua para testar Se puder rode esse comando:

lspci | grep -E 'VGA compatible controller|Display controller|3D controller'

E informe a saída do terminal

00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620] (rev 02)
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Jet PRO [Radeon R5 M230 / R7 M260DX / Radeon 520/610 Mobile] (rev c3)

(Sim, o código como está ia deixar passar batido a minha GPU AMD e pegar só a integrada Intel.)

EDIT: tem a opção -d para selecionar os dispositivos pelo código hexanumérico do fabricante; como o da AMD é 1002, pode usar -d '1002:*'. Se souber inglês, no man lspci tem mais detalhes.

O código hexadecimal da Nvidia é:

01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750] (rev a2)