Ubuntu 16.04 上的 AMD-GPU

Ubuntu 16.04 上的 AMD-GPU

我有 AMD A10-7870K CPU 和 R7 GPU。我已将系统设置为使用 amdgpu 而不是 radeon。内核模块已正确加载。我通过将“blacklist radeon”放入/etc/modprobe.d/blacklist-radeon.conf并将“amdgpu”添加到 来将 radeon 模块列入黑名单/etc/initramfs-tools/modules。然后运行sudo update-initramfs -u

然而,radeon模块不断加载,我不知道为什么......

root@ubuntu:~# lsmod |grep -e radeon -e amdgpu
amdgpu                987136  0
radeon               1515520  3
i2c_algo_bit           16384  2 amdgpu,radeon
ttm                    94208  2 amdgpu,radeon
drm_kms_helper        155648  2 amdgpu,radeon
drm                   364544  7 ttm,drm_kms_helper,amdgpu,radeon
root@ubuntu:~#

/etc/X11/xorg.conf.d/20-amdgpu.conf

Section "Device"
    Identifier "AMD"
    Driver "amdgpu"
EndSection

然而Xorg.0.log我看到:

[    17.774] (II) [KMS] Kernel modesetting enabled.
[    17.774] (EE) AMDGPU(0): amdgpu_device_initialize failed
[    17.774] (II) [KMS] Kernel modesetting enabled.
[    17.774] (EE) AMDGPU(G0): amdgpu_device_initialize failed
[    17.774] (II) [KMS] Kernel modesetting enabled.
[    17.774] (EE) AMDGPU(1): amdgpu_device_initialize failed
[    17.774] (EE) Screen 0 deleted because of no matching config section.
[    17.775] (II) UnloadModule: "amdgpu"
[    17.775] (EE) Screen 0 deleted because of no matching config section.
[    17.775] (II) UnloadModule: "amdgpu"
[    17.775] (EE) Device(s) detected, but none match those in the config file.

因此问题是:

  1. 这难道不应该在这个处理器上运行吗?我读到 AMDGPU 驱动程序支持 Sea Islands GCN GPU。

  2. 系统运行正常。X 正在启动并运行。如何检查 X 正在使用哪个图形驱动程序?

  3. 我该如何修复 amdpgu_device_initialize 失败消息?

谢谢!

更新:

根据用户体验,A10-7870K 应该可以与 AMDGPU-PRO 很好地配合使用 https://www.phoronix.com/forums/forum/linux-graphics-x-org-drivers/amd-linux/873464-amdgpu-pro-beta-2-driver-is-playing-nicely-on-ubuntu-16-04-with-the-r9-fury?p=874788#post874788 并不是说我可以安装它,它给出了一些依赖性错误。我认为如果我可以安装 amdgpu-pro 可能会有帮助,但这似乎是不可能的!以下错误来自amdgpu-pro-16.60-379184

The following packages have unmet dependencies:
 amdgpu-pro : Depends: libvdpau-amdgpu-pro but it is not going to be installed
              Depends: clinfo-amdgpu-pro but it is not going to be installed
 amdgpu-pro-dkms : Depends: dkms (>= 1.95) but it is not going to be installed
 amdgpu-pro-lib32 : Depends: libdrm-amdgpu-pro-amdgpu1:i386
                    Depends: libgbm1-amdgpu-pro:i386
                    Depends: libgl1-amdgpu-pro-glx:i386
                    Depends: libgl1-amdgpu-pro-dri:i386
                    Depends: libgles2-amdgpu-pro:i386
                    Depends: vulkan-amdgpu-pro:i386
                    Depends: libvdpau-amdgpu-pro:i386
                    Depends: libopencl1-amdgpu-pro:i386
                    Depends: opencl-amdgpu-pro-icd:i386
E: Unable to correct problems, you have held broken packages.

现在我也在 AMD 论坛上针对此驱动程序安装失败提出了一个问题: https://community.amd.com/message/2784212

答案1

我在全新安装时遇到了同样的问题。尝试添加 i386 架构:

sudo dpkg --add-architecture i386

然后再次尝试设置。

答案2

我解决了 AMDGPU-PRO 安装问题。毕竟是 Linux/Ubuntu 导致的(人们总是把每个问题都归咎于 AMD :p)。当我从 14.04 更新到 16.04 时,升级过程似乎遗留了一些旧的 GCC 包,而它们导致了问题。

