amdgpu-pro-install บน Ubuntu GNOME 16.04 พร้อม R9 285 และ RX 480


8

ฉันมีปัญหาในการติดตั้งAMD GPU PROไดรเวอร์สำหรับระบบ Ubuntu Gnome 16.04 ของฉัน หน้าจอเป็นสีดำหลังจากการติดตั้งและรีบูต รูปภาพในโหมด GUI ไม่สมบูรณ์และส่วนใหญ่เป็นสีดำโดยมีส่วนกะพริบขนาดเล็กของหน้าจอเข้าสู่ระบบ เคอร์เซอร์ของเมาส์สามารถมองเห็นได้

ฉันสามารถเข้าถึงttyและถอนการติดตั้งได้

ฉันดาวน์โหลดโปรแกรมควบคุมจากเอเอ็มดีเว็บไซต์อย่างเป็นทางการเชื่อมโยง พวกเขาบอกว่ามันเข้ากันได้กับกราฟิกการ์ดของฉัน: 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 i386sudo 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 ทุกวันด้วย kernel ของ Xenial อย่างไรก็ตามถึงแม้ว่าไดรฟ์เวอร์ AMDGPU แบบไบนารีที่บรรจุนี้จะใช้ DKMS แต่ก็มีความเข้ากันไม่ได้กับโค้ดของไดรเวอร์เคอร์เนลนี้กับ Linux 4.4 เนื่องจากมีการเปลี่ยนแปลงบางอย่างในอินเตอร์เฟซ DRM เคอร์เนลของลินุกซ์ 4.4 อาคาร DKMS โมดูลล้มเหลว นี้ควรได้รับการแก้ไขโดย AMD ทันทีที่ Bridgman จดบันทึกไว้ในฟอรัม แต่สำหรับตอนนี้การแก้ไขที่ง่ายคือการติดตั้ง 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ไฟล์ 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, 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 (เช่นเดเบียนของคุณ) และไม่แนะนำ คุณไม่ได้ดำเนินการapt-get updateก่อนหน้าขั้นตอนบิลด์หรือคุณไม่ได้เปิดใช้งาน / ไม่แสดงความคิดเห็นที่เก็บ deb-src ที่มีอยู่ในแหล่งรายการ ตรวจสอบก่อนว่าตามด้วยapt-get updateอีกครั้ง
อาหาร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.