amdgpu-pro-install en Ubuntu GNOME 16.04 con R9 285 y RX 480

8

Tengo un problema al instalar el AMD GPU PROcontrolador para mi sistema Ubuntu Gnome 16.04. La pantalla se vuelve negra después de la instalación y reinicio. La imagen en modo GUI está incompleta y en su mayoría negra con pequeñas partes parpadeantes de la pantalla de inicio de sesión. El cursor del mouse es visible.

Puedo acceder ttyy desinstalarlo.

Descargué el controlador del enlace del sitio web oficial de AMD . Dicen que es compatible con mi tarjeta gráfica: AMD Radeon ™ R9 285 Graphics . Seguí la guía de instalación proporcionada en el sitio web. La instalación se completa sin problemas y después de reiniciar, la pantalla está en negro.

Correr uname -rda:

4.4.0-28-generic

Correr dpkg -l amdgpu-proda:

dpkg-query: no packages found matching amdgpu-pro

Correr ./amdgpu-pro-installda:

Reading package lists... Done
Building dependency tree
...........................
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gcc-5-base:i386 libdrm-radeon1:i386 libdrm2:i386 libelf1:i386
  libssl1.0.0:i386 libstdc++6:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxshmfence1:i386 libxxf86vm1:i386 linux-headers-4.4.0-21
  linux-headers-4.4.0-21-generic linux-image-4.4.0-21-generic
  linux-image-extra-4.4.0-21-generic
Use 'sudo apt autoremove' to remove them.
......................
Reading package lists... Done
deb file:/var/opt/amdgpu-pro/ ./ 
Reading package lists... Done
W: The repository 'file:/var/opt/amdgpu-pro ./ Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-4.4.0-21 linux-headers-4.4.0-21-generic
  linux-image-4.4.0-21-generic linux-image-extra-4.4.0-21-generic
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  amdgpu-pro-clinfo amdgpu-pro-computing amdgpu-pro-core amdgpu-pro-firmware
  amdgpu-pro-graphics amdgpu-pro-libopencl-dev amdgpu-pro-libopencl-dev:i386
  amdgpu-pro-libopencl1 amdgpu-pro-libopencl1:i386 amdgpu-pro-opencl-icd
  amdgpu-pro-opencl-icd:i386 amdgpu-pro-vulkan-driver
  amdgpu-pro-vulkan-driver:i386 libdrm-amdgpu-pro-amdgpu1
  libdrm-amdgpu-pro-amdgpu1:i386 libdrm2-amdgpu-pro libdrm2-amdgpu-pro:i386
  libegl1-amdgpu-pro libegl1-amdgpu-pro:i386 libgbm1-amdgpu-pro:i386
  libgbm1-amdgpu-pro libgl1-amdgpu-pro-dev libgl1-amdgpu-pro-dev:i386
  libgl1-amdgpu-pro-dri libgl1-amdgpu-pro-dri:i386 libgl1-amdgpu-pro-glx:i386
  libgl1-amdgpu-pro-glx libgles2-amdgpu-pro libgles2-amdgpu-pro:i386
  libvdpau-amdgpu-pro libvdpau-amdgpu-pro:i386 xserver-xorg-video-amdgpu-pro
The following NEW packages will be installed
  amdgpu-pro amdgpu-pro-clinfo amdgpu-pro-computing amdgpu-pro-core
  amdgpu-pro-dkms amdgpu-pro-firmware amdgpu-pro-graphics
  amdgpu-pro-lib32:i386 amdgpu-pro-libopencl-dev amdgpu-pro-libopencl-dev:i386
  amdgpu-pro-libopencl1 amdgpu-pro-libopencl1:i386 amdgpu-pro-opencl-icd
  amdgpu-pro-opencl-icd:i386 amdgpu-pro-vulkan-driver
  amdgpu-pro-vulkan-driver:i386 libdrm-amdgpu-pro-amdgpu1
  libdrm-amdgpu-pro-amdgpu1:i386 libdrm2-amdgpu-pro libdrm2-amdgpu-pro:i386
  libegl1-amdgpu-pro libegl1-amdgpu-pro:i386 libgbm1-amdgpu-pro:i386
  libgbm1-amdgpu-pro libgl1-amdgpu-pro-dev libgl1-amdgpu-pro-dev:i386
  libgl1-amdgpu-pro-dri libgl1-amdgpu-pro-dri:i386 libgl1-amdgpu-pro-glx:i386
  libgl1-amdgpu-pro-glx libgles2-amdgpu-pro libgles2-amdgpu-pro:i386
  libvdpau-amdgpu-pro libvdpau-amdgpu-pro:i386 xserver-xorg-video-amdgpu-pro
0 to upgrade, 35 to newly install, 0 to remove and 0 not to upgrade.
Need to get 0 B/84.0 MB of archives.
After this operation, 400 MB of additional disk space will be used.

Pregunta: ¿Cómo proceder? ¿Dónde debo buscar una dependencia defectuosa o algo que impida que el controlador funcione correctamente? ¿Cómo hacer que funcione?

