Colocando o RX 480 em execução com amdgpu no Linux

Colocando o RX 480 em execução com amdgpu no Linux

O RX 480 da AMD está fora há pouco mais de uma semana e, naquela semana, os jogadores do Linux estão clamando ou informações sobre se e como o cartão funciona em sua distribuição favorita. Claro, Ubuntu 16.04 é oficialmente apoiado pelos drivers profissionais proprietários da AMD, mas e todos os outros, e se você quiser usar esses drivers de código aberto AMDGPU que estão em andamento há tanto tempo? Bem, é definitivamente possível, mas não é tão fácil.

AVISO: Aqui estão dragões, grandes. Eles são praticamente do tipo que você esperaria ver voando por aí mereen, então se você não quiser arriscar a instalação e algumas sobrancelhas cantadas, volte agora.

O básico

As partes do driver AMDGPU necessárias para que o RX 480 funcionasse são novas, tão novas que elas estão em candidatos de lançamento e repositórios Git. Por esse motivo, este guia vai se concentrar no Debian Sid, Ubuntu 16.04, e arch linux. É possível em outros lugares, mas esses três provavelmente serão os mais fáceis e menos frustrantes.

Há uma receita básica necessária para fazer o RX 480 em execução, e tudo começa com uma construção do kernel que inclui suporte de firmware. A melhor maneira de fazer isso é usar um candidato de lançamento de 4.7 dos desenvolvedores que estão trabalhando no suporte Polaris. A próxima peça do quebra -cabeça é Mesa 12.1. Está disponível apenas no Git neste momento. As duas últimas coisas são uma versão do libdrm igual ou mais recente que 2.4.68 e XF86-Video-amdgpu (o nome do pacote difere ligeiramente por distro) igual a ou mais recente que 1.1.0. Se eles estiverem sendo construídos a partir da fonte, LLVM e CLANG 3.7 ou melhor também são necessários.

Construindo o kernel

Obtendo a fonte

O primeiro passo para obter o RX 480 trabalhando com o AMDGPU é obter um kernel que o apóia. Há um ramo do kernel disponível, embora git que funcione perfeitamente. Crie um diretório de construção para trabalhar e clonar o ramo lá.

Git clone -b drm-fixes-4.7 git: // pessoas.Freedesktop.org/~ agd5f/linux

Levará vários minutos para terminar, mas depois, a fonte estará disponível em uma pasta chamada Linux. Antes de ir mais longe, pegue os Blobs do firmware Polaris do Repositório de Alex Deucher. Pode ser encontrado aqui. Os Polaris 10 Blobs são os necessários para o RX 480.

Há duas opções para onde colocá -las, seja no firmware diretório com a fonte do kernel ou no diretório raiz em /lib/firmware De qualquer maneira, crie um diretório chamado amdgpu para colocá -los em. Em Arch, pode realmente estar lá.

Atualizar : A partir de agora, Kernel 4.7-RC7 suporta AMDGPU também. Você pode usar a fonte do kernel.org e use isso em vez disso.

Configurando o kernel

Os usuários do Arch Linux devem mudar para a documentação do arco sobre compilações tradicionais de kernel para esta parte.
Não há sentido em reinventar a roda. Você pode encontrá-lo aqui. Para Debian e Ubuntu, existem alguns pacotes que você precisa instalar primeiro.

# instalação apt-get Build-essencial GCC-Multilib Linux-headers ncurses-dev xz-utils pacote kernel Fakerot # Apt-Get Build-Dep Linux

Quando isso termina, cd na pasta. Você pode optar por configurar o kernel inteiramente do zero, ou pode copiar a configuração existente. Para copiar a configuração, execute:

# cp /boot /config -$ (uname -r) .Config

De qualquer maneira, quando você está pronto para configurar o kernel, corra faça menuconfig. Este guia não vai ir muito longe na configuração do kernel. Se você não estiver muito confortável com isso, volte e copie a configuração.

