我想在这里描述一下我过去几天在 Nvidia 上遇到的问题,希望有人可以帮助我诊断 Nvidia 驱动程序的问题。
背景
TL;博士
我开始在 Ubuntu 17 上遇到这个问题,在改组了一些 apt 包(依赖项损坏的问题)之后,我尝试了一段时间的 nouveau 驱动程序来解决这个问题,最后升级到 18.04 仿生。不幸的是,我不确定究竟是什么原因造成的。
长版:
- 多年来,我一直在使用该
nvidia-340
软件包,而我的 GeForce 210 卡没有任何问题。 - 在某些时候,不知道为什么,登录到我的桌面管理器后,我会看到一个黑屏,只显示鼠标光标。我使用的桌面管理器或窗口管理器似乎没有什么不同。我仍然可以切换到虚拟控制台并重新启动管理器服务,有时(不可预测)我可以再次登录,一切看起来都很好,直到下一次重新启动。
- 然后我尝试重新安装驱动程序,从 debian 包、从 Nvidia 网站下载的运行二进制文件和
ppa:graphics-drivers/ppa
存储库。结果总是一样的。 - 然后我很快尝试了允许我登录所有窗口管理器的 nouveau 驱动程序,但是这些驱动程序很慢并且在播放视频时不时会意外挂起,所以这对我来说是不可接受的。针对此类问题,网络上有多个错误报告。
- 我已经升级到 18.04 仿生并重新安装了
nvidia-340
带有 apt 的常规包。(我首先通过在 modprobe 配置中将 nouveau 驱动程序列入黑名单来卸载它们。)
现在我只剩下一个系统来执行此操作:
我首先在 Ubuntu 启动屏幕之后看到 Nvidia 徽标,然后gdm3
启动,当我登录到 unity 或 gnome 时,我看到黑屏。鼠标指针根本不显示。如果我使用 Alt-F3 进入文本控制台,我可以登录并重新启动gdm3
服务或gdm
服务。如果我这样做的次数足够多,系统会突然开始正常工作,我可以登录到 unity 或 gnome。有时,如果我长时间将计算机单独留在登录屏幕上,它也会得到修复,直到下次重新启动。这告诉我,我多年来一直使用没有问题的驱动程序仍然与我的系统兼容。我在任何时候都没有更改任何 BIOS 设置。我已将工作/etc/X11/xorg.conf
文件复制到/usr/share/X11/xorg.conf.d/20-nvidia.conf
但这并没有改变任何东西。我尝试使用nvidia-xconfig
重新创建文件并且它可以工作,但重启后问题仍然存在。我没有带集成显卡的 CPU,所以这不是问题。
以下是有关我的系统的一些信息,以防相关:
$ uname -a
Linux turbox 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
LSB Version: core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:02.0/0000:01:00.0 ==
modalias : pci:v000010DEd00000A65sv00000000sd00000000bc03sc00i00
vendor : NVIDIA Corporation
model : GT218 [GeForce 210]
manual_install: True
driver : nvidia-340 - distro non-free recommended
$ prime-select query
nvidia
$ sudo lshw -c video
*-display
description: VGA compatible controller
product: GT218 [GeForce 210]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a2
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nvidia latency=0
resources: irq:26 memory:fb000000-fbffffff memory:c0000000-cfffffff memory:de000000-dfffffff ioport:ef00(size=128) memory:c0000-dffff
$ nvidia-smi
Wed Nov 20 12:01:15 2019
+------------------------------------------------------+
| NVIDIA-SMI 340.107 Driver Version: 340.107 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce 210 Off | 0000:01:00.0 N/A | N/A |
| N/A 50C P0 N/A / N/A | 630MiB / 1023MiB | N/A Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Compute processes: GPU Memory |
| GPU PID Process name Usage |
|=============================================================================|
| 0 Not Supported |
+-----------------------------------------------------------------------------+
$ lsmod | grep nvidia
nvidia 10559488 198
drm 401408 10 nvidia
$ echo $XDG_SESSION_TYPE
x11
$ gnome-shell --version
GNOME Shell 3.28.4
我的问题:
由于我有控制台访问权限(通常还有图形访问权限),我能做些什么来确定是什么原因造成的?我不想重新安装我的系统及其所有软件,因为图形环境有时可以正常工作,只是在启动后无法预测。
我已经查看journalctl -k
并搜索了任何对我来说似乎可疑的错误,但我还没有找到解决方案或任何有用的提示。
欢迎任何想法。谢谢!
编辑:这里有一些更多信息:每次重新启动后,当我登录到虚拟控制台尝试修复这个问题时,在某个看似随机的时间,大约在启动后 5 分钟,屏幕闪烁并带我离开文本控制台并进入登录屏幕(桌面管理器)。看起来好像某些东西已经崩溃并重新启动,但我不知道那可能是什么。这似乎与我所做的任何事情都无关。发生这种情况后,我可以毫无问题地登录。在这一点上,这对我来说比真正的问题更令人讨厌,但仍然有些令人沮丧。我觉得应该有一些方法来调试这些东西。
EDIT2:我在 Xorg 日志中收到以下条目:
[ 926.271] (II) systemd-logind: got pause for 13:68
[ 926.272] (II) systemd-logind: got pause for 226:0
[ 926.272] (II) systemd-logind: got pause for 13:65
[ 926.272] (II) systemd-logind: got pause for 13:69
[ 926.272] (II) systemd-logind: got pause for 13:67
[ 926.272] (II) systemd-logind: got pause for 13:64
[ 926.272] (II) systemd-logind: got pause for 13:66
在网上查找这些错误,我发现很多人在登录屏幕上遇到了不确定的问题,这让我相信这不是驱动程序的问题。似乎它systemd-logind
与也许有关dbus
,但不幸的是我不知道是什么。希望对Linux有更好了解的人可以提供帮助吗?