apt-get通过使用apt-get -o Debug::pkgProblemResolver=yes install libc6:i386

在输出中看到一些 14.04 引用后,我发现更新程序遗留了一些 14.04 版的 GCC 内容

# dpkg -l |grep 14.04
ii  gcc-6-base:amd64                      6.2.0-3ubuntu11~14.04                    amd64        GCC, the GNU Compiler Collection (base package)
ii  libgcc1:amd64                         1:6.2.0-3ubuntu11~14.04                  amd64        GCC support library
rc  libmysqlclient18:amd64                5.5.54-0ubuntu0.14.04.1                  amd64        MySQL database client library
rc  linux-image-3.19.0-43-generic         3.19.0-43.49~14.04.1                     amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-43-generic   3.19.0-43.49~14.04.1                     amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
ii  postgresql-9.3                        9.3.16-0ubuntu0.14.04                    amd64        object-relational SQL database, version 9.3 server
ii  postgresql-client-9.3                 9.3.16-0ubuntu0.14.04                    amd64        front-end programs for PostgreSQL 9.3
ii  postgresql-doc-9.3                    9.3.16-0ubuntu0.14.04                    all          documentation for the PostgreSQL database management system
ii  ubuntu-mono                           14.04+16.04.20161024-0ubuntu1            all          Ubuntu Mono Icon theme
#

我必须从这里下载 xenial 版本:

http://packages.ubuntu.com/xenial/amd64/gcc-6-base/download
http://packages.ubuntu.com/xenial/amd64/libgcc1/download

然后只需卸载旧的 14.04 版本并安装 16.04 版本即可

# dpkg --force-depends -r libgcc1 gcc-6-base
# dpkg -i gcc-6-base_6.0.1-0ubuntu1_amd64.deb
# dpkg -i libgcc1_6.0.1-0ubuntu1_amd64.deb

AMDGPU-PRO 安装程序能够正确安装软件包。希望这对找到此帖子的人有所帮助!我在论坛上找到了一些其他帖子,人们也遇到了类似的问题。

现在,radeon模块不再加载,只amdgpu加载了模块。我之前使用 glxgears 获得 300fps,现在是 5000+fps(可能因为我降低了内部 gpu 的时钟频率,所以速度较低,但显示一切正常)。Clinfo 找到了 GPU,因此 OpenCL 正在运行。

我必须保留 /etc/modprobe.d/blacklist-radeon.conf,其中包含blacklist radeon行。但我不需要amdgpu/etc/initramfs-tools/modules 中的行

现在glxinfo显示AMD。

server glx vendor string: AMD
...
client glx vendor string: AMD
...
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: AMD Radeon Graphics

之前 xorg 日志显示:

[ 67077.690] (II) modeset(0): [DRI2] Setup complete
[ 67077.690] (II) modeset(0): [DRI2]   DRI driver: radeonsi
[ 67077.690] (II) modeset(0): [DRI2]   VDPAU driver: radeonsi

现在 Xorg 日志显示:

[    26.113] (II) AMDGPU(0): [DRI2] Setup complete
[    26.113] (II) AMDGPU(0): [DRI2]   DRI driver: amdgpu
[    26.113] (II) AMDGPU(0): [DRI2]   VDPAU driver: amdgpu

没有更多AMDGPU(0): amdgpu_device_initialize failed错误消息。

虽然我无法让开源 AMDGPU 驱动程序工作,但也许是因为开源驱动程序不支持我的 GPU。现在我很高兴 AMD 的驱动程序支持它,并且一切正常。所以我认为这个问题已经解决了。

感谢大家的回复!

答案3

为了blacklist radeon您必须将其添加到 conf 文件中然后发出命令:

sudo update-initramfs -u

答案4

如果您不想要或不需要 i386 架构,可以通过完全跳过这些软件包来解决。只需下载最新的驱动程序,然后运行其安装程序:

./amdgpu-pro-install

这将导致您出现“未满足的依赖关系”错误,但会设置 apt 存储库。现在您可以手动安装 amd64 软件包(vulkan-amdgpu-pro对于版本 <18.20 则省略):

sudo apt install amdgpu amdgpu-pro vulkan-amdgpu-pro

相关内容