记录一些近来针对本机硬件设备驱动相关的调整与优化(?反向优化),主要涉及到Nvidia独立显存,Intel声卡以及电源管理等几个部份.
电源管理
在使用Windows时基本上是稳定1.5-2h左右,今年刚配置好我的bspwm桌面系统后却能使用到4h…结果目前Linux的续航又弄成2h了..所以研究一下怎样对Linux的电源进行监视与管理.
PowerTop电量检测
拔除电源,耗电惊人..不外接显示屏而使用电脑屏幕时更是会达到40W左右..
耗电量的优化?
有一些专门的应用程序,不过督查后发觉觉得虽然也是治标不治本?..有一些懒得折腾这些有点补救性质的软件,加上也没有太多工夫去测试某甲某选项究竟对耗电有多大的优化..另外在后台启动的程序确实比半年前要多一打,所以这一条打算姑且搁置,电量的优化交给下一台PC即可.
2023-5-12:电源耗电恢复正常!使用电瓶时大约十几mW,笔记本也不发烫了,才能轻量使用(指不make-j$(nproc))续航4h+!
解决方案分为两步:
这样能够稳定关掉nvidia主板,将耗电量减少至低低,续航4-5h!
ACPI风波
关于ACPI风波参考:
在/etc/systemd/logind.conf做了一些更改,功能是在电脑盖子时不发生任何事情,这对于时常使用外接显示屏来说比较便捷,我可以任意的开盖盖子而不会造成我的画面有任何的闪动
1[Login]
2#NAutoVTs=6
3#ReserveVT=6
4#KillUserProcesses=no
5#KillOnlyUsers=
6#KillExcludeUsers=root
7#InhibitDelayMaxSec=5
8#UserStopDelaySec=10
9#HandlePowerKey=poweroff
10#HandlePowerKeyLongPress=ignore
11#HandleRebootKey=reboot
12#HandleRebootKeyLongPress=poweroff
13#HandleSuspendKey=suspend
14#HandleSuspendKeyLongPress=hibernate
15#HandleHibernateKey=hibernate
16#HandleHibernateKeyLongPress=ignore
17HandleLidSwitch=ignore
18HandleLidSwitchExternalPower=ignore
19HandleLidSwitchDocked=ignore
20#PowerKeyIgnoreInhibited=no
21#SuspendKeyIgnoreInhibited=no
22#HibernateKeyIgnoreInhibited=no
23#LidSwitchIgnoreInhibited=yes
24#RebootKeyIgnoreInhibited=no
25#HoldoffTimeoutSec=30s
26#IdleAction=ignore
27#IdleActionSec=30min
28#RuntimeDirectorySize=10%
29#RuntimeDirectoryInodesMax=
30#RemoveIPC=yes
31#InhibitorsMax=8192
32#SessionsMax=8192
UPower
在/etc/UPower/UPower.conf中设置采取Action的时间,以及采用哪些Action,做这样的一些更改..主要的改动是CriticalPowerAction,这是由于之前用的仍然是HybridSleep,其在低电量是会优先Suspend,再低了都会Hibernate.不过遗憾的是据ArchWiki所说,我的机子可能就不支持Hibernate…难怪之前浅浅调过一些并且总是不成功.当我的机子步入冬眠状态,其将难以再成功恢复,只能强制重启;并且根据一次经验,纯粹的Suspend只能待机6h+左右(后续可以再测试一下),因此不如直接Poweroff吧,就不要再做任何的休眠了.
1PercentageLow=25
2PercentageCritical=24
3PercentageAction=20
4# Possible values are:
5# PowerOff
6# Hibernate
7# HybridSleep
8#
9# If HybridSleep isn't available, Hibernate will be used
10# If Hibernate isn't available, PowerOff will be used
11
12CriticalPowerAction=PowerOff
事实上,在查看日志的时侯,发觉UPower竟然会与logind守护进程进行交互.
1# journalctl -b-1
2...
3Apr 13 12:25:34 ArchLinux systemd[1]: Started Daemon for power management.
4Apr 13 12:25:54 ArchLinux systemd-logind[647]: The system will power off now!
5Apr 13 12:25:54 ArchLinux systemd-logind[647]: System is powering down.
6...
ChatGPT说:
upower和logind是Linux系统中的两个工具。
upower是一个Linux实用程序linux操作系统原理,用于提供有关电源设备(比如电瓶和AC适配器)及其当前状态(比如充电水平和容量)的信息。它还容许您执行各类与电源相关的操作,比如挂起或休眠系统,并设置节能模式。
logind是Linux系统服务,用于管理用户登入和会话。它负责启动和停止用户会话红旗linux官网,跟踪用户座位和设备,并处理电源管理风波,比如电脑笔记本瓶盖关掉或电瓶电量低时的情况。
logind和upower共同为Linux系统提供统一的电源管理解决方案,upower处理电源设备管理的低级细节,logind处理更高级别的策略决策和系统级电源管理。
upower和logind在Linux系统中互相配合linux 显卡性能测试软件,以提供全面的电源管理功能。
upower会检测系统中的电源设备(比如电瓶和AC适配器),并提供它们的状态信息。当电源状态发生变化时,upower会通过DBus系统总线向logind发送讯号通知。logind收到这种讯号后,会更新当前用户的会话状态,比如假如电瓶电量高于某个阀值,logind会触发相应的操作(比如挂起或休眠),或则发送警告消息给用户。
同时linux 显卡性能测试软件,logind还可以通过DBus系统总线发送命令给upower,以执行个别电源管理操作,比如要求upower挂起或休眠系统。
为此,upower和logind共同构成了一个完整的电源管理解决方案,可以确保系统在使用电瓶时才能愈发高效地运行,同时也可以保护硬件免受过度使用导致的损害。
暂时不想多研究电源管理这一个技术/应用栈..就先这样凑活用
另外关于Linux上的桌面技术栈,兴趣可能更多一点,不过也先搁置…
其余的一些参考:
Nvidia主板
在尝试禁用主板以提升待机时间时,发觉Nvidia的闭源主板似乎不太能主动禁用主板硬件,又想起之前碰到的各类苦恼问题,以及目前没有使用GPU做估算的各类刚需,因此决定更换Nvidia的闭源主板驱动为xf86-video-nouveau
更换驱动没有哪些问题,并且带来了一些小问题…
更换完成后即可在grub中添加内核选项nouveau.modeset=0,禁用Nvidia主板.(问题:这些是以何种形式禁用独显的?是直接断掉电源供电,还是只是不接受总线上nvidia的讯号?暂时未考,但是关掉后耗电量无显著减少,没啥用)