内核领域-功耗机型的续航基线优化问题-技术调研 告-王井玉_20211216

内核领域-功耗机型的续航基线优化问题-技术调研 告_20211216

一. 问题

  • 软硬件环境

设备: Loongson Loongson-LS3A5000-7A1000-1w-V0.1-CRB (Loongson_SKU) Notebook
操作系统: UnionTech OS Desktop 20 Professional Linux version 4.19.0-loongson-3-desktop (uos@uos-PC) (Debian 8.3.0-6.lnd.vec.23) #4206 SMP Thu Nov 4 11:19:17 CST 2021
处理器: Loongson-3A5000M (四核 / 四逻辑处理器)
主板: Loongson-LS3A5000-7A1000-1w-V0.1-CRB
内存: 8GB(SCC08GS03H3F1C-32AA DDR4 3200MHz (0.3ns))
显示适配器: Oland [Radeon HD 8570 / R7 240/340 OEM]
音频适配器: HDA (High Definition Audio) Controller/Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series]
存储设备: Silicon Motion Disk (256 GB)
电池: 电池
蓝牙: Intel Bluetooth Device
络适配器: Wireless 7265/RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
鼠标: ImPS/2 Generic Wheel Mouse (ImPS/2 Generic Wheel Mouse)
键盘: AT Translated Set 2 keyboard (AT Translated Set 2 keyboard)
显示设备: LCD Monitor(13.9 英寸 (309×173 mm))
其他设备: FT9201Fingerprint.

  • 重现步骤

    各个模式下测试续航时间,当前检测仪器限制只能测试运行状态的续航时间。

  • 问题现象

    目前所有笔记本电池供电续航时间短。

  • 期望结果

    笔记本电池供电延长续航时间。

二. 现状

??笔记本不使用外部电源供电时,只使用内部电池供电维持正常使用和待机、休眠等模式,由于很难去更换,那么低功耗就显得尤为重要。目前笔记本功耗无基础数据、无优化方案,功耗相关的知识薄弱。

??Linux 作为一个偏重 的操作系统,它效仿的对象主要是传统的 Unix。加上早期 Linus 等开发者使用的电脑一般都比较老旧,因此 Linux 一开始其目标主机就不是普通用户使用的台式机或者笔电,对硬件的向后兼容性也比较重视,而对个人电脑硬件上的新特性则支持不是那么优雅——当然,这也和不少硬件厂商既不愿意为 Linux 自行开发驱动程序也不愿意为 Linux 开发者提供足够技术资料的做法有关。一个对于个人电脑用户比较明显的影响,就是 Linux 对计算机的电源管理支持一直都不如 Windows,即算是经过个人电脑业中的老战士 Apple 基于 BSD 改造出来的 OS X,在自家的 iBook/PowerBook 上,表现出来的电源管理能力也不如采用 Windows 的笔电(而例如 Panasonic 的笔电,甚至可以提供最长15个小时的续航能力)。

三. 技术方案

3.1 功耗是怎么产生的耗大小与哪些因素有关/h4>

