Quando se fala em Raspberry Pi nós logo pensamos em projetos que podem ser feitos em um final de semana e que não possuem um grau tão grande de complexidade. No entanto, há quem se arrisque em desafios maiores usando um Raspberry Pi.
Em um projeto bastante desafiador, o criador de conteúdo Jeff Geerling conseguiu conectar uma placa de vídeo AMD Radeon RX 460 a um Raspberry Pi 5, transformando o pequeno computador em uma máquina capaz de rodar jogos exigentes em resolução 4K.
Leia também
Assustador: usuário recorre ao Raspberry Pi para integrar ChatGPT a um coala de pelúcia
Vizinhos incomodando com som alto? Use o Raspberry Pi para desativar as caixas de som
Primeiro desafio: conexão física
O Raspberry Pi 5, lançado recentemente, já oferece um avanço significativo em termos de poder de processamento em relação aos seus predecessores. No entanto, Geerling decidiu levar as capacidades do dispositivo a um novo patamar, explorando o potencial do barramento PCI Express disponível na nova versão do Pi.
O processo de conexão da GPU externa ao Raspberry Pi 5 foi, no mínimo, complexo. Geerling utilizou uma série de adaptadores, começando com um slot M.2 no Pi, conectado a uma dock de GPU externa através de um adaptador M.2 para Oculink. Este arranjo permitiu a conexão física da placa de vídeo ao barramento PCIe do Pi.
Contudo, os desafios não se limitaram apenas à conexão física. O slot PCIe do Raspberry Pi 5 fornece apenas 5W de energia, muito aquém dos 75W que uma placa de vídeo desktop normalmente receberia de uma placa-mãe padrão. Para contornar essa limitação, Geerling teve que fornecer alimentação externa tanto para a GPU quanto para o próprio slot, garantindo que a RX 460 pudesse obter toda a energia necessária para seu funcionamento.
Segundo desafio: Software
No campo do software, as modificações foram igualmente extensas. Geerling aplicou um patch documentado para aumentar a velocidade da lane PCIe do Pi de 2.0 para 3.0, proporcionando um importante aumento de largura de banda para a GPU, que estava recebendo apenas 1/8 das lanes PCIe que normalmente teria.
Para fazer a GPU funcionar efetivamente, foi necessário aplicar patches no kernel Linux para incluir o driver AMDGPU de código aberto, que oferece suporte a arquiteturas Arm e fornece um desempenho decente para a RX 460.
A escolha desta placa específica e sua arquitetura Polaris foi estratégica, sendo nova o suficiente para ser praticamente útil e suportada pelo driver AMDGPU, mas antiga o bastante para ter um suporte de driver maduro, além de ser economicamente acessível.
Após a aplicação de vários patches de kernel e sua recompilação, a instalação do firmware gráfico da AMD conseguiu fazer com que tanto a saída gráfica quanto a aceleração 3D funcionassem de maneira relativamente normal.
No final deu tudo certo
O resultado final é impressionante: o sistema foi capaz de rodar jogos como Doom 3 (2004) e Tux Racer em resolução 4K, embora com algumas configurações reduzidas. Geerling também relatou que a placa renderizou a interface do usuário do sistema operacional do Pi suavemente em 4K, algo que a GPU integrada do Pi consegue fazer, mas com quedas perceptíveis de desempenho, especialmente ao usar múltiplos monitores.
Apesar do sucesso, o projeto não está isento de problemas. Geerling notou que a aceleração gráfica no navegador Chromium e o suporte à codificação e decodificação de vídeo acelerada por GPU não estavam funcionando adequadamente.
Embora este projeto seja mais uma prova de conceito do que uma solução prática para a maioria dos usuários de Raspberry Pi, ele destaca o potencial e a flexibilidade desses pequenos computadores.
Fonte: Ars Technica