amdgpu-pro-install na Ubuntu GNOME 16.04 z R9 285 i RX 480


8

Mam problem z instalacją AMD GPU PROsterownika dla mojego systemu Ubuntu Gnome 16.04. Ekran staje się czarny po instalacji i ponownym uruchomieniu. Obraz w trybie GUI jest niekompletny i przeważnie czarny z małymi migającymi częściami ekranu logowania. Kursor myszy jest widoczny.

Mogę uzyskać dostęp ttyi odinstalować go.

Ściągnąłem sterowniki od AMD Oficjalna strona linku . Mówią, że jest kompatybilny z moją kartą graficzną: AMD Radeon ™ R9 285 Graphics . Postępowałem zgodnie z instrukcją instalacji dostępną na stronie internetowej. Instalacja kończy się bez problemu, a po ponownym uruchomieniu ekran jest czarny.

Bieganie uname -rdaje:

4.4.0-28-generic

Bieganie dpkg -l amdgpu-prodaje:

dpkg-query: no packages found matching amdgpu-pro

Bieganie ./amdgpu-pro-installdaje:

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.

Pytanie: Jak kontynuować, gdzie powinienem szukać wadliwej zależności lub czegoś, co uniemożliwia poprawne działanie sterownika, jak to zrobić?

Do tej pory próbowałem tego:

  • Testowałem z HDMI i DisplayPort i oba dają takie same wyniki.

  • Próbowałem z sudo dpkg --add-architecture i386i sudo apt -get update.

dmesgwynik: (Uwzględniłem fragmenty dmesgdziennika, które mogą być pomocne w zidentyfikowaniu problemu).

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
Biorąc pod uwagę, że link, z którego pobrałeś sterownik, oznacza, że ​​sterownik jest wersją beta, jest całkiem możliwe, że może to być błąd sterownika, czy próbowałeś zgłosić problem AMD, w tym pełne dane wyjściowe dmesg i zawartość / var Plik /log/Xorg.0.log? Mogą być w znacznie lepszej sytuacji, aby pomóc ci w problemach związanych z eksperymentalnym kodem sterownika niż ktokolwiek tutaj.
MttJocy

Napotkałem problem zależności od nowej instalacji Ubuntu 16.04 (nieużywanej Gnome). Problem był oczywiście związany z pakietami i386, ale nie byłem od razu pewien, jak go rozwiązać. Na szczęście twoje pytanie mnie wkurzyło sudo dpkg --add-architecture i386i to załatwiło sprawę . Dzięki!
thinkmassive

Odpowiedzi:


4

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

Najpierw próbowałem codziennego systemu Ubuntu 16.04 z jego spakowanym jądrem Xenial. Jednak pomimo tego, że ten spakowany sterownik binarny AMDGPU używa DKMS, nie działa zgodność z kodem tego sterownika jądra w stosunku do Linuksa 4.4. Z powodu pewnych zmian w interfejsie jądra DRM w Linuksie 4.4 budowanie modułu DKMS nie powiodło się . Powinno to naprawić AMD, jak zauważył Bridgman na forach, ale na razie łatwą poprawką była właśnie instalacja Linuksa 4.2 na pudełku Ubuntu 16.04

Nie wypróbowałem łatwego rozwiązania, ale znalazłem trudny wcześniej tego dnia i zadziałało to dla mnie bez problemu.

Jeśli jednak spróbujesz tego, zalecamy wykonanie kopii zapasowej systemu przed wypróbowaniem tego.

Problemem AMDGPU-PRO w Ubuntu GNOME jest to, że COGL nie kompiluje się poprawnie.

jest do niego plik łatki:

Napraw COGL dla sterowników AMDGPU-PRO autorstwa 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;

Użytkownik illwieckz ma przewodnik na temat zastosowania poprawki tutaj:

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

Rzeczy do zrobienia:

Musisz przebudować libcogl20pakiet. Ponieważ nie byłem w stanie pomyślnie przebudować coglpakietów, po prostu zastąpiłem libcogl.sosam plik binarny.

 sudo apt-get build-dep cogl

Jeśli dostaniesz: E: Unable to find a source package for cogl

 sudo gedit /etc/apt/sources.list

i dodaj to na końcu pliku:

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

Kolejny:

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

zainstaluj kilka pakietów wymaganych do zbudowania cogl:

 sudo apt-get install devscripts libcogl-gst-dev

następnie kontynuuj:


 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)

Jeśli kompilacja zakończy się pomyślnie, wystarczy zainstalować wygenerowany libcogl20plik deb (w katalogu nadrzędnym) za pomocą gdebilub dpkg:

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

Jeśli to się nie powiedzie, tak jak dla mnie, pozostała jeszcze jedna opcja, możesz zrobić tak jak ja.

Ponieważ z mojej strony kompilacja nie powiodła się w jakiejś niepotrzebnej części, ale łatana biblioteka lib została zbudowana dobrze, po prostu ręcznie zastąpiłem plik binarny:

Kod:

 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

Pulpit zawiesza się na kilka sekund.

Ponieważ nadpisałem plik pochodzący z pakietu, zaznaczyłem go jako „wstrzymaj”, aby mieć pewność, że przyszła aktualizacja go nie zastąpi, dlatego warto go również zatrzymać, jeśli pakiet został pomyślnie zbudowany, z tego samego powodu. .

Kod:

sudo apt-mark hold libcogl20

Jeśli chcesz przywrócić brudne rzeczy, musisz po prostu:

Kod:

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

Porada: możesz użyć narzędzia debsums (z pakietu debsums), aby sprawdzić, czy korzystasz z libcogl.so z pakietu, czy też z szybko i brudnej łatki takiej jak ja:

Kod:

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

Jeśli pomyślnie zbudowałeś pakiet i zainstalowałeś go w sposób dpkg, debsumy nie będą narzekać.

Ostatnia część instalacji amdgpu-pro wygląda następująco


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!

Aktualizacja 10-9-2016 : Używanie RX 480.

wprowadź opis zdjęcia tutaj

Instalacja kończy się sukcesem z 4.4.0-36-genericjądrem,

ale budowanie modułów dla jądra 4.8.0-rc5kończy się niepowodzeniem.

Upewnij się że masz: sudo apt-mark hold libcogl20

To polecenie zapobiega gnome package updaterzamianie skompilowanej libgogl20na nowszą wersję.

Zapobiega również instalowaniu innych pakietów, ponieważ niektóre pakiety zależą od nowszej wersji coglitd.

Musimy tylko poczekać na oficjalną naprawę tego problemu, do tego czasu jest to dobry sposób na uruchomienie amdgpu-prosterownika Ubuntu Gnome 16.04.


1
Działa jak urok, dzięki. Należy pamiętać, że w zależności od sytuacji może być konieczne najpierw zainstalowanie większej liczby pakietów. Zostaniesz poinformowany, które podczas procesu kompilacji. Jeśli tak, po prostu musisz ponownie rozpocząć proces kompilacji. Ponadto dodanie innego repozytorium niż domyślne dostępne repozytoria Ubuntu (takie jak debian) nie jest potrzebne i nie jest zalecane. Albo nie wykonałeś apt-get updatekroku kompilacji deb-deb, ani nie włączyłeś / odkomentowałeś repozytoriów deb-src, które były już dostępne w pliku sources.list. Sprawdź to najpierw, a potem jeszcze apt-get updateraz.
Pasza
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.