Главная
» LINUX
»
Как проверить состояние батареи ноутбука в Linux из командной строки
Как проверить состояние батареи ноутбука в Linux из командной строки
Используйте эту команду upowerдля проверки уровня заряда и состояния зарядки ноутбука под управлением Linux из терминала. Запустите команду upower -e, чтобы найти устройство батареи, а затем проверьте его состояние с помощью команды upower -i. Для оценки износа батареи сравните заявленную энергию полного заряда с исходной расчетной энергией. Процент заряда показывает, сколько энергии осталось в данный момент; это не процент состояния батареи.
Проверьте состояние батареи с помощью UPower.
1. Найдите батарейное устройство.
Откройте терминал и выведите список устройств питания, которые видит UPower:
upower -e
Найдите путь, содержащий battery_, например /org/freedesktop/UPower/devices/battery_BAT0, . Суффикс может отличаться в зависимости от модели ноутбука. В справочнике команд UPower описаны способы -eперечисления устройств и -iотображения их подробных сведений.
Пример пути к устройству UPower; название батареи в вашей системе может отличаться.
2. Ознакомьтесь с текущим уровнем заряда и состоянием счета.
Скопируйте путь к батарее из выходных данных и вставьте его в эту команду. Замените пример пути, если ваш отличается:
Найдите поля percentageи state. Процентное значение показывает текущий уровень заряда; состояние обычно указывает на зарядку, разрядку или полную зарядку. В зависимости от батареи и прошивки, отчет может также включать оставшуюся энергию, расчетное время до разрядки или полной зарядки, а также емкость при полной зарядке. Расчетное время может отсутствовать, если ноутбук подключен к сети, показания изменяются или оборудование не предоставляет достаточно данных. В справочнике устройств UPower дано определение этих полей.
Примерные выходные значения являются иллюстративными; ваши показания будут отличаться.
Для таких проверок, доступных только для чтения, обычно не требуется root-доступ к оболочке. sudo -sПредварительный запуск не нужен и предоставляет терминалу более широкие привилегии, чем требуется для этой задачи.
Проверьте батарею без UPower.
Linux предоставляет доступ к поддерживаемым показаниям источника питания через /sys/class/power_supply/. Сначала найдите каталог, который идентифицирует себя как батарея:
for d in /sys/class/power_supply/*; do
[ -r "$d/type" ] && [ "$(cat "$d/type")" = "Battery" ] && printf '%s
' "$d"
done
Используйте путь, который отображается вместо указанного /sys/class/power_supply/BAT0ниже. Многие ноутбуки используют BAT0, но это имя не гарантируется. Чтобы прочитать основную информацию о состоянии:
capacity— это текущий заряд от 0 до 100, а statusуказывает, заряжается ли батарея, разряжается, полностью заряжена или не заряжается. Документация ядра Linux по питанию описывает эти атрибуты, а также дополнительные показания энергии, заряда, состояния и количества циклов, которые могут предоставлять драйверы.
В каталоге sysfs, посвященном батарее, отображается процент быстрой зарядки и состояние зарядки.
Оцените состояние батареи на основе данных о её ёмкости.
Батарея может быть заряжена на 100%, но при этом содержать меньше энергии, чем когда она была новой. Если UPower сообщает и о заряде , energy-fullи о energy-full-designемкости, сравните их, чтобы оценить, сколько от первоначальной полной емкости осталось:
upower -i /org/freedesktop/UPower/devices/battery_BAT0 | awk '
/energy-full:/ { full = $2 }
/energy-full-design:/ { design = $2 }
END {
if (full > 0 && design > 0)
printf "Estimated full-capacity health: %.1f%%
", 100 * full / design
else
print "Energy capacity data is unavailable"
}'
Например, 45 Вт·ч текущей емкости при полной зарядке, разделенные на 60 Вт·ч расчетной емкости, дают оценку в 75%. Подставьте найденный ранее путь устройства. Если поля энергии отсутствуют, проверьте наличие соответствующих charge-fullзначений charge-full-design; сравните пару с одинаковыми единицами измерения. Не делите текущий заряд или energyзначение на расчетную емкость и не называйте это состоянием — это смешает оставшийся заряд с износом батареи.
Показатель в 75% — это примерный расчет, а не данные с реального ноутбука.
Некоторые более новые комбинации ядра и прошивки также предоставляют доступ к файлу state_of_health. Если этот файл существует, вы можете прочитать его напрямую, но в документации ядра отмечается, что его расчет может зависеть от производителя. Показания емкости являются приблизительными оценками, полученными от контроллера батареи; калибровка, прошивка и поддержка оборудования влияют на их точность, поэтому используйте их как тренд, а не как лабораторное измерение.
Дополнительно: используйте Battop для просмотра содержимого терминала в реальном времени.
Если вам нужен интерактивный интерфейс, описанный в оригинальном руководстве, Battop — это отдельная программа для просмотра состояния батареи в терминале. В файле README проекта описывается установка в Arch Linux через AUR-помощник, предварительно собранные релизы и сборка из исходного кода. Если Git и инструмент Cargo для Rust уже установлены, сборка из исходного кода будет следующей:
git clone https://github.com/svartalf/rust-battop.git
cd rust-battop
cargo build --release
./target/release/battop
Установите Rust и Cargo через надежный источник пакетов вашего дистрибутива или официальный установщик Rustup . Battop необязателен: UPower или sysfs могут ответить на основные вопросы о состоянии батареи без добавления дополнительной программы. См. battop -hдоступные параметры в установленной вами версии.
Если Linux не отображает батарею
Если пакет upowerотсутствует, установите его upowerиз репозиториев программного обеспечения вашего дистрибутива, а затем запустите команду повторно upower -e.
Если команда выводит список устройств, но не отображает состояние батареи, проверьте имена каталогов sysfs и убедитесь, что прошивка вашего ноутбука предоставляет Linux доступ к батарее.
Если поле, определяющее емкость или состояние батареи, отсутствует, драйвер ядра может его не предоставить. Отсутствие данных не означает, что батарея исправна или вышла из строя; это означает, что данный метод не может сообщить значение.
Чтобы отслеживать изменение показаний, запустите устройство upower --monitor-detail, а затем отключите или снова подключите питание. Нажмите Ctrl+C, чтобы остановить мониторинг.