我已使用 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 论坛上,我安装了非开放版本的驱动程序,一切似乎恢复正常。