我知道我的华硕笔记本电脑不是最适合 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 驱动程序。
答案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 卡。