更新驱动程序后启动 Ubuntu 22.04 时没有图形登录屏幕

更新驱动程序后启动 Ubuntu 22.04 时没有图形登录屏幕

我已使用 GUI(标记为已测试)将我的 nvidia 驱动程序更新为 nvidia-driver-525-open。

重启后,我不再看到图形登录屏幕,只有闪烁的光标。使用 Ctrl+Alt+F4,我可以切换到终端登录。

因为我有过类似的经历发行于之前,我曾尝试自己修复它,但最终系统根本无法启动,我决定尽可能多地找出问题所在,然后寻求帮助。

首先我查看了 gdm,据我所知它实际上显示了登录屏幕。

systemctl status gdm3产生以下输出:

gdm.service - GNOME Display Manager
    Loaded: loaded (/lib/systemd/system/gdm.service; static)
    Active: active (running) since Sat 2023-04-08 13:44:18 CEST; 42min ago
   Process: 1086 ExecStartPre=/usr/share/gdm/generate-config (code=exit, status=0/SUCCESS)
  Main PID: 1091 (gdm3)
     Tasks: 3 (limit: 18407)
    Memory: 4.6M
       CPU: 987ms
    CGroup: /system.slice/gdm.service
            |-1091 /usr/sbin/gdm3

Apr 08 13:47:09 computername gdm-launch-environment] [2464]: pam_unix(gdm-launch-environment:session): session closed for user gdm
Apr 08 13:47:09 computername gdm3[1091]: Gdm: GdmDisplay: Session never registered, failing
Apr 08 13:47:09 computername gdm-launch-environment] [2464]: GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Apr 08 13:47:09 computername gdm3[2653]: modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.19.0-35-generic
Apr 08 13:47:09 computername gdm3[1091]: Gdm: GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors
Apr 08 13:47:09 computername gdm3[1091]: Gdm: Child process -2531 was already dead.
Apr 08 13:47:09 computername gdm3[1091]: Gdm: GdmDisplay: Session never registered, failing
Apr 08 13:47:09 computername gdm3[2998]: modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.19.0-35-generic
Apr 08 13:47:09 computername gdm3[3028]: modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.19.0-35-generic
Apr 08 13:47:09 computername gdm3[1091]: Gdm: Child process -2531 was already dead.

modprobe nvidia还输出modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.19.0-35-generic

我发现这个问题。有用户要求输出dkms status(对我来说什么都没有)和uname -r(5.19.0-35-generic)。

那里的第一个答案建议运行以下命令(交换版本)。

sudo apt install linux-modules-nvidia-510-5.17.0-1020-oem

然而我相信上次一切都变糟了,所以我犹豫着是否再试一次。

非常感谢您的帮助和/或建议!

编辑 1:我试运行了 linux 模块安装 ( sudo apt-get install --dry-run linux-modules-nvidia-525-5.19.0-35-generic),试图弄清楚它实际上会做什么。它还会安装linux-objects-nvidia-525-5.19.0-35-generic

编辑 2:查看已安装的软件包,我注意到它们是为内核版本 5.19.0-38 安装的。从这个内核版本开始,我再次进入登录屏幕,但我的 Nvidia 显卡和处理器集成显卡都没有使用。屏幕分辨率极低,Ubuntu 设置中的“关于”页面将图形报告为“llvmpipe (LLVM 15.0.6, 256 位)”

答案1

最初的问题是:缺少所选内核版本(5.19.0-35)的内核模块。

在浏览已安装的 apt 软件包时,我注意到它们安装的是版本 5.19.0-38。由于半年前遇到的一个问题,我已将 grub 设置为使用上次手动选择的内核版本进行启动。Ubuntu 似乎没有考虑实际使用的内核,只是安装了最新版本的软件包。

此初始问题的解决方案:进入 grub 菜单并选择内核版本 5.19.0-38。结果:内核启动后,我得到了一个图形登录屏幕,但我的显卡未被使用。Ubuntu 使用 llvm-pipe 进行图形处理。

基于此,我也可以对我半年前遇到的问题提出一个假设。Ubuntu 可能安装了一个自动使用的新内核版本,但没有安装该新内核版本的 nvidia 内核模块。我不知道是否发生了这种情况,但对我来说这是有道理的。

llvmpipe 问题:使用时sudo dmesg | grep nvidia-driver我发现以下消息:Open nvidia.ko is only ready for use on Data Center GPUs

找到之后此主题在 nvidia 论坛上,我安装了非开放版本的驱动程序,一切似乎恢复正常。

相关内容