![查看关机日志](https://linux22.com/image/1063212/%E6%9F%A5%E7%9C%8B%E5%85%B3%E6%9C%BA%E6%97%A5%E5%BF%97.png)
我在一台计算机上安装了 Ubuntu 16.04 LTS 和 Windows 10 双启动系统。HP Pavilion 15-CC508NF。当我从 Windows 10 关机时,我的电池保持原样,没有放电。但是当我从 Ubuntu 关机时,电池每天会损失 5%。
我已经安装了 TLP 包并禁用了以太网卡上的 WOL(网络唤醒)。但当计算机关闭时,电池仍会继续放电 - 每天仅剩 2%。
我认为某些硬件在计算机关闭时会继续消耗电量。
有什么想法可以确定问题所在/导致问题的硬件吗?
答案1
另一位拥有 HP Pavilion 的用户一夜之间电池电量减少 10%。显然没有针对 LAN 唤醒的 BIOS 配置,因此他们必须使用这种方法:
$ sudo lshw -class network | grep logical
logical name: enp59s0
logical name: wlp60s0
以 开头的逻辑名称e
代表以太网,即“LAN”。以 开头的逻辑名称w
代表 WiFi,这无关紧要。
然后获取以太网/LAN 逻辑名称并将其传递给命令ethtool
:
$ sudo ethtool enp59s0
Settings for enp59s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Current message level: 0x000060e4 (24804)
link ifup rx_err tx_err hw wol
Link detected: yes
在我的情况下,“局域网唤醒”未打开,但如果您的显示:
Wake-on: g
这意味着“局域网唤醒”已打开,并且像 OP 每晚损失 0% 的电池电量一样,您每天损失 5% 的电池电量。
要关闭“局域网唤醒”,OP 使用:
sudo ethtool -s enp59s0 wol d
enp59s0
请记住用上面步骤 1 中的逻辑名称替换。wol
代表“局域网唤醒”。- 代表。
d
disable
ArchLinux 有一篇关于网络唤醒。
为什么要使用“局域网唤醒”?
一些服务器会希望在夜间唤醒客户端电脑并在其上安装新程序或更新文件。
USB 在 Windows 中关闭,在 Ubuntu 中保持打开状态
用户汤姆五金报告称,当 Windows 关闭时,所有 USB 供电设备都会关闭。但是,当 Ubuntu 16.04 关闭时,USB 供电设备仍保持通电状态。
要确认您是否遇到这种情况,请将 USB 供电设备(例如手机或鼠标)连接到所有 USB 端口,并查看 Ubuntu 关闭计算机时它们是否通电。
不太可能发生的场景
- USB 唤醒
- 无线局域网唤醒
查看关机日志
我经历过suspend
系统未完成该过程的情况。当系统恢复时,它会完成该过程。您应该检查/var/log/syslog
或/var/log/syslog.1
确保一切都正常关闭并已关闭电源。您还可以检查journalctl -b-1
以查看上一次启动的结束。使用journalctl -b
查看当前启动的开始。
答案2
我想象系统仍然在运行服务或者其他东西。
我建议先查看service --status-all
并决定是否有任何你只想停止的服务。你也可以尝试在关机前停止所有服务。有方法可以停止服务直到重新启动,所以这可能正是你所需要的。
您还可以将服务列表放在文件中.txt
,然后使用该列表来停止或启动一组服务。
如果您不喜欢“一个接一个”的方法,您可以安装一些提供 GUI 类型界面的工具 - 比如 sysv-rc-conf 或 Jobs-Admin。它们都为您提供了一个不错的界面来停止和启动服务。第一个在终端中运行,第二个运行一个单独的 GUI,因为我知道有些人偏向于非此即彼。
希望这能有所帮助。老实说,我不知道这是否会有帮助,因为我假设关闭系统会完全停止运行级别,对吧?但值得一试。:)