R9 285 및 RX 480을 사용하여 Ubuntu GNOME 16.04에 amdgpu-pro-install


8

AMD GPU PROUbuntu Gnome 16.04 시스템 용 드라이버를 설치하는 데 문제가 있습니다. 설치 및 재부팅 후 화면이 검게 변합니다. GUI 모드의 이미지는 불완전하며 로그인 화면의 작은 깜박임 부분으로 대부분 검은 색입니다. 마우스 커서가 보입니다.

에 액세스하여 tty제거 할 수 있습니다 .

AMD 공식 웹 사이트 링크 에서 드라이버를 다운로드했습니다 . 그들은 내 그래픽 카드 : AMD Radeon ™ R9 285 그래픽 과 호환된다고 말합니다 . 웹 사이트에 제공된 설치 안내서를 따랐습니다. 문제없이 설치가 완료되고 다시 시작한 후 화면이 검게 표시됩니다.

러닝 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
드라이버를 다운로드 한 링크에서 드라이버가 베타 상태 인 경우 드라이버 버그 일 수 있습니다. 완전한 dmesg 출력 및 / var의 내용을 포함하여 AMD에 문제를보고 해 보셨습니까? /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 에서 인용

처음에는 패키지 Xenial 커널을 사용하여 매일 Ubuntu 16.04 시스템을 사용하려고했습니다. 그러나이 패키지 된 AMDGPU 이진 드라이버가 DKMS를 사용하더라도 Linux 4.4에 대한이 커널 드라이버 코드와의 호환성이 손상되었습니다. Linux 4.4 의 DRM 커널 인터페이스가 일부 변경되어 DKMS 모듈을 빌드하지 못했습니다 . 이것은 포럼에서 Bridgman이 언급 한대로 AMD에 의해 수정되어야하지만, 지금 은 쉬운 수정이 Ubuntu 16.04 박스에 Linux 4.2를 설치하는 것이 었습니다.

나는 쉬운 해결책을 시도하지 않았지만, 하루 중 일찍 어려운 것을 발견했고 문제없이 나를 위해 일했습니다.

그러나 이것을 시도하면 시도하기 전에 시스템을 백업하는 것이 좋습니다.

Ubuntu GNOME에서 AMDGPU-PRO의 문제점은 COGL이 올바르게 컴파일되지 않는다는 것입니다.

패치 파일이 있습니다 :

Ashley Sommer의 AMDGPU-PRO 드라이버 용 COGL 수정. 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

그것이 나를 위해 실패한 것처럼 당신을 위해 실패하면, 다른 옵션이 남아 있습니다, 당신은 내가했던 것처럼 할 수 있습니다.

결국에는 불필요한 부분에서 빌드가 실패했지만 패치 된 lib가 제대로 빌드되었으므로 바이너리를 손으로 대체했습니다.

암호:

 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 방식으로 설치하면 debsum이 불평하지 않습니다.

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 저장소 이외의 다른 저장소를 추가 할 필요가 없으며 권장하지 않습니다. apt-get updatebuild-deb 단계 이전에 수행하지 않았 거나 sources.list에서 이미 사용 가능한 deb-src 저장소를 활성화 / 해제하지 않았습니다. 먼저 확인한 다음 apt-get update다시 확인 하십시오.
마초
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.