Obtener el RX 480 funcionando con AMDGPU en Linux

Obtener el RX 480 funcionando con AMDGPU en Linux

RX 480 de AMD ha estado fuera por poco más de una semana, y en esa semana los jugadores de Linux han estado clamando o información sobre si la tarjeta funciona en su distribución favorita. Claro, Ubuntu 16.04 es oficialmente respaldado por los conductores profesionales propietarios de AMD, pero ¿qué pasa con todos los demás, y qué pasa si desea usar esos controladores de código abierto de AMDGPU que han estado en proceso durante tanto tiempo?? Bueno, definitivamente es posible, pero no es tan fácil.

ADVERTENCIA: Aquí sean dragones, grandes. Son más o menos del tipo que esperarías ver volar alrededor de Mereen, por lo que si no quieres aprovechar la oportunidad de romper tu instalación y algunas cejas cantadas, retroceda ahora.

Los basicos

Las partes del controlador de AMDGPU que se necesitan para que el RX 480 funcione son nuevas, tan nuevas que están en candidatos de liberación y repositorios GIT. Por esa razón, esta guía se centrará en Debian Sid, Ubuntu 16.04, y Arch Linux. Es posible en otro lugar, pero estos tres probablemente serán los más fáciles y menos frustrantes.

Hay una receta básica que se requiere para ejecutar el RX 480, y todo comienza con una compilación del núcleo que incluye soporte de firmware. La mejor manera de hacerlo es usar un candidato de liberación de 4.7 de los desarrolladores que han estado trabajando en el soporte de Polaris. La siguiente pieza del rompecabezas es Mesa 12.1. Solo está disponible en Git en este momento. Las dos últimas cosas son una versión de libdrm igual o más nueva que 2.4.68 y xf86-video-amdgpu (el nombre del paquete difiere ligeramente por distribución) igual o más nuevo que 1.1.0. Si se están construyendo desde la fuente, LLVM y Clang 3.7 o mejor también se necesitan.

Construyendo el núcleo

Obtener la fuente

El primer paso para que el RX 480 funcione con AMDGPU es obtener un núcleo que lo respalde. Hay una rama del kernel disponible a través de GIT que funcionará perfectamente. Cree un directorio de compilación para trabajar y clonar la rama allí.

Git Clone -B DRM-FIXES-4.7 git: // personas.Freedesktop.org/~ AGD5F/Linux

Tomará varios minutos para terminar, pero después, la fuente estará disponible en una carpeta llamada Linux. Antes de ir más allá, obtenga los blobs de firmware Polaris del repositorio de Alex Deucher. Se puede encontrar aquí aquí. Los polaris 10 blobs son los necesarios para el RX 480.

Hay dos opciones para dónde colocarlas, ya sea en el firmware directorio con la fuente del núcleo o en el directorio raíz en /lib/firmware De cualquier manera crear un directorio llamado amdgpu Para ponerlos en. En el arco, en realidad podría estar allí ya.

Actualizar : A partir de ahora, Kernel 4.7-RC7 también admite AMDGPU. Puedes usar la fuente desde el núcleo.org, y use eso en su lugar.

Configuración del núcleo

Los usuarios de Arch Linux deben cambiar a la documentación de Arch en las compilaciones tradicionales del núcleo para esta parte.
No tiene sentido reinventar la rueda. Lo puedes encontrar aquí. Para Debian y Ubuntu, hay algunos paquetes que debe instalar primero.

# Apt-Get Instale Build-esencial GCC-Multilib Linux-Headers NCurses-Dev XZ-Utils Fakeroot Kernel Paquete # Apt-Get Build-Dep Linux

Cuando termina eso, cd en la carpeta. Puede optar por configurar el kernel completamente desde cero, o puede copiar la configuración existente. Para copiar la configuración, ejecute:

# cp /boot /config -$ (uname -r) .configuración

De cualquier manera, cuando esté listo para configurar el núcleo, ejecute hacer menuconfig. Esta guía no va a ir demasiado lejos en la configuración del núcleo. Si no se siente demasiado cómodo, regrese y copie la configuración.

Tipo y características del procesador - - -> [*] MTRR (registro de rango de tipo de memoria) Controladores de dispositivos de soporte - - -> Opciones genéricas de controlador - - -> -* - Soporte de carga de firmware del espacio de usuarios A continuación, si no, no. [*] Incluya blobs de firmware en el kernel en el binario del núcleo (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 cualquier manera, señale esto en el lugar donde eligió colocar el directorio de raíz de firmware de firmware (/lib/firmware) de firmware. Xfree86 4.1.Soporte de 0 y superior DRI) AMD GPU [*] Habilitar Amdgpu para CIK Parts Sound Card Soport - - -> Avanzado Arquitectura de sonido de Linux - - -> [*] PCI Sound Devices - - -> HD -Audio - - -> HD Audio PCI [*] Soporte de la carga de parche de inicialización para HD-Audio Su tarjeta de sonido Construye HDMI/DisplayPort HD-Audio Codec compatible (2048) Tamaño del búfer pre alocado para el controlador HD-Audio 

Lo anterior es el conjunto de opciones de configuración necesarias para que funcione AMDGPU. El resto del núcleo depende de ti. En Debian, si copió la configuración, uno de los desarrolladores decidió requerir una clave para construir el núcleo. Para evitar eso (probablemente haya una forma más segura de manejar esto), comente la línea que lo requiere en el .configuración. Para encontrarlo, simplemente abra el archivo en un editor que admite la búsqueda y búsqueda de @debiano.