Tipo e recursos do processador - - -> [*] Mtrr (registro de tipo de memória registro de tipo) Drivers de dispositivo de suporte - - -> Opções genéricas de driver - - -> -* - UsersPace de suporte para carregamento de firmware # Se desejar compilar o firmware em uso o uso do uso do firmware do uso do Abaixo, se não, não. [*] Inclua blobs de firmware no kernel no kernel binário (amdgpu/polaris10_ce.bin amdgpu/polaris10_mc.bin amdgpu/polaris10_me.bin amdgpu/polaris10_mec2.bin amdgpu/polaris10_mec.bin amdgpu/polaris10_pfp.bin amdgpu/polaris10_rlc.bin amdgpu/polaris10_sdma1.bin amdgpu/polaris10_sdma.bin amdgpu/polaris10_smc.bin amdgpu/polaris10_smc_sk.bin amdgpu/polaris10_uvd.bin amdgpu/polaris10_vce.bin) # De qualquer maneira, aponte isso para onde você optou por colocar o diretório raiz do firmware (/lib/firmware) Blobs ROOT # para muitas das seguintes opções que você pode escolher entre compilar ou módulos Suporte gráfico - - -> Gerenciador de renderização direta ( Xfree86 4.1.0 e Suporte de DRI mais alto) AMD GPU [*] Ative AMDGPU para Suporte de placa de som de partes CIK - - -> Arquitetura de som Linux avançada - - - -> [*] Dispositivos de som PCI - - -> hd -audio - - -> HD Audio PCI [*] Support Inicialização Patch Carregando para HD-AUDIO Sua placa de som BUIR 

O exposto acima é o conjunto de opções de configuração necessárias para a AMDGPU funcionar. O resto do kernel é com você. No Debian, se você copiou a configuração, um dos desenvolvedores decidiu exigir uma chave para construir o kernel. Para contornar isso (provavelmente há uma maneira mais segura de lidar com isso), comente a linha exigindo no .Config. Para encontrá -lo, basta abrir o arquivo em um editor que suporta pesquisa e pesquisa @Debian.

Construindo e instalando o kernel

Agora que o kernel está configurado, é hora de construir os pacotes do kernel. Para fazer isso, execute os dois comandos a seguir.

$ make-kpkg limpo $ fakerot make-kpkg--initrd --revision = 1.0.Amdgpu kernel_image kernel_headers -j 9 

O -J 9 deve ser o número de núcleos da CPU no sistema mais um. Isso ajudará a reduzir o longo processo de compilação do kernel.

Após a compilação, haverá dois .Pacotes Deb localizados no diretório pai da construção.
cd nesse diretório e instale os pacotes como raiz.

# dpkg -i linux-image-4.7*.Deb # dpkg -i linux-header-4.7*.Deb 

Os nomes exatos dos pacotes criados serão um pouco diferentes dos acima, mas os comandos acima devem funcionar. Caso contrário, você sempre pode inserir os nomes completos dos pacotes. Depois que os pacotes forem instalados e você tem certeza de que eles foram instalados corretamente, reinicie.

Mesa

A mais recente Mesa absoluta (12.1 como de escrever isso) é necessário para a AMDGPU funcionar corretamente. A melhor maneira de instalar Mesa difere com base na distribuição que está sendo usada, então ele a próxima parte é quebrada pela distribuição.

Debian

Debian não tem uma versão embalada do Mesa 12.1, então deve ser puxado diretamente do repositório Git e construído. Antes de fazer isso, verifique se todas as dependências para construir Mesa estão instaladas.

# apt-get build-dep mesa # apt-get install llvm-3.9 LLVM-3.9-Dev Clang-3.9 Clang-3.9-DEV libxvmc-dev libxcb-xvmc0-dev libvdpau-dev libomxil-bellagio-dev 

Tente correr llvm-config. Se isso não funcionar, você precisa vincular LLVM-Config-3.9 a llvm-config.

ln -s/usr/bin/llvm-config-3.9/usr/bin/llvm-config

