让 RX 480 在 Linux 上运行 AMDGPU让 RX 480 在 Linux 上运行 AMDGPU让 RX 480 在 Linux 上运行 AMDGPU让 RX 480 在 Linux 上运行 AMDGPU
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

让 RX 480 在 Linux 上运行 AMDGPU

发表 admin at 2025年2月28日
类别
  • 未分类
标签

AMD 的 RX 480 已经上市一周多了,在那一周里,Linux 游戏玩家一直在大声疾呼该卡是否以及如何在他们最喜欢的发行版上运行。当然,Ubuntu 16.04 受到 AMD 专有 Pro 驱动程序的正式支持,但其他人呢?如果您想使用那些已经开发了很长时间的 AMDGPU 开源驱动程序怎么办?嗯,这绝对是可能的,但这并不那么容易。

警告:这里有龙,大龙。它们几乎就是您期望看到的那种在 Mereen 周围飞行的类型,因此,如果您不想冒险破坏您的安装并让眉毛烧焦,请立即返回。

基础

使 RX 480 正常工作所需的 AMDGPU 驱动程序部分是新的,因此它们位于候选版本和 Git 存储库中。因此,本指南将重点关注 Debian Sid、Ubuntu 16.04 和 Arch Linux。在其他地方也是可能的,但这三个可能是最简单、最不令人沮丧的。

让 RX 480 运行需要一个基本方法,而这一切都从构建包含固件支持的内核开始。实现此目的的最佳方法是使用一直致力于 Polaris 支持的开发人员提供的 4.7 候选版本。下一个难题是 Mesa 12.1。目前只能从 Git 获得。最后两件事是等于或更新于 2.4.68 的 libdrm 版本和等于或更新于 1.1.0 的 xf86-video-amdgpu(软件包名称因发行版而略有不同)。如果它们是从源代码构建的,则还需要 LLVM 和 Clang 3.7 或更高版本。

构建内核

获取来源

让 RX 480 与 AMDGPU 配合使用的第一步是获得支持它的内核。有一个可以通过 Git 完美运行的内核分支。创建一个要在其中工作的构建目录并将分支克隆到其中。

git clone -b drm-fixes-4.7 git://people.freedesktop.org/~agd5f/linux

需要几分钟才能完成,但之后,源代码将位于名为 linux 的文件夹中。在继续之前,请从 Alex Deucher 的存储库获取 Polaris 固件 blob。可以在这里找到。 Polaris 10 blob 是 RX 480 所需的。

对于放置它们的位置有两种选择,要么放在内核源代码的 firmware 目录中,要么放在 /lib/firmware 的根目录中。无论哪种方式,都创建一个名为 的目录>amdgpu 将它们放入。在 Arch 上,它实际上可能已经在那里了。

更新:到目前为止,内核 4.7-rc7 也支持 AMDGPU。您可以使用 Kernel.org 中的源代码,然后使用它。

配置内核

对于这一部分,Arch Linux 用户应该切换到有关传统内核构建的 Arch 文档。 重新发明轮子是没有意义的。你可以在这里找到它。对于 Debian 和 Ubuntu,您需要先安装一些软件包。

# apt-get install build-essential gcc-multilib linux-headers ncurses-dev xz-utils fakeroot kernel package
# apt-get build-dep linux

完成后,cd 进入该文件夹。您可以选择完全从头开始配置内核,也可以复制现有配置。要复制配置,请运行:

# cp /boot/config-$(uname -r) .config

无论哪种方式,当您准备好配置内核时,请运行 make menuconfig。本指南不会深入讨论内核配置。如果您对此不太满意,请返回并复制配置。

Processor type and features  - - - >
	[*] MTRR (Memory Type Range Register) support

Device Drivers  - - - >
	Generic Driver Options  - - - >
	-*- Userspace firmware loading support
	# If you wish to compile the firmware in use the below, if not, don’t.
	[*] Include in-kernel firmware blobs in kernel binary
	(amdgpu/polaris10_ce.bin amdgpu/polaris10_mc.bin amdgpu/polaris10_me.bin amdgpu/polaris10_mec2.bin amdgpu/polaris10_mec.bin amdgpu/polaris10_pfp.bin amdgpu/polaris10_rlc.bin 
amdgpu/polaris10_sdma1.bin amdgpu/polaris10_sdma.bin amdgpu/polaris10_smc.bin amdgpu/polaris10_smc_sk.bin amdgpu/polaris10_uvd.bin amdgpu/polaris10_vce.bin)
	# Either way point this at where you chose to put the firmware
	(/lib/firmware) Firmware blobs root directory
	# For many of the following options you can choose between compiling in or modules
Graphics support  - - - >
	<*/M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
	<*/M> AMD GPU
	[*] Enable amdgpu for CIK parts
<*/M> Sound card support  - - - >
<*/M> Advanced Linux Sound Architecture  - - - >
[*]  PCI sound devices  - - - >
HD-Audio  - - - >
	<*> HD Audio PCI
	[*] Support initialization patch loading for HD-audio
	<*> Your sound card
	<*> Build HDMI/DisplayPort HD-audio codec supported
	(2048)  Pre-allocated buffer size for HD-audio driver

