amdgpu-pro-install на Ubuntu GNOME 16.04 з R9 285 та RX 480


8

У мене проблема з встановленням AMD GPU PROдрайвера для моєї системи Ubuntu Gnome 16.04. Після встановлення та перезавантаження екран стане чорним. Зображення в режимі GUI неповне і переважно чорне з невеликими мерехтливими частинами екрана входу. Видно курсор миші.

Я можу отримати доступ до нього ttyта видалити його.

Я завантажив драйвер із посилання на офіційному веб-сайті AMD . Кажуть, що вона сумісна з моєю відеокартою: AMD Radeon ™ R9 285 Graphics . Я дотримувався інструкції з встановлення, наданої на веб-сайті. Установка завершиться без проблем, і після перезавантаження екран стане чорним.

Біг uname -rдає:

4.4.0-28-generic

Біг dpkg -l amdgpu-proдає:

dpkg-query: no packages found matching amdgpu-pro

Біг ./amdgpu-pro-installдає:

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.

Питання: Як діяти, де слід шукати несправну залежність або щось, що заважає водієві працювати належним чином, як змусити його працювати?

Поки я спробував це:

  • Я протестував HDMI та DisplayPort, і обидва дають однакові результати.

  • Спробував з sudo dpkg --add-architecture i386і sudo apt -get update.

dmesgвихід: (Я включив фрагменти з dmesgжурналу, які можуть бути корисними для виявлення проблеми.)

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
Зважаючи на те, що посилання, з якого ви завантажили драйвер, робить стан драйвера - бета-версія, цілком можливо, що це насправді може бути помилка драйвера, ви спробували повідомити про проблему в AMD, включаючи повний вихід dmesg та вміст / var /log/Xorg.0.log файл? Вони, можливо, знаходяться в набагато кращому становищі, щоб допомогти вам у вирішенні питань щодо їх експериментального коду драйверів, ніж хто-небудь тут.
MttJocy

Я зіткнувся з проблемою залежності від нової установки Ubuntu 16.04 (не використовуючи Gnome). Проблема, очевидно, була пов'язана з пакетами i386, але я не одразу знав, як її вирішити. На щастя, ваше запитання втягнуло мене, sudo dpkg --add-architecture i386і це зробило трюк. Дякую!
thinkmassive

Відповіді:


4

Цитата з http://www.phoronix.com/scan.php?page=article&item=amd-gpu-pro&num=1

Спочатку я пробував щоденну систему Ubuntu 16.04 з упакованим ядром Xenial. Однак, хоча цей упакований бінарний драйвер AMDGPU використовує DKMS, сумісність з кодом цього драйвера ядра порушена з Linux 4.4. Через деякі зміни в інтерфейсі ядра DRM Linux 4.4, побудова модуля DKMS не вдалося . Це слід виправити AMD, як тільки Бриджман зазначив на форумах, але поки що найпростішим виправленням була лише встановлення Linux 4.2 на вікно Ubuntu 16.04

Я не пробував легкого виправлення, але я знайшов важке раніше дня, і це спрацювало для мене без проблем.

Однак якщо ви спробуєте це, рекомендую створити резервну копію вашої системи перед тим, як спробувати.

Проблема для AMDGPU-PRO в Ubuntu GNOME полягає в тому, що COGL не вдається правильно компілювати.

для нього є патч-файл:

Виправити COGL для драйверів AMDGPU-PRO від 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;

Існує посібник користувача illwieckz про те, як застосувати виправлення тут:

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

Що робити:

Ви повинні відновити libcogl20пакет. Оскільки я не зміг успішно відновити coglпакунки, я просто замінив сам libcogl.soбінарний файл.

 sudo apt-get build-dep cogl

якщо ви отримаєте: E: Unable to find a source package for cogl

 sudo gedit /etc/apt/sources.list

і додайте це в кінці файлу:

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

наступний:

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

встановіть кілька пакунків, необхідних для складання cogl:

 sudo apt-get install devscripts libcogl-gst-dev

потім продовжуйте:


 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)

Якщо збірка закінчиться для вас успішно, вам просто потрібно встановити згенерований libcogl20деб-файл (у батьківському каталозі) з gdebiабо dpkg:

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

Якщо вам це не вдасться, як це не вдалося для мене, є ще один варіант, який ви можете зробити так само, як і я.

Оскільки в моєму кінці збірка не вдалася до якоїсь непотрібної частини, але виправлена ​​вкладка була вбудована прекрасно, я просто замінив двійковий вручну:

Код:

 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

Робочий стіл замерзає на пару секунд.

Оскільки я перезаписав файл, що надходить із пакету, я позначив його пакетом як "утримувати", щоб бути впевненим, що майбутнє оновлення не буде його перезаписати, то це було б гарною ідеєю, якщо він також був успішно побудований, з тієї ж причини .

Код:

sudo apt-mark hold libcogl20

Якщо ви хочете повернути брудні речі, вам просто потрібно зробити:

Код:

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

Порада, ви можете скористатися інструментом debsums (з пакету debsums), щоб перевірити, чи ви запускаєте libcogl.so з пакету чи швидко забрудненого, як і я:

Код:

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

Якщо ви успішно склали пакет і встановили його dpkg способом, debsums не буде скаржитися.

Остання частина установки amdgpu-pro виглядає приблизно так


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!

Оновлення 10-9-2016 : Використання RX 480.

введіть тут опис зображення

Установка успішна з 4.4.0-36-genericядром,

але побудова модуля для ядра 4.8.0-rc5не вдається.

Переконайтесь, що у вас є: sudo apt-mark hold libcogl20

Ця команда запобігає gnome package updaterзаміні компільованого libgogl20новою версією.

Це також запобігає встановленню інших пакетів, оскільки деякі пакети залежать від більш нової версії coglтощо.

Нам залишається лише чекати офіційного виправлення цього питання, до цього часу це хороший спосіб примусити amdgpu-proводія працювати Ubuntu Gnome 16.04.


1
Працює як шарм, дякую. Зверніть увагу, що залежно від вашої ситуації, можливо, спочатку вам доведеться встановити більше пакетів. Вам скажуть, що під час збирання. Якщо це так, вам просто доведеться знову запустити процес збирання. Крім того, додавання іншого сховища, окрім доступних за замовчуванням сховищ Ubuntu (наприклад, вашого debian), не потрібно і не рекомендується. Ви або не виконали попереднього apt-get updateкроку збирання, або не ввімкнули / не коментували сховища deb-src, які вже доступні у source.list. Перевірте це спочатку, а потім ще apt-get updateраз.
Корм
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.