我最近买了一台新笔记本电脑,它在其他方面都运行良好,但当我从挂起状态恢复时,我得到了Xid 79, GPU Has fallen off the bus.
这是一台戴尔笔记本电脑(xps 15),i9-9980HK CPU,GTX 1650,Ubuntu 18.04,NVIDIA 440 驱动程序。
我发现许多人遇到过类似的问题,但大多数问题与随机崩溃有关。
我尝试了一些建议来修复它:启用持久模式,,,nvidia-settings -a
'[gpu:0]/GPUPowerMizerMode=1'
将nvidia-smi -pm 1
,acpi_osi='Windows 2009'
和pcie_aspm=off
以rcutree.rcu_idle_gp_delay=1
各种组合添加到启动选项中。
持久模式一开始似乎并不是持久的,当我设置它时,下次启动时它就被禁用了(不确定是否应该保存)。
在 Windows 下使用笔记本电脑运行了几天,但没有导致它出现同样的问题。
如果您对我还能做什么提出任何建议,我将非常感激。
答案1
我在装有 Ubuntu 19.10 的同一台笔记本电脑上遇到了与您完全相同的挂起/唤醒问题。令人沮丧的是,周围的所有建议(持久性等)都无法解决这个问题。
我的驱动程序是 435.21 版本,所以最初我像您一样尝试切换到 440.36,但问题仍然存在。
@K7AAY,我猜你的意思是 GTX-1650?因为这是 OP 卡,链接说 440 已添加对它的支持。
不管怎样,我通过将驱动程序从 435.21 降级到 430.09,然后再降回 435.21,让它正常工作了,所以一定是在过程中出了什么问题。希望这能有所帮助。
答案2
对于那些通过强制性能模式来解决问题的人。以下是在每次启动时修复此问题的两种方法:一种解决方法是在每次启动时简单地添加设置,方法是将其添加到启动应用程序(或启动脚本或 systemd 单元等):
sh -c 'nvidia-settings -a "[gpu:0]/GpuPowerMizerMode=1"'
--重要提示:请确保 gpu 索引正确,如下一节所述。--
但是如果您有多个想要保存的设置,那么这里是如何在每次登录时正确加载您的自定义 nvidia 设置,并且当 nvidia-settings 应用程序尝试覆盖它们时不会丢失它们:
运行此程序以获取您的 gpu 索引(gpu:0,gpu:1等):
nvidia-settings -q all | grep -C 10 -i powermizer
现在您知道了您的 gpu id,请打开 nvidia-settings -> nvidia 设置配置 -> 保存当前配置 -> 将其保存在您的主目录中
.persistent_nvidia-settings-rc
使用文本编辑器打开新文件并在底部添加以下行:
[gpu:0]/GPUPowerMizerMode=1
保存设置并通过运行此命令验证其是否正常工作。然后检查 PowerMizer 是否设置为最大性能模式:
nvidia-settings --config=$HOME/.persistent_nvidia-settings-rc --load-config-only
打开桌面环境“启动应用程序”配置。查找并修改 nvidia 设置条目(它已存在于 Ubuntu 中)以匹配此命令,如果尚不存在,则添加它:
sh -c '/usr/bin/nvidia-settings --config=$HOME/.persistent_nvidia-settings-rc --load-config-only'
利润
现在,当您登录时,配置就会加载。您可以从任何地方调用它来加载您的设置文件,无论是从 OpenRC、Systemd 还是您的启动应用程序,正如我上面所解释的那样。
当 GPU 负载过大并通过GPU has fallen off the bus
消息冻结整个系统时,此解决方法解决了我的问题。
重要提示:每次启动时默认nvidia-settings
覆盖.nvidia-settings-rc
文件,并且不会保存 powermizer 设置,这就是我们必须创建和加载自定义文件的原因,否则每次使用该应用程序时更改都会丢失。进行这些更改后,.persistent_nvidia-settings-rc
如果您想更改某些内容并在每次启动时获取它,则必须手动更新,但与完全无法使用 GPU 相比,这只是小麻烦。