關(guān)鍵詞
linux
mintlinux
manjaro
sleep
suspend
休眠
喚醒
畫(huà)面卡頓
chrome瀏覽器
故障說(shuō)明
在臺(tái)式機(jī)安裝的linux系統(tǒng)(mintlinux没酣、manjaro)蔑祟,在自動(dòng)休眠再次喚醒后,chrome瀏覽器以及其他一些視頻軟件榛鼎,就會(huì)處于不響應(yīng)的狀態(tài)。然后經(jīng)過(guò)一段時(shí)間的無(wú)響應(yīng)后惧浴,軟件會(huì)崩潰退出瑟蜈,重新打開(kāi)才會(huì)恢復(fù)正常。
系統(tǒng)使用的是NVIDIA驅(qū)動(dòng)姐帚。
原因分析
經(jīng)過(guò)網(wǎng)上查詢(xún)吏垮,archlinux的Wiki 以及 NVIDIA的官方文章指出了一些原因:
默認(rèn)情況下,NVIDIA Linux 驅(qū)動(dòng)程序僅在系統(tǒng)掛起和恢復(fù)時(shí)保存和恢復(fù)必要的視頻內(nèi)存分配罐旗。
由此產(chǎn)生的視頻內(nèi)存內(nèi)容的丟失可由用戶空間 NVIDIA 驅(qū)動(dòng)程序和某些應(yīng)用程序部分補(bǔ)償膳汪,但可能會(huì)導(dǎo)致渲染損壞和退出電源管理周期時(shí)應(yīng)用程序崩潰等故障。
解決方案
文章提出的解決方案是通過(guò)一些設(shè)置九秀,讓系統(tǒng)在休眠時(shí)能夠保存顯卡驅(qū)動(dòng)的所有內(nèi)存遗嗽,從而避免喚醒后出現(xiàn)異常。
對(duì)于我使用的mintlinux系統(tǒng)鼓蜒。
原先的系統(tǒng)默認(rèn)配置文件/etc/modprobe.d/nvidia-graphics-drivers-kms.conf
內(nèi)容如下:
# This file was generated by nvidia-driver-535
# Set value to 0 to disable modesetting
options nvidia-drm modeset=1
然后更新相關(guān)配置如下:
# This file was generated by nvidia-driver-535
# Set value to 0 to disable modesetting
options nvidia NVreg_PreserveVideoMemoryAllocations=1 NVreg_TemporaryFilePath=/home/xxx/tmp-nvidia
options nvidia NVreg_UsePageAttributeTable=1
options nvidia NVreg_RegistryDwords="OverrideMaxPerf=0x1"
options nvidia-drm modeset=1
注意NVreg_TemporaryFilePath指向的是文件夾路徑痹换,非文件路徑,另外記得給所有用戶設(shè)置寫(xiě)權(quán)限:chmod a+w tmp-nvidia
都弹。
另外注意需要保持NVIDIA相關(guān)service nvidia-suspend.service
娇豫、nvidia-hibernate.service
開(kāi)啟:
systemctl status nvidia-suspend.service
○ nvidia-suspend.service - NVIDIA system suspend actions
Loaded: loaded (/usr/lib/systemd/system/nvidia-suspend.service; enabled; preset: disabled)
Active: inactive (dead)
最后通過(guò)如下命令使驅(qū)動(dòng)模塊更改生效:
sudo update-initramfs -u
參考文章
https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#Kernel_module_parameters
https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/powermanagement.html