启用N卡驱动的电源管理功能,让你的电脑更省电
Tofloor
poster avatar
risez
deepin
2020-12-02 21:21
Author

上次我发的那五篇系列文章,有很多人都看不懂,看来是我的问题,本来是想帮助各位能解决好N卡驱动的电源管理问题,然而我万万没想到会造成这个后果,这严重背离了我的初衷。那几篇文章我不会删除掉,毕竟那可是我折腾几个星期的成果。这次我来个超简单版的教程,如果还看不懂告诉我,我再继续改。之前那几篇系列文章讲得比较细,如果自己有什么不懂的或者按下面的操作出问题了可以先去看看,说不定就有答案了呢。

这篇文章在讲什么?其实就是开启N卡驱动的电源管理功能。为什么要解决这个问题?我自己测试过(双显卡笔记本电脑上测试):
若不启用Prime方案下N卡驱动的电源管理功能,我的笔记本在电池供电的情况下只能撑1小时(甚至不到一小时);
开启之后,若不使用独显,笔记本可以至少可以撑一个多小时,再加上tlp简直美滋滋。
总是有些人会背着游戏本走来走去(没错,就是我),所以我就有了这个需求。好了,直接进入正题。

1.使用Prime方案,我之前的文章有讲,这里不再赘述。

2.安装好后,有个问题,就是在挂起、休眠并恢复之后Prime方案会失效,要自己注销或者重启Xorg才能生效,其实这是因为没有启用老黄给你的电源管理工具才导致这个问题的。现在启用:

sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service

你可能还想立即启动服务,别这么干,先按本文做完操作再说。

检查你的挂起模式:

cat /sys/power/mem_sleep

若输出:

s2idle [deep]

那就没事,如果不是,参照我之前的文章解决这个问题。


接下来的操作,要求你的N卡必须是turing及更新架构的显卡,如果不是下面步骤就不用看了,你的显卡不支持的。具体看自己显卡配置支不支持的方法我在之前的文章中已经说过,我就不再赘述了。对于显卡达不到上述要求的,做前面几步,加上第三步里只添加第二行内容就够了。

3.创建一个新文件:

sudo nano /etc/modprobe.d/nvidia.conf

添加如下内容:

options nvidia "NVreg_DynamicPowerManagement=0x02"
options nvidia "NVreg_PreserveVideoMemoryAllocations=1" #无论你的显卡是不是新的,都可以加这行

保存并关闭编辑器。


4.再创建一个新文件:

sudo nano /lib/udev/rules.d/80-nvidia-pm.rules

添加如下内容:

ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1"
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000",ATTR{remove}="1"
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330",ATTR{remove}="1"

保存并关闭编辑器。


5.重启并享受老黄给你的电源管理工具。建议再装个tlp享受双倍快乐,本人测试过,没冲突,当然版本是最新的。

再纠正之前的错误:我当时在发布系列文章后去看了一下笔记本双显卡切换的原理,资料上说当你使用独显时,独显会把画面渲染出来,然后传给集显输出。这就是为什么你在使用nvidia-smi查看会发现总有一个xorg进程在独显上跑着。可是不用独显时的的确确是关掉的,而xorg还跑在上面,难道是独显其实有多个内存但平时调用独显只会用一个?我猜测windows上也会有个进程跑在独显上,以供随时切换。要是我的猜测正确,那Linux的双显卡切换方案算是做到和windows一致了。这方面知识我不理解,若有大佬科普一下那真是万分感谢。

Reply Favorite View the author
All Replies
liwl
deepin
2020-12-02 21:40
#1

不要想着省电了,哈哈

又要高性能,又要低功耗。好难啊

Reply View the author
mmlmonkey
deepin
2020-12-02 23:20
#2

我就装了tlp 然后装了intel undervolt  电量消耗是这样的    nvsmi 的功耗是3w 还能再降30% 不过我97w大电池不在乎 [坏笑]

Reply View the author
risez
deepin
2020-12-03 00:00
#3
liwl

不要想着省电了,哈哈

又要高性能,又要低功耗。好难啊

哪里,做这些设置还是有用的。主要是带出去的时候一般不打游戏,要是不开的话耗电快得要死。我就一个学生党没钱再买一台轻薄本。不过话说回来,让游戏本能拥有更长的续航同时获得高性能体验它不香吗?

Reply View the author
risez
deepin
2020-12-03 00:05
#4
mmlmonkey

我就装了tlp 然后装了intel undervolt  电量消耗是这样的    nvsmi 的功耗是3w 还能再降30% 不过我97w大电池不在乎 [坏笑]

差点忘了还有intel-undervolt...谢谢提醒

Reply View the author
liwl
deepin
2020-12-03 04:25
#5
risez

哪里,做这些设置还是有用的。主要是带出去的时候一般不打游戏,要是不开的话耗电快得要死。我就一个学生党没钱再买一台轻薄本。不过话说回来,让游戏本能拥有更长的续航同时获得高性能体验它不香吗?

嗯,当然香。成果还是挺给力的,加油

Reply View the author