当尝试为我的 R9 270x 启用amdgpu
驱动程序时:
grep amdgpu /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="[truncated] radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1"
gandalf@hans-desktop ~
它实际上从未被加载:
sudo lspci -k |grep amdgpu
Kernel modules: radeon, amdgpu
而我们预期的是:
sudo lspci -k |grep amdgpu
Kernel driver in use: amdgpu
Kernel modules: radeon, amdgpu
如何在 ubuntu 20.04 上启用 amdgpu?
答案1
@hgogert 给出了正确的答案,但我想补充一点,应该尝试将 HWE 内核版本与 HWE 堆栈反向移植的上游版本中的固件包进行匹配。例如,Ubuntu 20.04.3 HWE 的内核 5.11 源自 hirsute (21.04),hirsute 的固件包更新信息列在https://packages.ubuntu.com/hirsute-updates/linux-firmware。因此对于 20.04.3,要手动覆盖并添加固件更新:
curl -OL http://archive.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.197.3_all.deb
sudo dpkg -i linux-firmware_1.197.3_all.deb
额外提示:也许从最近的镜像下载 deb,因为这个包几乎有 200MB 大。
进一步解释一下,Ubuntu HWE 堆栈维护者更新了内核(和 amdgpu 驱动程序),但不幸的是未能使 linux-firmware 软件包保持最新状态。因此,amdgpu 驱动程序显然是在 Ubuntu 随较新的临时非 LTS 附带的固件上测试/开发的,但随后未能将他们的 HWE 内核更新包含/反向移植到以前的 LTS。
看:
答案2
就我而言,我在启动初期可以在 dmesg 中看到一些错误:
错误如下:
okt 30 22:05:14 desktop kernel: amdgpu 0000:01:00.0: Direct firmware load for amdgpu/pitcairn_uvd.bin failed with error -2
okt 30 22:05:14 desktop kernel: amdgpu 0000:01:00.0: amdgpu: amdgpu_uvd: Can't load firmware "amdgpu/pitcairn_uvd.bin"
okt 30 22:05:14 desktop kernel: [drm:amdgpu_device_ip_init [amdgpu]] *ERROR* sw_init of IP block <uvd_v3_1> failed -2
okt 30 22:05:14 desktop kernel: amdgpu 0000:01:00.0: amdgpu: amdgpu_device_ip_init failed
okt 30 22:05:14 desktop kernel: amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init
okt 30 22:05:14 desktop kernel: amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device.
安装 linux-firmware 至少从 20.04 以上的主版本可以解决此问题:
具体来说,就我而言,安装linux-firmware_1.190_all.deb
解决了这个问题。