我有一台华硕 N55SL 笔记本电脑,其电池在 Windows 7 下可以运行近 4 小时。
直到上周,我使用 Ubuntu 16.04 和 Linux 4.13 时,电池续航时间为 2 小时 50 到 3 小时。发生了一些事情(更新或其他原因),导致我的电池续航时间不足 1 小时 30 分钟。
我已将 TLP 配置为启用 wifi 卡上的电源管理和 USB 挂起。使用的 CPU 驱动程序是 powersave 调节器上的 Intel Pstate。
打开 powertop,除 VM 写回超时外,所有可调参数都处于良好状态,但网络接口 wlp3s0(iwlwifi)和 enp5s0(atl1c)分别消耗 14 W 和 6 W,而系统总功耗为 25 W。我还有一个 usb-device-8086-0189 消耗 2 W,这似乎是蓝牙无线电,而蓝牙是关闭的。
我记得几周前总功率低于 15 W 时还能运行。这该怎么办/可能出现什么问题?
答案1
问题是由于 DKMS 损坏造成的,如下所述:eth0 功耗高 | archlinux.org
DKMS 损坏导致bbswitch
模块无法在内核更新期间正确编译。因此,Nvidia GPU 不断打开,电源校准不佳,因此将额外的功率损耗错误地归咎于网卡。
我必须清除并重新安装 DKMS、bbswitch 和 Nvidia 驱动程序,如下所述:内核升级后,dkms 不会自动重建
现在我又回到了13-14 W。
答案2
首先,我要确保 powertop 正确地测量了用电量,它可能考虑了其他设备,但将其归因于 eth0。您可以使用powertop --calibrate
讨论过的方法来检查这一点Arch Linux wiki 上
一旦你确定你正在正确测量用电量,那么你需要查看特定驱动程序的驱动程序选项。你可以按照lshw -c network
此处讨论的方式确定驱动程序如何找到网络接口后面的内核模块?
了解驱动程序后,你可以通过卸载模块(使用modprobe -r <module name>
,以便卸载依赖项)然后添加一个 .conf 文件,其中包含/etc/modprobe.d/
你想要尝试运行的选项,来尝试使用不同的模块选项modprobe <module name> again
- 这里有一个很好的讨论,介绍如何发现可用的选项,以及如何配置它们(即使对于较旧的 Ubuntu 版本)如何添加内核模块参数?
最后,我个人在使用 Intel 9260 卡时遇到了一些问题,尽管这些问题与电源无关,只需通过 UKUU 包(可在软件中心获得)将内核升级到当前的 4.17.x 系列即可解决我的问题,无需进一步干预。这可能是需要记住的最后手段,或者根据您对内核升级的熟悉程度进行简单测试。
祝你好运