以上是 AMDGPU 工作所需的一组配置选项。内核的其余部分取决于您。在 Debian 上,如果您复制了配置,其中一位开发人员决定需要密钥来构建内核。为了解决这个问题(可能有一种更安全的方法来处理这个问题),请在 .config 中注释掉需要它的行。要找到它,只需在支持搜索的编辑器中打开文件并搜索 @debian 即可。

构建和安装内核

现在内核已配置完毕,是时候构建内核包了。为此,请运行以下两个命令。

$ make-kpkg clean
$ fakeroot make-kpkg --initrd --revision=1.0.AMDGPU kernel_image kernel_headers -j 9

-j 9 应该是系统上 CPU 核心的数量加一。它将有助于减少冗长的内核编译过程。

编译完成后,构建的父目录中将有两个 .deb 包。 cd 进入该目录并以 root 身份安装软件包。

# dpkg -i linux-image-4.7*.deb
# dpkg -i linux-headers-4.7*.deb

创建的确切包名称将与上面的略有不同,但上面的命令应该可以工作。如果没有,您始终可以输入包的全名。安装软件包后,并且您确定它们已正确安装,请重新启动。

台面

AMDGPU 需要绝对最新的 Mesa(截至撰写本文时为 12.1)才能正常工作。安装 Mesa 的最佳方法根据所使用的发行版而有所不同,因此下一部分将按发行版进行细分。

德班

Debian 没有 Mesa 12.1 的打包版本,因此必须直接从 Git 存储库中提取并构建它。在此之前,请确保构建 Mesa 的所有依赖项均已安装。

# apt-get build-dep mesa
# apt-get install llvm-3.9 llvm-3.9-dev clang-3.9 clang-3.9-dev libxvmc-dev libxcb-xvmc0-dev libvdpau-dev libomxil-bellagio-dev

尝试运行llvm-config。如果这不起作用,您需要将 llvm-config-3.9 链接到 llvm-config。

ln -s /usr/bin/llvm-config-3.9 /usr/bin/llvm-config

选择要将 Mesa 存储库克隆到的目录并克隆它。然后 cd 进入 Mesa 目录。

$ git clone git://anongit.freedesktop.org/mesa/mesa
$ cd mesa

进入目录后,配置、编译并安装 Mesa。

$ ./autogen.sh --prefix=/usr --enable-texture-float --libdir=/usr/lib/x86_64-linux-gnu/ --with-gallium-drivers=radeonsi,swrast --with-egl-platforms=drm,x11 --enable-glx-tls --enable-shared-glapi 
--enable-glx --enable-driglx-direct --enable-gles1 --enable-gles2 --enable-gbm --enable-openmax --enable-xa --enable-osmesa --with-radeonsi-llvm-compiler --enable-sysfs --enable-vdpau --enable-xvmc 
--enable-openmax --enable-nine
$ make -j9
# make install

这个长得可笑的配置字符串基本上只是将 Mesa 配置为包含 RadeonSI 驱动程序和有用的附加功能,使其成为更完整的体验。 -j9 再次引用 CPU 核心数加一。好的是,在这些命令之后,Mesa 将被安装。缺点是它不会采用 .deb 的形式,并且不那么容易管理。

乌班图

在 Ubuntu 上,通过使用 Padoka PPA,安装最新版本 Mesa 的过程变得非常简单。只需添加 PPA、更新并安装 mesa。

$ sudo add-apt-repository ppa:paulo-miguel-dias/mesa
$ sudo apt-get update
$ sudo apt-get install mesa

架构Linux

欢迎回来 Arch 用户!你不像 Ubuntu 的人那么容易,但 AUR 中有可用的软件包。执行此操作之前,请确保您的计算机已设置为使用 AUR 并且已在您的用户帐户上设置 sudo。本指南还假设软件包是用以下材料制作的:

$ makepkg -sri

按照出现的顺序从 AUR 中拉取并安装以下软件包。

llvm-svn
lib32-llvm-svn
mesa-git
lib32-mesa-git

谨防。这将需要很长时间。 LLVM 是一个大型软件。如果由于某种原因某些软件包没有自动安装,它们将位于各自的构建文件夹中并且可以手动安装。

# pacman -U package-name.pkg.tar.xz

安装 Libdrm/AMDGPU

快完成了!唯一剩下要做的就是安装 libdrm 和 xf86-video-amdgpu。此时,所有三个发行版的包管理器都应该可以轻松使用它们。

Debian 和 Ubuntu

# apt-get install libdrm-amdgpu1 libdrm2 xserver-xorg-video-amdgpu

Arch Linux

# pacman -S libdrm xf86-video-amdgpu

安装软件包后,您可以编写一些 Xorg 配置。对于 AMDGPU 来说,它似乎不是强制性的,但可以为某些选项提供帮助,例如 DRI。这个基本配置应该可以工作。

Section "Device"
    Identifier "AMDGPU"
    Driver "amdgpu"
    Option "AccelMethod" "glamor"
    Option "DRI" "3"
EndSection

写入并保存后,您可以重新启动计算机并查看一切是否正常。当然,这些驱动程序还处于实验阶段。可能存在错误、配置错误或任何其他问题。但是,如果它们确实有效,您将成为第一批享受几乎完全开源的驱动程序堆栈的人之一,该堆栈可以轻松与闭源选项相媲美。很明显,如果这些驱动程序能够在主流代码中保持更新,AMD 将成为未来 Linux 用户的一个非常强大的选择。

©2015-2025 Norria support@norria.com