Construir e instalar el núcleo

Ahora que el núcleo está configurado, es hora de construir los paquetes del núcleo. Para hacerlo, ejecute los siguientes dos comandos.

$ Make-KPKG Clean $ Fakeroot Make-KPKG--Initrd --Revision = 1.0.Amdgpu kernel_image kernel_headers -j 9 

El -J 9 debe ser el número de núcleos de CPU en el sistema más uno. Ayudará a reducir el largo proceso de compilación del núcleo.

Después de la compilación, habrá dos .paquetes deb ubicados en el directorio principal de la compilación.
cd en ese directorio e instale los paquetes como root.

# DPKG -I Linux-Image-4.7*.Deb # DPKG -I Linux-Headers-4.7*.debutante 

Los nombres exactos del paquete que se crean serán ligeramente diferentes de los anteriores, pero los comandos anteriores deberían funcionar. Si no, siempre puede ingresar los nombres completos de los paquetes. Una vez que se instalen los paquetes, y está seguro de que han instalado correctamente, reinicie.

Colina baja

La última mesa absoluta (12.1 a partir de escribir esto) es necesario para que amdgpu funcione correctamente. La mejor manera de instalar MESA difiere en función de la distribución que se utiliza, por lo que la próxima parte se desglosa mediante la distribución.

Debian

Debian no tiene una versión empaquetada de Mesa 12.1, por lo que debe extraerse directamente del repositorio de git y construir. Antes de hacerlo, asegúrese de que se instalen todas las dependencias para construir MESA.

# 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-devev 

Intenta correr llvm-config. Si eso no funciona, debe vincular LLVM-Config-3.9 a LLVM-Config.

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

Elija un directorio para clonar el repositorio de mesa y clonarlo. Entonces cd En el directorio de Mesa.

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

Una vez dentro del directorio, configure, compile e instale MESA.

ps ./Autógeno.sh--prefix =/usr --enable-texture-float --libdir =/usr/lib/x86_64-linux-gnu/-with-galium-drivers = Radeonsi, swrast-with -gl-planforms = drm, x11 --ENable-GLX-TLS --ENABLE-SHARADO-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-openmax --enable-nine $ make -j9 # make install 

Esa cadena de configuración ridículamente larga básicamente configura MESA para incluir los controladores Radeonsi y las adiciones útiles que lo convertirán en una experiencia más completa. De nuevo el -J9 Referencias El número de núcleos de CPU más uno. Lo bueno es que después de estos comandos, Mesa se instalará. Lo malo es que no será en forma de .Deb y no será tan fácil de administrar.

Ubuntu

En Ubuntu, el proceso de instalación de la última versión de Mesa se ha hecho extremadamente fácil mediante el uso de PPA PPA. Simplemente agregue el PPA, actualice e instale MESA.

$ sudo add-apt-repository PPA: Paulo-Miguel-Dias/Mesa $ sudo apt-get Update $ sudo apt-get install Mesa 

Arch Linux

Bienvenidos usuarios de arco! No lo tienes tan fácil como la gente de Ubuntu, pero hay paquetes disponibles en el AUR. Antes de hacer esto, asegúrese de que su computadora esté configurada para usar el AUR y que tenga sudo Configurar en su cuenta de usuario. Esta guía también supone que los paquetes se están haciendo con:

$ makepkg -sri

Tire e instale los siguientes paquetes del AUR en el orden en que aparecen.

LLVM-SVN LIB32-LLVM-SVN MESA-GIT LIB32-MESA-GIT 

Tener cuidado. Esto tomará un largo tiempo. LLVM es una gran pieza de software. Si, por alguna razón, algunos paquetes no se instalan automáticamente, estarán en sus respectivas carpetas de compilación y se pueden instalar manualmente.

# PACMAN -U Nombre del paquete.PKG.alquitrán.xz

Instalación de libdrm/amdgpu

Esta casi terminado! Lo único que queda por hacer es instalar libdrm y xf86-video-amdgpu. En este punto, deben estar fácilmente disponibles para el administrador de paquetes de las tres distribuciones.

Debian y Ubuntu

# apt-get install libdrm-amdgpu1 libdrm2 xserver-xorg-video-amdgpu

Arch Linux

# Pacman -S libdrm xf86-video-amdgpu

Una vez que se instalan los paquetes, puede escribir en alguna configuración de Xorg. No parece ser obligatorio con AMDGPU, pero puede ayudar para ciertas opciones, como Dri. Esta configuración básica debería funcionar.

Sección "Dispositivo" Identificador "AMDGPU" Controlador "AMDGPU" Opción "Accelmethod" "Glamour" Opción "Dri" "3" Finsion 

Después de que eso haya escrito y guardado, puede reiniciar su computadora y ver si todo funcionó. Estos conductores son, por supuesto, muy experimentales. Puede haber errores, configuración errónea o cualquier abogada de problemas. Sin embargo, si funcionan, usted será uno de los primeros en disfrutar de una pila de controladores de código de código abierto que rivaliza fácilmente con las opciones de código cerrado. Está bastante claro que si estos controladores pueden permanecer actualizados en el código convencional, AMD será una opción muy fuerte para los usuarios de Linux en el futuro.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cosas para instalar en Ubuntu 22.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Manipulación de Big Data para la diversión y las ganancias Parte 1
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Ubuntu 20.04 Guía
  • Descarga de Linux
  • Manipulación de Big Data para diversión y ganancias Parte 3