??低功耗的目的就是提高电池供电的电子产品的使用时间,分析功耗前先认识电量相关的基础知识。功耗(Power)和能量(Energy)是两个完全不同的概念,功耗是一个瞬时的概念,而能量是一个时间内的消耗。

    3.2 电源管理

    3.2.1 系统电源的组成和管理模型的四种状态

    ??在计算机系统依靠电能运行,Linux 系统中称作电源管理(Power Management),电源管理的核心思想只在需要设备功能时才给它供电。Linux内核提供了三种Suspend: Freeze、Standby和STR(Suspend to RAM),在用户空间向”/sys/power/state”文件分别写入”freeze”、”standby”和”mem”,即可触发它们。Linux电源管理中,相当多的部分是在处理Hibernate、Suspend、Runtime PM等功能。

    ??电源管理(Power Management)在Linux Kernel中,是一个比较庞大的子系统,涉及到供电(Power Supply)、充电(Charger)、时钟(Clock)、频率(Frequency)、电压(Voltage)、睡眠/唤醒(Suspend/Resume)等方方面面。内核中,Suspend及Resume过程涉及到PM Core、Device PM、各个设备的驱动、Platform dependent PM、CPU control等多个模块,涉及了console switch、process freeze、CPU hotplug、wakeup处理等过个知识点。系统suspend/resume的过程,要求设备也同步suspend/resume。系统hibernate及恢复的过程,要求设备在suspend/resume的基础上,增加poweroff的动作。系统reboot的过程,包括halt、power off、restart等,要求设备进入shutdown状态,以避免意外产生。

    ??传统的suspend/resume已经很明确了,无非是按照pm_domain—>device driver或者class—>device driver或者bus—>device driver的顺序,调用相应的回调函数。

    • 电源管理的核心思想
    1. – 联系整机厂商协调硬件原理图,确认芯片的供电是否可单独控制。芯片供电:需要指定机型的原理图,比如清华同方和L71的硬件原理图,分析芯片的供电是否可以单独控制,以便系统各个场景下更好的实现节省功耗,比如:不使用音频时卸载声卡驱动同时彻底关闭声卡供电。
    2. 当需要重新使用那些已关闭部分时(可称作“非工作状态到工作状态的转移”),不能有太长时间的等待,且转移过程不能消耗太多的能量。
    • 系统电源管理模型的四种状态
    1. On – Working正常工作状态
      Runtime电源管理模型:指的是在On状态如何省电,包括:降低运行时钟、关闭无用的设备。linux内核仅提供电源管理的功能:包括电源管理框架和具体设备的电源管理(驱动),如何使用及合适使用由App决定(策略)。
    2. Standby – 空闲模式(CPU和RAM是上电的但是不执行程序了)
    3. Suspend to RAM – S3待机模式(RAM是上电的,并且running content(运行状态)是保存在RAM中)
    4. Suspend to Disk – S4休眠模式(All content保存在Disk硬盘或者flash上)
    • 启动待机休眠

    启动 suspend to ram:(睡眠)//suspend to disk(休眠),echo mem > /sys/power/state //启动休眠的方法就是往/sys/power/state 写字符串,会调用state_store函数(还有个state_show是读的时候被调用 )。

    3.2.2 S3S4S5电源管理模式功耗分析
    • S3S4S5电源管理模式功耗分析,驱动需要支持休眠和唤醒,比如suspend函数和resume函数
    1. 硬件更复杂:外接更多设备,这些设备也需要单独供电,休眠前可能需要单独设置
      休眠时:1、暂停应用程序(包括用户程序、后台服务、内核线程)
          2、暂停各类设备
          3、停止CPU
      唤醒时:1、启动CPU
          2、启动设备
          3、启动应用程序
    2. 软件更复杂:需要有统一的框架,唤醒后可能需要重新初始化
    3.2.3 runtime电源管理模式(内核文档runtime_pm.txt有详细描述)

    ??runtime是在系统正常工作的时候单独控制某个设备休眠和唤醒,相比S3S4S5续航优化,比如系统睡眠模型是让整个系统休眠,runtime的场景更复杂也更难,需要在不影响使用设备功能的前提下尽可能让它省电。runtime PM 框架不需要用户程序的干涉,由Kernel统一调度,实时的关闭或打开设备,以便在使用性能和省电性能之间找到最佳的平衡等。

    ??怎样动态地打开或关闭设备的电源简单的方法,在驱动程序的open函数中打开电源,在close函数中关闭电源,上述方法有一个缺点: 多个应用同时访问设备时可能造成干扰。另外支持UEFI固件需要考虑固件参数的正确性。

    3.2.4 进程冻结

    ??什么是进程冻结,进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线程置于“可控”的暂停状态。

    • 为什么需要冻结技术 – 假设没有冻结技术,进程可以在任意可调度的点暂停,而且直到cpu_down才会暂停并迁移。这会给系统带来很多问题:
    1. 有可能破坏文件系统。在系统创建hibernate image到cpu down之间,如果有进程还在修改文件系统的内容,这将会导致系统恢复之后无法完全恢复文件系统。
    2. 有可能导致创建hibernation image失败。创建hibernation image需要足够的内存空间,但是在这期间如果还有进程在申请内存,就可能导致创建失败。
    3. 有可能干扰设备的suspend和resume。在cpu down之前,device suspend期间,如果进程还在访问设备,尤其是访问竞争资源,就有可能引起设备suspend异常。
    4. 有可能导致进程感知系统休眠。系统休眠的理想状态是所有任务对休眠过程无感知,睡醒之后全部自动恢复工作,但是有些进程,比如某个进程需要所有cpu online才能正常工作,如果进程不冻结,那么在休眠过程中将会工作异常。

    ??冻结的对象是内核中可以被调度执行的实体,包括用户进程、内核线程和work_queue。用户进程默认是可以被冻结的,借用信 处理机制实现;内核线程和work_queue默认是不能被冻结的,少数内核线程和work_queue在创建时指定了freezable标志,这些任务需要对freeze状态进行判断,当系统进入freezing时,主动暂停运行。

    ??kernel threads可以通过调用kthread_freezable_should_stop来判断freezing状态,并主动调用__refrigerator进入冻结;work_queue通过判断max_active属性,如果max_active=0,则不能入队新的work,所有work延后执行。
    ??标记系统freeze状态的有三个重要的全局变量:pm_freezing、system_freezing_cnt和pm_nosig_freezing,如果全为0,表示系统未进入冻结;system_freezing_cnt>0表示系统进入冻结,pm_freezing=true表示冻结用户进程,pm_nosig_freezing=true表示冻结内核线程和workqueue。它们会在freeze_processes和freeze_kernel_threads中置位,在thaw_processes和thaw_kernel_threads中清零。
    ??fake_signal_wake_up函数巧妙的利用了信 处理机制,只设置任务的TIF_SIGPENDING位,但不传递任何信 ,然后唤醒任务;这样任务在返回用户态时会进入信 处理流程,检查系统的freeze状态,并做相应处理。

    任务主动调用try_to_freeze的代码如下:

    进入冻结状态直到恢复的主要函数:

    3.2.5 电源管理有关的Source code

    ??电源管理有关的Source code包括传统意义上的Power Management,如Power Off、Suspend to RAM、Suspend to Disk、Hibernate等,对I/O设备的运行时电源管理(运行时PM)的支持,以便在使用性能和省电性能之间找到最佳的平衡等。

    kernel/power/ *
    drivers/power/
    drivers/base/power/*
    drivers/cpuidle/*
    drivers/cpufreq/*
    drivers/devfreq/*
    include/linux/power_supply.h
    include/linux/cpuidle.h
    include/linux/cpufreq.h
    include/linux/cpu_pm.h
    include/linux/device.h
    include/linux/pm.h
    include/linux/pm_domain.h
    include/linux/pm_runtime.h
    include/linux/pm_wakeup.h
    include/linux/suspend.h
    Documentation/power/*.txt

    3.2.6 测试场景覆盖:关机,待机,休眠,典型工作状态,极限场景

    ??暂时只考虑常温25°,不进行低温和高温测试。笔记本电池的充放点曲线。

    3.2.7 测量笔记本功耗

    ??笔记本不是额定功耗的电子产品,因为笔记本有节能模式,比如处理器会动态调节主频,显卡对功耗变化影响较大,硬盘等低功耗部件还有休眠功能。记录所有支路的电流值和电压值,整机功耗,计算出单板功耗和适配器效率。PC功耗是实时变化的,看视频浏览 页功耗都是不同的,功耗续航需要软硬件一起调试。
    ??与笔记本厂商沟通确认他们的测量功耗工具,,公司采购需要从京东购买,功耗测试步骤的详细方法需要设备到了再验证。功耗工具补充,。
    ??需要协调笔记本整机的原理图和PCB,分析整机的关机、待机、休眠、典型工作模式及极限工作模式,确认硬件设计支持相应的电源控制电路基础上为后续的软件功耗优化提供解决方案,首先确认整机采用了那些低功耗高效率的器件,比如在器件选型和硬件设计时,器件是否支持低功耗模式和相应的电源控制电路。散热大的元件,如MCU,DDR,电源芯片等均匀分布,并远离热敏元件。阻抗控制,合理的PCB布局,精确的阻抗控制,可以减小射频路径上的损耗。

    3.3 功耗优化方案

    3.3.1 CPU功耗

    ??现代处理器上面有各种各样的电源管理技术,比较通行的一种办法是将电源管理交由操作系统来负责。比如处理器厂商会为处理器定义多种电源状态,C-State和P-State就是两种常见的用于描述处理器电源状态的状态值。其中C-State用于节能,P-State用于决定CPU在有负载情况下的电压-频率状态。操作系统来根据当前的负载情况来调整CPU的状态,这样在检测到有高负载任务时,系统会将处理器调整到全速运行状态;在轻负载时,系统会让处理器进入低速状态,甚至将其部分关闭。

    ??另外处理器厂商还加入了很多软硬件结合的节能技术,像是Intel和AMD在很久以前就给CPU引入的SpeedStep/Cool’n’Quiet这些技术都可以让CPU在不损失最大性能的同时,尽可能的节约能耗。现在则是有Speed Shift和Turbo Cove这样的技术接手了。

    ??CPU 功耗CPU 的耗电大体符合以下公式: 功率 = 电容率 × 电压的平方 × 频率功率代表能耗(Power),而电容率(Capacitance),与 CPU 的制程和工艺等相关,在 CPU 出厂时就已经确定下来。那么我们能改变的只有电压与频率,而频率与电压成正相关。所以当 CPU 在很高的频率上运行时,效能很高但耗电量很大。如果我们能在 CPU 运算量不大时,让它降频运行,这样我们就可以减少功率,同时我们可以降低电压,节约能源,并减少发热与风扇噪音。 Linux 下调整 CPU 的模块叫 CPU 调速器(Governor),Android 等基于 Linux 的嵌入式平台都会使用 CPU 调速器达到省电的效果,同样,Linux也能。

    ??cpu调频策略–最佳性能、偏重性能、偏重省电、最佳省, 变频技术是指CPU硬件本身支持在不同的频率下运行,系统运行过程中可以根据随时可能发生的系统负载情况动态在这些不同的运行频率之间进行切换,从而达到对性能和功耗做到而这兼顾的目的。

    ??处理器负荷,处理器负荷较轻时,降低处理器的时钟速度;在处理器没有负载的时候,自动进入IDLE模式;在处理器长时间不用时,进入sleep模式,将处理器所不需要的模块关闭。

    ??cpufreq policy负责设定cpu调频的一个大致范围,而cpu的具体运行频率,则需要由相应的cufreq governor决定(比如自行调节频率的CPU)。那到底什么是cpufreq governor的运行机制是什么ndroid 平台的 CPU 调速器使用经验,请不要试着直接限制 CPU 的频率,那是在 ARM 平台上才有效的做法,在 X86 平台下对减轻能耗帮助甚微,龙芯mips和loongarch架构待验证。

    • 常用的 cpufreq governor – 为了管好CPU的功耗,CPU厂家也不断为它引入新的电源管理特性
    1. Performance – 性能优先的governor,直接将cpu频率设置为policy->{min,max}中的最大值。
    2. Powersave – 功耗优先的governor,直接将cpu频率设置为policy->{min,max}中的最小值。
    3. Userspace – 由用户空间程序通过scaling_setspeed文件修改频率。
    4. Ondemand – 根据CPU的当前使用率,动态的调节CPU频率。
    5. Conservative –类似Ondemand,不过频率调节的会平滑一下,不会忽然调整为最大值,又忽然调整为最小值。
    6. watch grep “cpu MHz” /proc/cpuinfo – 通过/proc/cpuinfo 查看cpu频率

    基于cpufreq governor的调频思路(Documentationcpu-freqgovernors.txt)

    1. 有两种类型的cpu:一种只需要给定调频范围,cpu会在该范围内自行确定运行频率;另一种需要软件指定具体的运行频率。
    2. 对第一种cpu,cpufreq policy中会指定频率范围policy->{min, max},之后通过setpolicy接口,使其生效即可。
    3. 对第二种cpu,cpufreq policy在指定频率范围的同时,会指明使用的governor。governor在启动后,会动态的(例如启动一个timer,监测系统运行情况,并根据负荷调整频率),或者静态的(直接设置为某一个合适的频率值),设定cpu运行频率。
    3.3.1.1 CPU 电压下探

    对处理器的电压进行最大限度的下探,在挖掘 CPU 体质的极限的同时,起到既能降低发热,又能最大限度保持性能的效果。
    如果正常操作,降低电压一般不会损害 CPU,一般建议从 50 毫伏进行尝试,每次降压尝试多增加 10 毫伏。只要确保在降低电压前,系统中任务均被正确保存即可。

    3.3.2 GPU功耗
    • GPU功耗 – GPU是并行处理单元,由于其算力主要来自多个模块并行计算,为了正常工作,通常需要很多模块同时运算,功耗也很大,所以很多双显卡默认关掉独显。
    1. 查看整机背光 – 。
    2. 关闭屏幕背光 – ,dpms设置显示器的背光,笔记本EC芯片也可以调节显示器背光,笔记本屏幕背光会占用很大的功耗,比如EC芯片调节背光和显卡调节背光同时加载会占用很大的功耗。
    3. 笔电键盘背光 – Keyboard backlight,键盘背光只消耗很小的功耗,但是关闭它是很容易的。
    4. 查看显卡状态 – 。
    5. 双显卡切换方案 – bbswitch或者禁用独显。
    6. 桌面环境和电源管理相关–Gnome和KDE续航就比Xfce少一些。
    7. 显卡功耗相关信息 – sudo cat /sys/kernel/debug/dri/0/radeon_pm_info
    8. 显卡动态功耗 – echo parameter > /sys/class/drm/card0/device/power_dpm_state
      Where “parameter” can be:
      battery (a set of performance levels targeted for optimal operation on battery)
      balanced (a set of performance levels targeted for optimal every day use)
      performance (a set of performance levels targeted for the highest GPU performance)
    3.3.3 硬盘功耗

    ??热量控制,减少硬件发热、降低电脑温度。在AC模式下,硬盘处于高性能状态,磁头不归位,硬盘不减速,所以温度比在XP下要高点。但是在用电池时,硬盘为了减速节电,磁头就会平凡归位,温度自然也会降下来了,但是磁头归位值就会像WIN7和XP系统下一样非常高,对硬盘的寿命有一定的影响(a tradeoff)。

    3.3.4 主板

    ??主板功耗需要整机的原理图。

    3.3.5 光驱

    ??笔记本计算机已经很少装有内置光驱,暂不考虑。

    3.3.6 内存

    ??内存作为系统主存也需要时刻使用,也是功耗消耗的大户。内存泄露,检测耗电高的程序是否存在内存泄露。

    3.3.7 卡
    • 有线 络和无线 络管理
    1. 查看驱动信息 – modinfo iwlwifi | grep -v alias
    2. 查看节能选项 – modinfo iwlwifi | grep power_save
    3. 查看无线 络状态 – iwconfig,Power Management:on即节能模式是开启的
    4. 临时关闭节能模式eth0:iwconfig eth0 power off
    5. 禁用 卡eth0 – sudo ifconfig eth0 down
    6. 启用 卡eth0 – sudo ifconfig eth0 up
    3.3.8 声卡

    ??系统在未使用声卡时可以暂时关闭声卡功能以减少功耗。

    3.3.9 电源管理
    • 电池管理 – 电池自身在反复使用过程中存在损耗,修复电池的方法有多种也是功耗测试的前提,在此推荐一个比较有好的手动修复方法,操作步骤如下:
    1. 关机,插上电源适配器给电池充满电。若电池已是满格状态,可直接进行下一步。
    2. 拔下电源适配器,开机,让电池自动放电,直到电脑自动关机。期间,最好不做任何电脑操作。
    3. 插上电池适配器,将电池充满电,此过程开不开机都OK。
    4. 上述步骤为一循环,每每做上2~3次,效果会更佳。
    • 系统平台级电源管理策略 APM电源管理策略 vs ACPI电源管理策略
    1. APM电源管理策略,APM的全称是AdvancedPowerManagement(高级电源管理),它是一种基于BIOS的系统电源管理方案,它提供CPU和外设电源并通过设备工作超时设定来决定何时将设备切换到低功耗模式。
    2. ACPI电源管理策略,ACPI全称AdvancedConfigurationPowerInterface(高级配置电源接口),ACPI将现有的电源管理BIOS代码、APM应用编程接口、PNPBIOS应用编程接口、多处理器规范表格等集合成一种新的电源管理和配置接口规范,ACPI允许操作系统(不是BIOS)控制电源管理。
    3. 选择,Linux所支持的APM和ACPI针对APM和ACPI两种不同的标准,linux内核提供提供了两个不同的模块来实现电源管理功能,这就是apm和acpi.需要注意,apm和acpi是互相冲突的两个模块,用户在同一时间内只能加载其中之一,如果当他们在加载的时候发现二者之一已经加载,就会自动退出。在官方发布的内核中APM是较为成熟的电源管理方式,可以完成在Windows下ACPI所能完成的大部分功能。由于官方内核中ACPI的功能比较有限,目前还处于开发版状态。所以当前的大多数distribution,如红帽子默认就使用了apm作为电源管理方式。如在ARM体系结构下,有功耗管理模块的平台,有些没有配置管理策略,有的都会采用APM功耗管理,并不会采用ACPI。mips架构不支持ACPI电源管理策略,loongarch架构支持电源管理策略。
    4. 各个芯片设备的电源管理(涉及内核、固件)及ACPI
      利用Linux驱动系统层面的共同特性,补充电源管理函数,实现暂停,继续等功能;利用各个驱动所独有的特性进行优化。利用Linux内核的APM和ACPI机制,实现系统的挂起。
    • 休眠唤醒时设备的notifier通知
    1. 在冻结应用程序之前,使用pm_notifier_call_chain(PM_SUSPEND_PREPARE)来通知驱动程序,在重启应用程序之后,使用pm_notifier_call_chain(PM_POST_SUSPEND)来通知驱动程序。如果驱动程序有事情在上述时机要处理,可以使用register_pm_notifier注册一个notifier
    2. 添加suspend, resume函数(驱动休眠必须发生在APP冻结之后,否则如果驱动休眠了,APP使用驱动就会出错,所有驱动休眠放在suspend中)

    ??一些特殊设备驱动的suspend和resume函数需要仔细商榷,如UART进入待机后关闭电源在唤醒会丢失串口调试信息等。

    • 查看 acpi 相关信息
    1. acpidump -o acpidump.out
    • 查看笔记本laptop电源管理芯片(不同整机厂商) – drivers/platform/mips/
    1. dmesg | grep laptop
    2. sudo evtest

    ??acpi-call,安装对应的acpi-call模块,其中/usr/src/acpi-call-版本 /是你放置acpi_call源码的位置),需要分析ACPI 电源管理是否有导致 CPU loadavg 负载虚高的现象。其中查找资料提到,每次通过apt-get dist-upgrade升级内核后都需要重新编译acpi_call,具体原因Kaijia会继续研究,大家每次更新内核后别忘了重新编译模块,待确认。

    3.3.10 显示器

    ??系统处于运行状态并且屏幕显示器打开时的功耗和休眠时的功耗是有很大差异的。

    3.3.11 外设(触控板等)、GPIO、中断等

    ??大多外设是usb接口,需要使USB模块进入待机休眠模式等。
    ??设置设备的唤醒源: 配置GPIO引脚工作于中断功能, 设置它的触发方式。有些中断可以将系统从睡眠状态中唤醒,我们称之“可以唤醒系统的中断”,当然,“可以唤醒系统的中断”需要配置才能启动唤醒系统这样的功能。这样的中断一般在工作状态的时候就是作为普通I/O interrupt出现,只要在准备使能唤醒系统功能的时候,才会发起一些特别的配置和设定。如何suspend设备中断(IRQ)从休眠中唤醒的过程中,如何resume设备IRQ/p>

    ??风扇调速包含主板风扇和显卡风扇等。
    ??时钟树功耗:时钟树的功耗通常占整个SOC功耗的40%左右,这是因为时钟是一直在翻转的信 ,所以动态功耗特别大。所以门控时钟技术就特别重要。

    • 零、驱动直接编译进内核(静态加载) vs. 编译为模块(动态加载) –

    手动调试过程 – cat /etc/modprobe.d/blacklist.conf,将对应模块添加到黑名单
    blacklist acer_wmi
    blacklist btusb
    blacklist bluetooth
    blacklist uvcvideo
    blacklist nvidia
    blacklist nouveau

    3.4 笔记本电源管理软件

    ??在 Linux 上有很多功耗相关的实用工具,可以在命令行使用或者图形。同时,我们也可以查看电池模组名称、电源、厂商以及电池规格等。电源管理是在不使用时关闭电源或者切换系统的组件到低耗模式的一种功能。

    • 功耗相关工具
    1. upower:是一个命令行工具,其提供了罗列系统中电源的接口。
    2. acpi:显示来自 /proc 或者 /sys 文件系统中的一些信息,例如电池状态或者热量信息。
    3. batstat:是一个为 Linux 打印电池状态的命令行工具。
    4. class file:这个 sysfs 文件系统是一个提供了内核数据结构接口的伪文件系统。
    5. tlp:可以为你带来更高级的电源管理,而无需修改任何配置。
    6. Laptop Mode Tools 是一个 Linux 系统下的笔记本电源管理软件。
    7. PowerTOP 是一个 Linux 工具,用于诊断电量消耗和电源管理的问题。
    8. s-tui:Linux下监控CPU温度、频率、功耗的工具。
    3.4.1 TLP 笔记本电源管理软件
    • TLP是什么br> ??TLP 是一个一款免费的、开源的、功能丰富的 Linux 实用工具,适用于运行Ubuntu和其他Linux发行版的笔记本电脑上的电池使用优化,无需深入研究技术细节就能节省笔记本电池电量。有CLI和GUI版本,TLP 是高度可定制的,以满足你的具体要求以方便使用。 TLP附带一个默认配置,可以为您的操作系统和底层机器进行完美调整,TLP 的默认设置已经针对电池寿命进行了优化,所以你可以直接安装并忘记它。您需要做的就是安装并启用该实用程序,您就可以开始使用了。该实用程序的工作原理是在笔记本电脑使用电

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月22日
下一篇 2022年8月22日

相关推荐