amdgpu-pro-install su Ubuntu GNOME 16.04 con R9 285 e RX 480


8

Ho un problema con l'installazione del AMD GPU PROdriver per il mio sistema Ubuntu Gnome 16.04. Lo schermo diventa nero dopo l'installazione e il riavvio. L'immagine in modalità GUI è incompleta e per lo più nera con piccole parti tremolanti della schermata di accesso. Il cursore del mouse è visibile.

Posso accedere ttye disinstallarlo.

Ho scaricato il driver dal collegamento al sito Web ufficiale di AMD . Dicono che sia compatibile con la mia scheda grafica: AMD Radeon ™ R9 285 Graphics . Ho seguito la guida all'installazione fornita sul sito Web. L'installazione si completa senza problemi e dopo il riavvio lo schermo è nero.

La corsa uname -rdà:

4.4.0-28-generic

La corsa dpkg -l amdgpu-prodà:

dpkg-query: no packages found matching amdgpu-pro

La corsa ./amdgpu-pro-installdà:

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.

Domanda: come procedere, dove devo cercare una dipendenza difettosa o qualcosa che impedisce al driver di funzionare correttamente, come farlo funzionare?

Finora ho provato questo:

  • Ho provato con HDMI e DisplayPort ed entrambi danno gli stessi risultati.

  • Ho provato con sudo dpkg --add-architecture i386e sudo apt -get update.

dmesgoutput: (ho incluso frammenti dal dmesgregistro che potrebbero essere utili per identificare il problema.)

amdgpu: module verification failed: signature and/or required key missing - tainting kernel
[drm] amdgpu kernel modesetting enabled.
AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
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

2
Dato che il link da cui hai scaricato il driver indica che il driver è una beta, è del tutto possibile che si tratti effettivamente di un bug del driver, hai provato a segnalare il problema ad AMD, incluso l'output completo di dmesg e il contenuto di / var /log/Xorg.0.log file? Potrebbero trovarsi in una posizione molto migliore per aiutarti con problemi relativi al loro codice del driver sperimentale rispetto a chiunque qui.
MttJocy,

Ho riscontrato il problema della dipendenza su una nuova installazione di Ubuntu 16.04 (non usando Gnome). Il problema era ovviamente correlato ai pacchetti i386, ma non ero immediatamente sicuro di come risolverlo. Fortunatamente la tua domanda mi ha aiutato sudo dpkg --add-architecture i386e questo ha funzionato. Grazie!
thinkmassive,

Risposte:


4

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

All'inizio stavo provando un sistema quotidiano Ubuntu 16.04 con il suo kernel Xenial in pacchetto. Tuttavia, anche se questo driver binario AMDGPU in pacchetto utilizza DKMS, la compatibilità con il codice del driver del kernel con Linux 4.4 è interrotta. A causa di alcune modifiche all'interfaccia del kernel DRM di Linux 4.4, la creazione del modulo DKMS non è riuscita . Questo dovrebbe essere risolto da AMD non appena Bridgman lo notò nei forum, ma per ora, la soluzione semplice stava installando Linux 4.2 sulla casella Ubuntu 16.04

Non ho provato la soluzione semplice, ma ho trovato quella difficile all'inizio della giornata e ha funzionato per me senza problemi.

Tuttavia, se si tenta di farlo, si consiglia di eseguire il backup del sistema prima di provare questo.

Il problema per AMDGPU-PRO su Ubuntu GNOME è che COGL non riesce a compilare correttamente.

esiste un file patch per esso:

Fix COGL per i driver AMDGPU-PRO di 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;

C'è una guida dell'utente illwieckz su come applicare la correzione qui:

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

Cose da fare:

Devi ricostruire il libcogl20pacchetto. Dato che non ero in grado di ricostruire correttamente i coglpacchetti, ho appena sostituito il libcogl.sobinario stesso.

 sudo apt-get build-dep cogl

Se ottieni: E: Unable to find a source package for cogl

 sudo gedit /etc/apt/sources.list

e aggiungilo alla fine del file:

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

Il prossimo:

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

installa un paio di pacchetti richiesti per compilare cogl:

 sudo apt-get install devscripts libcogl-gst-dev

quindi continua:


 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)

Se la compilazione termina correttamente per te, devi solo installare il libcogl20file deb generato (nella directory padre) con gdebio dpkg:

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

Se fallisce per te come è fallito per me, rimane un'altra opzione, puoi fare come ho fatto io.

Poiché da parte mia, la compilazione non è riuscita su alcune parti non necessarie, ma la lib patch è stata costruita bene, ho appena sostituito il binario a mano:

Codice:

 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

Il desktop si blocca per un paio di secondi.

Dal momento che ho sovrascritto un file che proviene da un pacchetto, ho contrassegnato il pacchetto come "trattenuto" per essere sicuro che un aggiornamento futuro non lo sovrascriverà, è una buona idea tenerlo anche se hai compilato correttamente il pacchetto, per lo stesso motivo .

Codice:

sudo apt-mark hold libcogl20

Se vuoi ripristinare le cose sporche, devi solo fare:

Codice:

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

Pro-tip, puoi usare lo strumento debsums (dal pacchetto debsums) per verificare se stai eseguendo un libcogl.so da un pacchetto o uno patchato veloce e sporco come me:

Codice:

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

Se il pacchetto è stato compilato correttamente e installato nel modo dpkg, debsums non si lamenterà.

L'ultima parte dell'installazione di amdgpu-pro è simile a questa


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!

Aggiornamento 10-9-2016 : utilizzo di RX 480.

inserisci qui la descrizione dell'immagine

L'installazione ha esito positivo con un 4.4.0-36-generickernel,

ma la costruzione del modulo per il kernel 4.8.0-rc5fallisce.

Assicurati di avere: sudo apt-mark hold libcogl20

Questo comando impedisce gnome package updaterdi sostituire il compilato libgogl20con una versione più recente.

Impedisce inoltre l'installazione di altri pacchetti perché alcuni pacchetti dipendono da una versione più recente di cogle così via.

Non ci resta che attendere una correzione ufficiale per questo problema, fino ad allora questo è un buon modo per far funzionare il amdgpu-prodriver Ubuntu Gnome 16.04.


1
Funziona come un incantesimo, grazie. Si noti che a seconda della situazione, potrebbe essere necessario installare prima più pacchetti. Ti verrà detto quale durante il processo di compilazione. In tal caso, devi solo riavviare il processo di generazione in seguito. Inoltre, l'aggiunta di un repository diverso dai repository Ubuntu disponibili di default (come quello debian) non è necessaria e non è consigliata. O non hai eseguito un passaggio apt-get updateprima del passaggio build-deb o non hai abilitato / decommentato i repository deb-src già disponibili in sources.list. Controllare prima quello, seguito da un apt-get updatenuovo.
Foraggio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.