Escolha um diretório para clonar o repositório da Mesa e cloná -lo. Então cd no diretório Mesa.

$ git clone git: // anongit.Freedesktop.org/mesa/mesa $ cd mesa 

Uma vez dentro do diretório, configure, compilar e instalar Mesa.

$ ./Autogen.sh--prefix =/usr --enable-textuge-flloat ---libdir =/usr/lib/x86_64-linux-gnu/---with-gallium-drivers = radeonsi, swrast ---with-with-ogl-platforms = drm, x11 --enable-glx-tls --enable-shared-glapi --enable-glx --enable-driglx-Direct --enable-gles1 --enable-gles2 --enable-gbm --enable-openmax --enable -xa --enable-osmesa ---with-radeonsi-llvm-compiler --enable-sysfs --enable-vdpau --enable-xvmc --enable-abert 

Essa sequência de configuração ridiculamente longa basicamente apenas configura Mesa para incluir os drivers Radeonsi e as adições úteis que a tornarão uma experiência mais completa. Novamente o -J9 Referências o número de núcleos da CPU mais um. O bom é que, depois desses comandos, a Mesa será instalada. O ruim é que não será na forma de um .Deb e não será tão fácil de gerenciar.

Ubuntu

No Ubuntu, o processo de instalação da versão mais recente de Mesa foi extremamente fácil com o uso do Pantoka PPA. Basta adicionar o PPA, atualizar e instalar Mesa.

$ sudo add-aprop-repository ppa: papo-miguel-die/mesa $ sudo apt-get update $ sudo apt-get install mesa 

Arch Linux

Bem -vindo de volta aos usuários do arco! Você não tem isso tão fácil quanto o povo do Ubuntu, mas há pacotes disponíveis na AUR. Antes de fazer isso, verifique se o seu computador está configurado para usar a AUR e se você tem sudo Configure sua conta de usuário. Este guia também pressupõe que os pacotes estão sendo feitos:

$ makepkg -sri

Puxe e instale os seguintes pacotes da AUR na ordem em que eles aparecem.

llvm-svn lib32-llvm-svn mesa-git lib32-mesa-git 

Cuidado. Isso vai levar um longo tempo. LLVM é um grande software. Se, por algum motivo, alguns pacotes não forem instalados automaticamente, eles estarão em suas respectivas pastas de construção e podem ser instaladas manualmente.

# Pacman -u Package -Name.pkg.alcatrão.xz

Instalando o libdrm/amdgpu

Está quase pronto! A única coisa que resta a fazer é instalar libdrm e xf86-video-amdgpu. Neste ponto, eles devem estar facilmente disponíveis para o gerente de pacotes das três distribuições.

Debian e Ubuntu

# APT-Get Install libdrm-amdgpu1 libdrm2 xserver-xorg-video-amdgpu

Arch Linux

# Pacman -s Libdrm XF86-Video-Amdgpu

Depois que os pacotes forem instalados, você pode escrever em alguma configuração Xorg. Não parece ser obrigatório com a AMDGPU, mas pode ajudar para certas opções, como Dri. Esta configuração básica deve funcionar.

Seção "Identificador de dispositivo" "amdgpu" driver "amdgpu" opção "accelmethod" "glamour" dri "" "3" endecção 

Depois que isso está escrito e salvo, você pode reiniciar seu computador e ver se tudo funcionou. Esses motoristas são, é claro, muito experimentais. Pode haver bugs, configuração incorreta ou qualquer host de problemas. Se, no entanto, eles funcionarem, você será um dos primeiros a desfrutar de uma pilha de motorista quase totalmente aberta que rivaliza facilmente com as opções de código fechado. É bem claro que, se esses motoristas puderem permanecer atualizados no código principal, a AMD será uma opção muito forte para os usuários do Linux no futuro.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Coisas para instalar no Ubuntu 22.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Manipulação de big data para diversão e lucro Parte 1
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Ubuntu 20.04 Guia
  • Download do Linux
  • Manipulação de big data para diversão e lucro Parte 3