更新

更新

最新的内核更新Linux 5.15.0-53-generic引入了一个错误,破坏了 的 radeon 驱动程序AMD Ryzen 3 2200G with Radeon Vega Graphics。它启动时屏幕一片黑。我尝试使用apt install amdgpu或安装 AMD 的驱动程序amdgpu-install。经过大量故障排除后,它没有抛出错误并安装完成。重新启动时,驱动程序似乎无法正常工作。一切看起来都和使用 禁用所有视频驱动程序时一模一样nomodeset

这个帖子让我得出结论,我需要在 grub 中选择较旧的内核。但是,当我启用时,一切看起来都像nomodeset,尽管我没有。进一步的调查显示,我的集成显卡实际上不需要驱动程序amdgpu,但是xserver-xorg-video-radeon

但 X11 显然加载了amdgpu而不是radeon

$ lspci -k | grep -EA3 'VGA|3D|Display'

0a:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] (rev c8)
    Subsystem: Gigabyte Technology Co., Ltd Radeon RX Vega 11
    Kernel modules: amdgpu

因此,我可能以某种方式配置了错误的驱动程序,而不是解决我最初的问题。

-Processor-
AMD Ryzen 3 2200G with Radeon Vega Graphics

-Version-
Kernel      : Linux 5.15.0-53-generic (x86_64)
Version     : #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022
C Library   : GNU C Library / (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35
Distribution: Ubuntu 22.04.1 LTS

-Display-
Resolution  : 1024x768 pixels
Vendor      : The X.Org Foundation
Version     : 1.21.1.3
Current Display Name: :1

-Monitors-
Monitor 0   : 1024x768 pixels

-OpenGL-
Vendor      : (Unknown)
Renderer    : (Unknown)
Version     : (Unknown)
Direct Rendering: No

我是否正确地假设我需要以某种方式更改 xserver 的视频驱动程序?如果是这样,我该如何安全地做到这一点?目前一切看起来都没有加载任何图形驱动程序。

答案1

这篇文章让我得出结论,我需要在 grub 中选择较旧的内核。

这是两个有效的解决方案之一。

你应该向 Canonical 报告这个错误如果还没有报告,同时使用旧内核(通过 Synaptic 冻结升级)并等待适用于您的系统的新内核准备就绪。

您可以尝试PPA 主线内核尽管。

第二个有效的解决方案是安装 AMD 的 amdgpu-pro,这是一个替代驱动程序。但我不推荐它,因为很多用户最终都会遇到麻烦,而且如果你不熟悉 CLI,一旦出现问题,就很难恢复图形界面。

这是碰运气。

radeon 与 amdgpu

您无法使用该radeon驱动程序来驱动您的 GPU。该驱动程序是较旧的版本,专为 Radeon HD 2000-6000 系列和第一代 GCN 卡(例如 Radeon HD 7770、Radeon R9 280 等)而编写。

amdgpu驱动程序是较新的驱动程序,可与所有 GCN 和 RDNA 芯片配合使用。

您的 Vega 芯片是最后一款采用 GCN 架构的 GPU,无法与 配合使用radeon。尝试强制使用它可能会导致硬件损坏或无法工作。

驱动架构讲解

看来您很困惑,所以我来解释一下发生了什么:Linux 中的 AMD 驱动程序有 2 个组件:内核空间和用户空间。

内核空间驱动程序与内核一起发布。当出现错误时,它们与内核版本相关联。此类内核错误通常会在上游快速修复(几天或几周内),但 Ubuntu 需要一些时间(通常需要几个月),因为 Ubuntu 需要从上游内核反向移植更改。

从您提到的情况来看,这就是问题的原因。

用户空间驱动程序与 Mesa 和 X11 软件包分开提供。由于问题出在驱动程序的内核部分,因此弄乱这些软件包无法解决问题,而且您可能会意外破坏某些功能。

更新

好的,从您的回复来看,您说您降级了内核,但仍然不起作用。

首先,请确保您确实已通过以下方式降级:

uname -r

您可以通过前往 GRUB -> 尝试多个内核版本Advanced options for Ubuntu并开始选择其他版本。

好的,假设这不起作用,下一步要尝试/怀疑的是:

你的 Xorg 日志

发布 的内容/var/log/Xorg.0.log。它可能包含有价值的信息。

由于您启动时出现黑屏,您可以尝试切换到 tty(Ctrl + Alt + F2)

如果键盘没有响应,则启动到安全模式,安装 openssh-server,重新启动到正常节点,然后从第二台计算机控制您的计算机。

确保 amdgpu 模块已加载

跑步:

lsmod | grep amdgpu

它应该有命中并且 amdgpu 应该正在使用。

如果不存在则运行:

sudo modprobe amdgpu

如果失败,请检查dmesg

重启你的 DM

有时在加载驱动程序时会出现竞争条件,真正的问题是您的 DM 在 GPU 驱动程序准备好之前启动。因此 DM 崩溃了。

我个人遇到过这个问题:有一半的时间,我会随机启动到黑屏,键盘也会死机。但是,来自 SSH 会话的以下命令可以恢复我的计算机。

我不知道您使用哪个 DM,因此以下命令之一应该适合您:

sudo service lightdm restart
sudo service gdm3 restart
sudo service sddm restart

将 amdgpu 固件添加到 initramfs 以便尽早可用

这是对上一项中提到的竞争条件的修复。

运行以下命令:

echo "amdgpu" | sudo tee --append /etc/initramfs-tools/modules
sudo update-initramfs -c -k $(uname -r)

如果操作正确,则检查它是否有效,运行:

lsinitramfs /boot/initrd.img-$(uname -r) | grep amdgpu

应该返回多个匹配项(之前应该没有)。

然后重新启动并祈祷一切正常。

您可以通过删除 amdgpu 行并再次/etc/initramfs-tools/modules运行来撤消此更改update-initramfs

尝试另一个固件包

包裹Linux 固件为您的硬件提供所有固件 blob,包括 AMD 的 GPU。

旧版本也许可以解决您的问题,或者新版本也可以。

您还可以尝试最新的https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

您可以通过 git 回滚最新的文件sudo apt install --reinstall linux-firmware(因为它们都是进入的文件/lib/firmware

从 LiveUSB 检查

如果您仍然无法修复它;创建一个 LiveUSB 并从那里启动:您可能会想重新安装 Ubuntu(一个有效的选项)。

如果 LiveUSB 也出现同样的问题,您可能需要考虑硬件损坏(您的 iGPU 出现故障,或者显示器的电缆坏了,电缆松动了,或者显示器坏了,或者连接器/端口坏了)。如果是这种情况,也请尝试 Windows。

相关内容