Hasta ahora he intentado esto:

  • He probado con HDMI y DisplayPort y ambos dan los mismos resultados.

  • Probado con sudo dpkg --add-architecture i386y sudo apt -get update.

dmesgsalida: (incluí fragmentos del dmesgregistro que podrían ser útiles para identificar el problema).

amdgpu: module verification failed: signature and/or required key missing - tainting kernel
[drm] amdgpu kernel modesetting enabled.
AMD IOMMUv2 driver by Joerg Roedel <[email protected]>
AMD IOMMUv2 functionality not available on this system
fb: switching to amdgpudrmfb from VESA VGA
amdgpu 0000:01:00.0: Invalid ROM contents
ATOM BIOS: C76601
amdgpu 0000:01:00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M used)
amdgpu 0000:01:00.0: GTT: 2048M 0x0000000080000000 - 0x00000000FFFFFFFF
amdgpu 0000:01:00.0: amdgpu: using MSI.
[drm] amdgpu: irq initialized.
Can't find requested voltage id in vdd_dep_on_sclk table!
amdgpu: powerplay initialized
amdgpu 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000080000008, cpu addr 0xffff880425497008
[drm] [FeatureOverride_overriden feature]   Overridden FEATURE_ENABLE_GPU_SCALING is enabled now
fbcon: amdgpudrmfb (fb0) is primary device
amdgpu 0000:01:00.0: fb0: amdgpudrmfb frame buffer device
[drm] Initialized amdgpu 3.2.0 20150101 for 0000:01:00.0 on minor 0
KB_
fuente
2
Dado que el enlace desde el que descargó el controlador indica que el controlador es una versión beta, es muy posible que esto pueda ser un error del controlador, ¿ha intentado informar el problema a AMD, incluida la salida dmesg completa y el contenido de / var /log/Xorg.0.log file? Es muy posible que estén en una posición mucho mejor para ayudarlo con los problemas relacionados con su código de controlador experimental que nadie aquí.
MttJocy
Encontré el problema de dependencia en una nueva instalación de Ubuntu 16.04 (sin usar Gnome). El problema obviamente estaba relacionado con los paquetes i386, pero no estaba inmediatamente seguro de cómo resolverlo. Afortunadamente, tu pregunta me hizo saber sudo dpkg --add-architecture i386y eso funcionó. ¡Gracias!
thinkmassive

Respuestas:

4

Cita de http://www.phoronix.com/scan.php?page=article&item=amd-gpu-pro&num=1

Al principio estaba probando un sistema diario Ubuntu 16.04 con su núcleo Xenial empaquetado. Sin embargo, a pesar de que este controlador binario AMDGPU empaquetado utiliza DKMS, existe una compatibilidad defectuosa con el código de este controlador de kernel contra Linux 4.4. Debido a algunos cambios en la interfaz del kernel DRM de Linux 4.4, la construcción del módulo DKMS falló . Esto debería ser solucionado por AMD tan pronto como Bridgman señaló en los foros, pero por ahora, la solución fácil era instalar Linux 4.2 en el cuadro Ubuntu 16.04

No probé la solución fácil, pero encontré la difícil más temprano en el día, y funcionó para mí sin ningún problema.

Sin embargo, si intenta esto, le recomiendo hacer una copia de seguridad de su sistema antes de intentarlo.

El problema para AMDGPU-PRO en Ubuntu GNOME es que COGL no se compila correctamente.

hay un archivo de parche para ello:

Arreglado COGL para controladores AMDGPU-PRO de Ashley Sommer. https://gist.github.com/ashleysommer/25118d366bf8c1608f3b1a64bc52d4e5

    --- a/cogl/driver/gl/gl/cogl-driver-gl.c
    +++ b/cogl/driver/gl/gl/cogl-driver-gl.c
    @@ -403,9 +403,13 @@
                                   &ctx->glsl_minor);
         }

    -  if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 2))
    -    /* We want to use version 120 if it is available so that the
    -     * gl_PointCoord can be used. */
    +  if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 5))
    +    ctx->glsl_version_to_use = 150;
    +  else if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 4))
    +    ctx->glsl_version_to_use = 140; 
    +  else if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 3))
    +    ctx->glsl_version_to_use = 130; 
    +  else if (COGL_CHECK_GL_VERSION (ctx->glsl_major, ctx->glsl_minor, 1, 2))
         ctx->glsl_version_to_use = 120;
       else
         ctx->glsl_version_to_use = 110;

Aquí hay una guía del usuario illwieckz sobre cómo aplicar la solución:

https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/amd-linux/881527-amdgpu-pro-16-30-released-with-rx-480-support/page5

Cosas para hacer:

Tienes que reconstruir el libcogl20paquete. Como no pude reconstruir con éxito los coglpaquetes, simplemente reemplacé el libcogl.sobinario.

 sudo apt-get build-dep cogl

Si lo consigues: E: Unable to find a source package for cogl

 sudo gedit /etc/apt/sources.list

y agregue esto al final del archivo:

 # COGL
 deb-src ftp://ftp.de.debian.org/debian/ stable main contrib

siguiente:

 sudo apt-get update &&  sudo apt-get build-dep cogl

