升级到 20.04 后,我的 GNOME 会话不断终止。我该如何排除故障?

升级到 20.04 后,我的 GNOME 会话不断终止。我该如何排除故障?

我知道我的华硕笔记本电脑不是最适合 Linux 的。我之前使用的所有 Ubuntu 版本都出现过问题,但只有挂起/恢复时才出现问题。挂起后我随机无法恢复。

然而,从 20.04 开始情况变得更糟。我的 Gnome 会话会在两三天内死机。现在,当我在家工作时,我每天都会做同样的事:Firefox 处理个人事务,Chrome 处理与工作相关的工作,Citrix Workspace 进行远程访问,Nautilus 和有时 LibreOffice。

重新登录后一切看起来都很好。几个小时后,鼠标和键盘的响应会变慢。一两天后,我会遇到长达 10-20 分钟的定期冻结。硬盘灯一直亮着,看起来正在进行大量交换。如果我能够切换到虚拟终端,我会看到 Firefox 或 Chrome 正在消耗 CPU。但 gnome-shell 的消耗逐渐开始超过 CPU 消耗。最后,会话完全冻结,我的笔记本电脑不再在网络上注册。

为了排除硬件问题,我花了两周时间在笔记本电脑上使用 Windows 10。我没有遇到任何问题。只需合上盖子一次,笔记本电脑就不会进入睡眠状态。在浏览器中打开大量页面会降低响应速度,但无论如何,Windows 上的响应时间始终是可以接受的。

我该如何解决该问题?

我添加了所需信息

$ free -h
             total        used        free      shared  buff/cache   available
Mem:         7.6Gi       4.7Gi       712Mi       1.6Gi       2.2Gi       1.0Gi
Swap:        2.0Gi       1.6Gi       427Mi
$ sysctl vm.swappiness
vm.swappiness = 60
$ ls -al ~/.local/share/gnome-shell/extensions
total 16
drwxrwxr-x 4 yury yury 4096 May  1 17:34 .
drwx------ 4 yury yury 4096 Sep 12 14:03 ..
drwxrwxr-x 3 yury yury 4096 May  9 23:10 glassygnome@emiapwil
drwxr-xr-x 2 yury yury 4096 Jun 29 21:30 lockkeys@fawtytoo
$ ls -al /usr/share/gnome-shell/extensions
total 20
drwxr-xr-x 5 root root 4096 Jan  9  2020 .
drwxr-xr-x 7 root root 4096 Aug 18 09:54 ..
drwxr-xr-x 2 root root 4096 Aug 18 09:54 desktop-icons@csoriano
drwxr-xr-x 3 root root 4096 May  8 19:00 [email protected]
drwxr-xr-x 3 root root 4096 Aug 29 14:57 [email protected]
$ sudo dmidecode -s bios-version
X556UQ.315

这是原装华硕 X556U 笔记本电脑。该笔记本电脑有两张显卡:

$ lspci | grep -i --color 'vga\|3d\|2d'
00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940MX] (rev a2)

以前我总是遇到 nouveau 问题,所以我安装了专有的 NVIDIA 驱动程序。

顶部的屏幕截图

Gnome 扩展 在此处输入图片描述

答案1

您很可能遇到了交换问题。

交换

我们将您的 /swapfile 从 2G 增加到 4G。

笔记:命令使用不当dd可能导致数据丢失。建议复制/粘贴。

sudo swapoff -a           # turn off swap
sudo rm -i /swapfile      # remove old /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

sudo chmod 600 /swapfile  # set proper file protections
sudo mkswap /swapfile     # init /swapfile
sudo swapon /swapfile     # turn on swap
free -h                   # confirm 8G RAM and 4G swap

确认 /etc/fstab 中的此行...并确认没有其他“交换”行...

/swapfile    none    swap    sw      0   0

reboot                    # reboot and verify operation

BIOS

华硕 X556U

您的 BIOS 版本为 X556UQ.315。

自 2019 年 6 月 6 日起,有更新的 BIOS 版本 316 可供下载这里

注意:确认我拥有适合您型号的正确网页。

注意:更新 BIOS 之前请做好备份。

GNOME Shell 扩展

非常好。您没有太多的 GNOME Shell 扩展。

你有:

drwxrwxr-x 3 yury yury 4096 May  9 23:10 glassygnome@emiapwil
drwxr-xr-x 2 yury yury 4096 Jun 29 21:30 lockkeys@fawtytoo

如果您仍然遇到问题,请尝试禁用这些功能并查看情况是否有所改善。

更新#1:

在 ~/Desktop 上发现无效的 .desktop 文件。删除此文件后,问题不再出现。

答案2

最后,我找到了 Gnome 崩溃的根本原因。这是由 NVIDIA 驱动程序引起的。在我发现它之前,我遇到了几个导致 Gnome 崩溃的常规 gnome shell 错误。桌面上的无效桌面文件导致 Gnome 比其他错误更频繁地崩溃。我还遇到了网络浏览器运行缓慢的问题。对这些错误的调查指向 NVIDIA 驱动程序错误。我在更新到 20.04 后确实安装了 NVIDIA 驱动程序。事实上,我的笔记本电脑有两张显卡:板载英特尔和专用的 GeForce 940MX。Nouveau 从未与 GeForce 940MX 配合使用,也无法停止该卡。我总是偶尔遇到挂起/恢复甚至关机问题,但我从未遇到过 GUI 会话工作问题。在 20.04 更新后,我只能从虚拟终端挂起/恢复,并且我安装了 NVIDIA 驱动程序。所有挂起/恢复问题都得到了解决,但由于 Gnome 崩溃和浏览器速度慢,我陷入了噩梦般的循环。 NVIDIA 驱动程序也无法与 GeForce 940MX 配合使用。因此,我停止使用 NVIDIA 卡,所有错误都消失了。Gnome-shell 不再占用处理器,也不再崩溃。我甚至在桌面上恢复了错误的桌面文件,它不再引起任何问题。电池续航时间明显更长。讽刺的是,禁用(停止)不受 NVIDIA 驱动程序支持的 NVIDIA 卡的最佳方法是安装 NVIDIA 驱动程序。借助驱动程序,NVIDIA 提供了 nvidia-settings 实用程序(NVIDIA X 服务器设置),允许我们通过选择板载卡作为要使用的 GPU 来停止 NVIDIA 卡。

相关内容