amdgpu-pro-install no Ubuntu GNOME 16.04 com R9 285 e RX 480

8

Tenho um problema ao instalar o AMD GPU PROdriver para o meu sistema Ubuntu Gnome 16.04. A tela fica preta após a instalação e a reinicialização. A imagem no modo GUI está incompleta e principalmente preta, com pequenas partes trêmulas da tela de login. O cursor do mouse está visível.

Eu posso acessar ttye desinstalar.

Eu baixei o driver no link do site oficial da AMD . Eles dizem que é compatível com a minha placa gráfica: AMD Radeon ™ R9 285 Graphics . Eu segui o guia de instalação fornecido no site. A instalação é concluída sem problemas e, após reiniciar, a tela fica preta.

A corrida uname -roferece:

4.4.0-28-generic

A corrida dpkg -l amdgpu-prooferece:

dpkg-query: no packages found matching amdgpu-pro

A corrida ./amdgpu-pro-installoferece:

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.

Pergunta: Como proceder, onde devo procurar uma dependência defeituosa ou algo que impeça o funcionamento correto do driver, como fazê-lo funcionar?

Até agora eu tentei isso:

  • Eu testei com HDMI e DisplayPort e ambos apresentam os mesmos resultados.

  • Tentei com sudo dpkg --add-architecture i386e sudo apt -get update.

dmesgsaída: (incluí trechos do dmesglog que podem ser úteis para identificar o 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_
fonte
2
Como o link do qual você baixou o driver indica que o driver é uma versão beta, é perfeitamente possível que isso possa ser um bug do driver. Você tentou relatar o problema à AMD, incluindo a saída dmesg completa e o conteúdo do arquivo / var arquivo /log/Xorg.0.log? Eles podem estar em uma posição muito melhor para ajudá-lo com problemas relacionados ao código de driver experimental do que qualquer um aqui.
MJJ #
Encontrei o problema de dependência em uma nova instalação do Ubuntu 16.04 (não usando o Gnome). Obviamente, o problema estava relacionado aos pacotes do i386, mas eu não sabia imediatamente como resolvê-lo. Felizmente, sua pergunta me ajudou sudo dpkg --add-architecture i386e isso fez o truque. Obrigado!
thinkmassive

Respostas:

4

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

No começo, eu estava tentando um sistema diário Ubuntu 16.04 com seu kernel Xenial empacotado. No entanto, mesmo que esse driver binário AMDGPU empacotado use DKMS, há uma compatibilidade quebrada com o código desse driver do kernel no Linux 4.4. Devido a algumas alterações na interface do kernel DRM do Linux 4.4, a construção do módulo DKMS falhou . Isso deve ser corrigido pela AMD assim como Bridgman notou nos fóruns, mas por enquanto, a solução mais fácil era instalar o Linux 4.2 na caixa Ubuntu 16.04

Não tentei a solução fácil, mas achei a mais difícil no início do dia e funcionou para mim sem problemas.

No entanto, se você tentar isso, recomendo fazer o backup do seu sistema antes de tentar isso.

O problema para o AMDGPU-PRO no Ubuntu GNOME é que o COGL está falhando ao compilar corretamente.

existe um arquivo de correção para ele:

Corrija o COGL dos drivers AMDGPU-PRO por 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;

Há um guia do usuário illwieckz sobre como aplicar a correção aqui:

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

Coisas para fazer:

Você precisa reconstruir o libcogl20pacote. Como não consegui reconstruir os coglpacotes com êxito , substituí o libcogl.sopróprio binário.

 sudo apt-get build-dep cogl

se você pegar: E: Unable to find a source package for cogl

 sudo gedit /etc/apt/sources.list

e adicione isso no final do arquivo:

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

Próximo:

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

instale alguns pacotes necessários para construir cogl:

 sudo apt-get install devscripts libcogl-gst-dev

então continue:


 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 a compilação termina com sucesso para você, você só precisa instalar o gerado libcogl20arquivo deb (no diretório pai) com gdebiou dpkg:

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

Se falhar para você como falhou para mim, há outra opção restante, você pode fazer o que eu fiz.

Como do meu lado, a compilação falhou em algumas partes desnecessárias, mas a lib corrigida foi compilada corretamente, substituí o binário manualmente:

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

A área de trabalho congela por alguns segundos.

Como sobrescrevi um arquivo que vem de um pacote, marquei o pacote como "retido" para garantir que uma atualização futura não o substituísse, é uma boa ideia retê-lo também se você construiu o pacote com êxito, pelo mesmo motivo .

Código:

sudo apt-mark hold libcogl20

Se você quiser reverter as coisas sujas, basta fazer o seguinte:

Código:

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

Dica profissional: você pode usar a ferramenta debsums (do pacote debsums) para verificar se você está executando um libcogl.so em um pacote ou em um remendo rápido e sujo como eu:

Código:

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

Se você construiu o pacote com sucesso e o instalou da maneira dpkg, os debsums não reclamam.

A última parte da instalação do amdgpu-pro é semelhante a esta


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!

Atualização 10-9-2016 : Usando o RX 480.

insira a descrição da imagem aqui

A instalação é um sucesso com um 4.4.0-36-generickernel,

mas a construção do módulo para o kernel 4.8.0-rc5falha.

Assegure-se de ter: sudo apt-mark hold libcogl20

Este comando impede que gnome package updatersubstitua o compilado libgogl20por uma versão mais recente.

Isso também impede que outros pacotes sejam instalados porque alguns pacotes dependem de uma versão mais recente cogle assim por diante.

Nós apenas temos que esperar por uma correção oficial para este problema, até então esta é uma boa maneira de obter o amdgpu-promotorista trabalhando Ubuntu Gnome 16.04.

KB_
fonte
1
Funciona como um encanto, obrigado. Observe que, dependendo da sua situação, pode ser necessário instalar mais pacotes primeiro. Você será informado sobre qual durante o processo de compilação. Nesse caso, você só precisa iniciar o processo de compilação novamente posteriormente. Além disso, adicionar um repositório diferente dos repositórios padrão disponíveis do Ubuntu (como o seu debian) não é necessário e não é recomendado. Você não executou uma apt-get updateetapa antes da etapa build-deb ou não ativou / descomente os repositórios deb-src já disponíveis no sources.list. Verifique isso primeiro, seguido por um apt-get updatenovamente.
Forragem