amdgpu-pro-install для Ubuntu GNOME 16.04 с R9 285 и RX 480

8

У меня проблема с установкой AMD GPU PROдрайвера для моей системы Ubuntu Gnome 16.04. Экран становится черным после установки и перезагрузки. Изображение в режиме графического интерфейса является неполным и в основном черным с небольшими мерцающими частями экрана входа в систему. Курсор мыши виден.

Я могу получить доступ 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
KB_
источник
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 box

Я не пробовал легкое исправление, но в начале дня я нашел трудное, и оно работало для меня без проблем.

Однако, если вы попытаетесь это сделать, я рекомендую сделать резервную копию вашей системы, прежде чем пытаться это сделать.

Проблема для AMDGPU-PRO в Ubuntu GNOME заключается в том, что COGL не может правильно скомпилироваться.

для этого есть файл патча:

Исправление COGL для драйверов AMDGPU-PRO от Эшли Соммер. 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файл deb (в родительском каталоге) с помощью 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

Pro-tip, вы можете использовать инструмент 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.

KB_
источник
1
Работает как шарм, спасибо. Обратите внимание, что в зависимости от вашей ситуации, вам может понадобиться сначала установить больше пакетов. Вам будет сказано, что во время процесса сборки. Если это так, то вам просто нужно снова запустить процесс сборки. Кроме того, добавление другого репозитория, отличного от доступных по умолчанию репозиториев Ubuntu (например, вашего Debian), не требуется и не рекомендуется. Вы либо не выполнили apt-get updateшаг до сборки-deb, либо не включили / не раскомментировали репозитории deb-src, уже доступные в sources.list. Сначала проверьте это, затем apt-get updateснова.
корм