Instale un par de paquetes necesarios para construir cogl:

 sudo apt-get install devscripts libcogl-gst-dev

luego continúe:


 The following commands I executed from the home directory,
 because of permission errors and `command is not found`
 errors I was getting.

 apt-get source cogl
 cd cogl-1.22.0
 wget -O /tmp/cogl.patch https://gist.githubusercontent.com/ashleysommer/25118d366bf8c1608f3b1a64bc52d4e5/raw/e35e535e7ea9684538a63fe6ea0eb2709b1813f1/cogl_driver_gl_gl_cogl-driver-gl.c
 patch -p1 < /tmp/cogl.patch
 dpkg-source --commit
 debuild -us -uc -j$(nproc)

Si la compilación finaliza correctamente para usted, solo tiene que instalar el libcogl20archivo deb generado (en el directorio principal) con gdebio dpkg:

 sudo dpkg -i libcogl20_1.22.0-2_amd64.deb

Si falla para usted como lo hizo para mí, hay otra opción restante, puede hacer lo que hice.

Como, por mi parte, la compilación falló en alguna parte innecesaria, pero la biblioteca parcheada se compiló bien, simplemente reemplacé el binario a mano:

Código:

 sudo cp -a debian/tmp/usr/lib/x86_64-linux-gnu/libcogl.so.20.4.1 /usr/lib/x86_64-linux-gnu/libcogl.so.20.4.1

El escritorio se congela por un par de segundos.

Como sobrescribí un archivo que viene de un paquete, marqué el paquete para que sea "retenido" para asegurarme de que una actualización futura no lo sobrescribirá, es una buena idea retenerlo también si compiló el paquete con éxito, por la misma razón .

Código:

sudo apt-mark hold libcogl20

Si quieres revertir las cosas sucias, solo tienes que hacer:

Código:

 sudo apt-mark unhold libcogl20
 sudo apt-get install --reinstall libcogl20

Pro-tip, puede usar la herramienta debsums (del paquete debsums) para verificar si está ejecutando un libcogl.so desde un paquete o un parche rápido y sucio como yo:

Código:

 debsums -s libcogl20
 debsums: changed file /usr/lib/x86_64-linux-gnu/libcogl.so.20.4.1 (from libcogl20:amd64 package)

Si compiló con éxito el paquete y lo instaló de la manera dpkg, debsums no se quejará.

La última parte de la instalación de amdgpu-pro se ve así


Setting up amdgpu-pro (16.30.3-315407) ...

Setting up amdgpu-pro-dkms (16.30.3-315407) ...

Loading new amdgpu-pro-16.30.3-315407 DKMS files...

First Installation: checking all kernels...

Building for 4.4.0-36-generic and 4.8.0-rc5

Building for architecture x86_64

Building initial module for 4.4.0-36-generic

Done.


amdgpu:

Running module version sanity check.

- Original module

- Installation

- Installing to /lib/modules/4.4.0-36-generic/updates/dkms/


depmod....


DKMS: install completed.

Building initial module for 4.8.0-rc5

ERROR: Cannot create report: [Errno 17] File exists:
 '/var/crash/amdgpu-pro-dkms.0.crash'

Error! Bad return status for module build on kernel: 4.8.0-rc5 (x86_64)
Consult /var/lib/dkms/amdgpu-pro/16.30.3-315407/build/make.log for more information.

update-initramfs: deferring update (trigger activated)

Setting up amdgpu-pro-lib32:i386 (16.30.3-315407) ...

Processing triggers for libc-bin (2.23-0ubuntu3) ...

Processing triggers for initramfs-tools (0.122ubuntu8.1) ...

update-initramfs: Generating /boot/initrd.img-4.8.0-rc5

Warning: Not updating LILO; /etc/lilo.conf not found!

Actualización 10-9-2016 : Usando RX 480.

ingrese la descripción de la imagen aquí

La instalación es un éxito con un 4.4.0-36-genericnúcleo,

pero la construcción del módulo para el kernel 4.8.0-rc5falla.

Asegúrate de tener: sudo apt-mark hold libcogl20

Este comando evita que gnome package updaterreemplace el compilado libgogl20con una versión más nueva.

También evita que se instalen otros paquetes porque algunos paquetes dependen de una versión más reciente cogly así sucesivamente.

Solo tenemos que esperar una solución oficial para este problema, hasta entonces, esta es una buena manera de hacer que el amdgpu-procontrolador funcione Ubuntu Gnome 16.04.

KB_
fuente
1
Funciona como un encanto, gracias. Tenga en cuenta que, dependiendo de su situación, es posible que primero necesite instalar más paquetes. Se le informará cuál durante el proceso de compilación. Si es así, solo debe comenzar el proceso de compilación nuevamente después. Además, no es necesario y no se recomienda agregar un repositorio diferente que no sean los repositorios de Ubuntu disponibles por defecto (como el de Debian). O no realizó una apt-get updateantes del paso build-deb o no habilitó / descomentó los repositorios deb-src ya disponibles en sources.list. Verifique eso primero, seguido de un apt-get updatenuevo.
Forraje