從Linux終端查看筆記本電池狀態和等級的5個方法
我們可以輕松地通過圖形化界面查看當前電量百分比、是否在充電以及當前電量還可以使用多長時間等電池狀態,但是卻無法查看電池健康度等相關信息。
在這篇文章就是為了解決這些問題。
在 Linux 上有很多這樣的實用工具,而且可以在命令行使用。
這篇文章今天就要探討這個主題,我會盡我所能的覆蓋盡可能多的信息。
每月檢查一次你的電池健康度是一個很好的想法。它可以幫你檢查你當前遇到的問題是否與電池或者充電相關。
同時,我們也可以查看電池模組名稱、電源、廠商以及電池規格等。
電源管理是在不使用時關閉電源或者切換系統的組件到低耗模式的一種功能。
幾種在 Linux 下檢查電池狀態的實用工具
upower:是一個命令行工具,其提供了羅列系統中電源的接口。acpi:顯示來自/proc或者/sys文件系統中的一些信息,例如電池狀態或者熱量信息。batstat:是一個為 Linux 打印電池狀態的命令行工具。tlp:可以為你帶來更高級的電源管理,而無需修改任何配置。class file:這個 sysfs 文件系統是一個提供了內核數據結構接口的偽文件系統。
如何使用 upower 命令檢查筆記本電池狀態
upower 是一個命令行工具,其提供了羅列系統中電源的接口。它在你的電腦上可以控制不同操作的延遲,這可以為你節省很大一部分電量。
只需要在 Linux 中運行以下命令獲取電池以及它所依賴的其他信息。
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0native-path: BAT0vendor: SMPmodel: L14M4P23serial: 756power supply: yesupdated: Monday 03 December 2018 07:56:18 PM IST (95 seconds ago)has history: yeshas statistics: yesbatterypresent: yesrechargeable: yesstate: dischargingwarning-level: noneenergy: 28.23 Whenergy-empty: 0 Whenergy-full: 52.26 Whenergy-full-design: 60 Whenergy-rate: 10.714 Wvoltage: 14.819 Vtime to empty: 2.6 hourspercentage: 54%capacity: 87.1%technology: lithium-ionicon-name: 'battery-good-symbolic'History (charge):1543847178 54.000 dischargingHistory (rate):1543847178 10.714 discharging
使用下面的格式檢查電池的特定信息。
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -i "state\|percentage\|time to empty"state: dischargingtime to empty: 2.1 hourspercentage: 43%
這個類似于上面的那個,但是是在充電線纜的插入后運行,這也就是為什么下面會顯示正在充電狀態的原因。
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -i "state\|percentage\|time to empty"state: chargingpercentage: 41%
如何使用 TLP 命令檢查筆記本電池狀態
TLP 是一個自由開源的多功能的命令行工具,它可以優化筆記本電池而無需修改任何配置。
TLP 可以為你的 Linux 帶來更高級的電源管理,而無需理解任何技術細節。TLP 默認附帶了一個已經為你的電池優化好的配置,所以你可以安裝好后就不再管它了。盡管 TLP 是一個可以根據你的需求高度可定制的工具。
TLP 在絕大多數 Linux 發行版,例如 Arch、Debian、Fedora、Gentoo、openSUSE 等的官方庫中都可用。使用你的 Linux 發行版的包管理安裝 TLP 即可。
只需要在 Linux 中運行以下命令獲取電池以及其他所依賴的信息。
$ sudo tlp-stat -b--- TLP 1.1 --------------------------------------------+++ Battery Status/sys/class/power_supply/BAT0/manufacturer = SMP/sys/class/power_supply/BAT0/model_name = L14M4P23/sys/class/power_supply/BAT0/cycle_count = (not supported)/sys/class/power_supply/BAT0/energy_full_design = 60000 [mWh]/sys/class/power_supply/BAT0/energy_full = 52260 [mWh]/sys/class/power_supply/BAT0/energy_now = 21950 [mWh]/sys/class/power_supply/BAT0/power_now = 10923 [mW]/sys/class/power_supply/BAT0/status = DischargingCharge = 42.0 [%]Capacity = 87.1 [%]
也可以查看其他的信息。
$ sudo tlp-stat -s--- TLP 1.1 --------------------------------------------+++ System InfoSystem = LENOVO Lenovo ideapad Y700-15ISK 80NVBIOS = CDCN35WWRelease = "Manjaro Linux"Kernel = 4.19.6-1-MANJARO #1 SMP PREEMPT Sat Dec 1 12:21:26 UTC 2018 x86_64/proc/cmdline = BOOT_IMAGE=/boot/vmlinuz-4.19-x86_64 root=UUID=69d9dd18-36be-4631-9ebb-78f05fe3217f rw quiet resume=UUID=a2092b92-af29-4760-8e68-7a201922573bInit system = systemdBoot mode = BIOS (CSM, Legacy)+++ TLP StatusState = enabledLast run = 07:16:12 IST, 4362 sec(s) agoMode = batteryPower source = battery```### 如何使用 ACPI 命令檢查電池狀態ACPI 代表<ruby>高級配置和電源接口<rt>Advanced Configuration and Power Interface</rt></ruby>模塊,它們是不同 ACPI 部件的內核模塊。它們啟用特殊的 ACPI 函數向 `/proc` 或者 `/sys` 中添加信息。這些信息可以通過事件或者其他監控程序的 acpid 進行解析。
$ acpi Battery 0: Charging, 43%, 01:05:11 until charged “`
查看電池容量。
$ acpi -iBattery 0: Charging, 43%, 01:05:07 until chargedBattery 0: design capacity 3817 mAh, last full capacity 3324 mAh = 87%
查看更多有關電池及其相關的信息。
$ acpi -VBattery 0: Charging, 43%, 01:05:07 until chargedBattery 0: design capacity 3815 mAh, last full capacity 3323 mAh = 87%Adapter 0: on-lineCooling 0: Processor 0 of 10Cooling 1: Processor 0 of 10Cooling 2: Processor 0 of 10Cooling 3: iwlwifi 0 of 19Cooling 4: Processor 0 of 10Cooling 5: iwlwifi no state information availableCooling 6: Processor 0 of 10Cooling 7: Processor 0 of 10Cooling 8: Processor 0 of 10Cooling 9: intel_powerclamp no state information availableCooling 10: x86_pkg_temp no state information availableCooling 11: Processor 0 of 10
如何使用 Batstat 命令查看筆記本電池狀態
batstat 是一個在 Linux 終端打印電池信息的命令行工具。
Status: ChargingMax energy: 50.00 WhEnergy left: 24.50 WhPower Consumption: 26.40 WPercentage left: 49.00%Average power Consumption: 0.00 WTime elapsed: 0: 0:12 since 49.00%= Time ======== Percent ============================================0: 0: 0 49.00%
如何使用 sysfs 文件系統查看筆記本電池狀態
sysfs 文件系統是一個提供了內核數據結構接口的偽文件系統。sysfs 下的文件提供有關設備、內核模塊、文件系統和其他內核組件的信息。
sysfs 文件系統通常掛載在 /sys。通常來說,它會被系統自動掛載,但是也可以使用例如 mount -t sysfs sysfs /sys 命令進行手動掛載。
在 sysfs 文件系統中的很多文件都是只讀的,但也有一些是可寫的,允許更改內核變量。為了避免冗余,符號鏈接被大量用于連接文件系統數中的條目。
$ cat /sys/class/power_supply/BAT0/*051Normal0cat: /sys/class/power_supply/BAT0/device: Is a directory522600006000000026660000SMPL14M4P23cat: /sys/class/power_supply/BAT0/power: Is a directory276560001756Chargingcat: /sys/class/power_supply/BAT0/subsystem: Is a directoryLi-ionBatteryPOWER_SUPPLY_NAME=BAT0POWER_SUPPLY_STATUS=ChargingPOWER_SUPPLY_PRESENT=1POWER_SUPPLY_TECHNOLOGY=Li-ionPOWER_SUPPLY_CYCLE_COUNT=0POWER_SUPPLY_VOLTAGE_MIN_DESIGN=14800000POWER_SUPPLY_VOLTAGE_NOW=15840000POWER_SUPPLY_POWER_NOW=27656000POWER_SUPPLY_ENERGY_FULL_DESIGN=60000000POWER_SUPPLY_ENERGY_FULL=52260000POWER_SUPPLY_ENERGY_NOW=26660000POWER_SUPPLY_CAPACITY=51POWER_SUPPLY_CAPACITY_LEVEL=NormalPOWER_SUPPLY_MODEL_NAME=L14M4P23POWER_SUPPLY_MANUFACTURER=SMPPOWER_SUPPLY_SERIAL_NUMBER= 7561480000015840000




















