Управління живленням має лише опцію "Не робити нічого" для критично низького рівня заряду батареї в 17.10


10

Я використовую Ubuntu 17.10 з Gnome на ноутбуці Asus.

В інтерфейсі "Налаштування живлення" на вкладці "Енергія" внизу є можливість встановити, що робити, якщо акумулятор критично розрядиться.

Однак, коли я натискаю на спадне меню, щоб встановити цей параметр, він пропонує лише один варіант, який є "не робити нічого":

не робити нічого варіанту живлення

Наразі мій ноутбук буде живитись до 0 заряду батареї або близько до нього, а потім вимкнеться без попереджень, без можливості закриття програм та вимикання граціозно.

Хотілося б попередити, коли акумулятор становить 10%, і, сподіваємось, якийсь час вручну зберегти та вимкнути програми, перш ніж вимкнути комп'ютер. Як я цього досягти?


Редагувати: Ось вміст мого /etc/UPower/UPower.confфайлу:

# Only the system vendor should modify this file, ordinary users
# should not have to change anything.

[UPower]

# Enable the Watts Up Pro device.
#
# The Watts Up Pro contains a generic FTDI USB device without a specific
# vendor and product ID. When we probe for WUP devices, we can cause
# the user to get a perplexing "Device or resource busy" error when
# attempting to use their non-WUP device.
#
# The generic FTDI device is known to also be used on:
#
# - Sparkfun FT232 breakout board
# - Parallax Propeller
#
# default=false
EnableWattsUpPro=false

# Don't poll the kernel for battery level changes.
#
# Some hardware will send us battery level changes through
# events, rather than us having to poll for it. This option
# allows disabling polling for hardware that sends out events.
#
# default=false
NoPollBatteries=false

# Do we ignore the lid state
#
# Some laptops are broken. The lid state is either inverted, or stuck
# on or off. We can't do much to fix these problems, but this is a way
# for users to make the laptop panel vanish, a state that might be used
# by a couple of user-space daemons. On Linux systems, see also
# logind.conf(5).
#
# default=false
IgnoreLid=false

# Policy for warnings and action based on battery levels
#
# Whether battery percentage based policy should be used. The default
# is to use the time left, change to true to use the percentage, which
# should work around broken firmwares. It is also more reliable than
# the time left (frantically saving all your files is going to use more
# battery than letting it rest for example).
# default=true
UsePercentageForPolicy=true

# When UsePercentageForPolicy is true, the levels at which UPower will
# consider the battery low, critical, or take action for the critical
# battery level.
#
# This will also be used for batteries which don't have time information
# such as that of peripherals.
#
# If any value is invalid, or not in descending order, the defaults
# will be used.
#
# Defaults:
# PercentageLow=10
# PercentageCritical=3
# PercentageAction=2
PercentageLow=10
PercentageCritical=3
PercentageAction=2

# When UsePercentageForPolicy is false, the time remaining at which UPower
# will consider the battery low, critical, or take action for the critical
# battery level.
#
# If any value is invalid, or not in descending order, the defaults
# will be used.
#
# Defaults:
# TimeLow=1200
# TimeCritical=300
# TimeAction=120
TimeLow=1200
TimeCritical=300
TimeAction=120

# The action to take when "TimeAction" or "PercentageAction" above has been
# reached for the batteries (UPS or laptop batteries) supplying the computer
#
# Possible values are:
# PowerOff
# Hibernate
# HybridSleep
#
# If HybridSleep isn't available, Hibernate will be used
# If Hibernate isn't available, PowerOff will be used
CriticalPowerAction=HybridSleep

Перевірте, чи це ви шукаєте askubuntu.com/questions/92794/…
Aravind,

Відповіді:


7

Крок 1: Перевірка gsettings

У терміналі можна перевірити два варіанти:

$ gsettings get org.gnome.settings-daemon.plugins.power critical-battery-action
'suspend'
$ gsettings get org.gnome.settings-daemon.plugins.power percentage-low
'10'

Потім для їх зміни використовуйте:

$ gsettings set org.gnome.settings-daemon.plugins.power critical-battery-action suspend
$ gsettings set org.gnome.settings-daemon.plugins.power percentage-low 10

Зауважте, що в моїй системі вони просто чудові, тому я змінив їх на те, що вони були в першу чергу заради прикладу.


Крок 2: Перевірка upower

Управління потужністю Gnome використовує upowerдля важкого підйому. Щоб переконатися, що вона працює і збирає статистику батареї, як слід, використовуйте:

$ upower -d 
Device: /org/freedesktop/UPower/devices/line_power_ACAD
  native-path:          ACAD
  power supply:         yes
  updated:              Sun 18 Mar 2018 02:28:25 PM MDT (135878 seconds ago)
  has history:          no
  has statistics:       no
  line-power
    warning-level:       none
    online:              yes
    icon-name:          'ac-adapter-symbolic'

Device: /org/freedesktop/UPower/devices/battery_BAT1
  native-path:          BAT1
  vendor:               COMPAL
  model:                PABAS0241231
  serial:               41167
  power supply:         yes
  updated:              Tue 20 Mar 2018 04:12:10 AM MDT (53 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               charging
    warning-level:       none
    energy:              48.2544 Wh
    energy-empty:        0 Wh
    energy-full:         93.3552 Wh
    energy-full-design:  96.48 Wh
    energy-rate:         0.0044914 W
    voltage:             14.76 V
    percentage:          51%
    capacity:            96.7612%
    technology:          lithium-ion
    icon-name:          'battery-good-charging-symbolic'

Device: /org/freedesktop/UPower/devices/mouse_0003o046Do101Ax0008
  native-path:          /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:046D:C52B.0003/0003:046D:101A.0008
  vendor:               Logitech, Inc.
  model:                Performance MX
  serial:               E6CE4571
  power supply:         no
  updated:              Tue 20 Mar 2018 04:12:09 AM MDT (54 seconds ago)
  has history:          yes
  has statistics:       no
  mouse
    present:             yes
    rechargeable:        yes
    state:               discharging
    warning-level:       none
    percentage:          55%
    icon-name:          'battery-good-symbolic'

Device: /org/freedesktop/UPower/devices/keyboard_0003o046Do2010x0009
  native-path:          /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.2/0003:046D:C52B.0003/0003:046D:2010.0009
  vendor:               Logitech, Inc.
  model:                K800
  serial:               6DB54BFE
  power supply:         no
  updated:              Tue 20 Mar 2018 04:12:09 AM MDT (54 seconds ago)
  has history:          yes
  has statistics:       no
  keyboard
    present:             yes
    rechargeable:        yes
    state:               discharging
    warning-level:       none
    percentage:          90%
    icon-name:          'battery-full-symbolic'

Device: /org/freedesktop/UPower/devices/ups_hiddev3
  native-path:          /sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4.4/1-1.4.4:1.0/usbmisc/hiddev3
  vendor:               CPS
  model:                CP550HGa
  serial:               BFBB104#BI1.g
  power supply:         yes
  updated:              Tue 20 Mar 2018 04:12:51 AM MDT (12 seconds ago)
  has history:          yes
  has statistics:       yes
  ups
    present:             yes
    state:               fully-charged
    warning-level:       none
    time to empty:       37.5 minutes
    percentage:          100%
    icon-name:          'battery-full-charged-symbolic'

Device: /org/freedesktop/UPower/devices/DisplayDevice
  power supply:         yes
  updated:              Tue 20 Mar 2018 04:10:14 AM MDT (169 seconds ago)
  has history:          no
  has statistics:       no
  ups
    present:             yes
    state:               fully-charged
    warning-level:       none
    time to empty:       37.5 minutes
    percentage:          100%
    icon-name:          'battery-full-charged-symbolic'

Daemon:
  daemon-version:  0.99.4
  on-battery:      no
  lid-is-closed:   no
  lid-is-present:  yes
  critical-action: HybridSleep

Спочатку запустіть цю команду, коли підключено ноутбук. Потім відключіть ноутбук та запустіть команду через деякий час та переконайтесь, що залишок часу на батареї зменшився належним чином.


Останній крок - сплячка низького рівня

Це останній крок, який слід зробити після вичерпання всіх інших кроків. Цей крок не вимагає Ubuntu або Unity або Gnome або gsettingsабо upower. Для цього потрібно лише systemd, udevі cronякі вбудовані в майже все Linux дистрибутиви, або без графічного інтерфейсу користувача (Desktop).

Від ArchLinux :

Перебуває в сплячому режимі при низькому рівні заряду акумулятора

Якщо ваш акумулятор надсилає події udevщоразу, коли він (не) заряджається на 1%, ви можете використовувати це udevправило, щоб автоматично перезимувати систему, коли рівень акумулятора є критичним, і таким чином запобігти втраті всіх незбережених робіт. Примітка: Не всі батареї повідомляють про події розряду. Перевірте, працюючи udevadm monitor --propertyна акумуляторі, і побачите, чи повідомляються про якісь події Вам слід почекати принаймні 1% падіння. Якщо жодних подій не зафіксовано і /sys/class/power_supply/BAT0/alarmвін не дорівнює нулю, то, ймовірно, акумулятор запустить подію, коли BAT0/energy_nowопуститься нижче значення тривоги, і udevправило буде діяти до тих пір, поки не вийде відсоткова математика. У деяких ноутбуках опція для цього відключена в BIOS за замовчуванням.

$ cat /etc/udev/rules.d/99-lowbat.rules

# Suspend the system when battery level drops to 5% or lower
SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", ATTR{capacity}=="[0-5]", RUN+="/usr/bin/systemctl hibernate"

Це правило буде повторюватися щоразу, коли встановлена ​​умова. Таким чином, при відновленні зі сплячого режиму, коли акумулятор критично важливий, комп'ютер буде перезимувати безпосередньо. Деякі ноутбуки не завантажуються за межі певного рівня акумулятора, тому правило можна відповідним чином відрегулювати.

Акумулятори можуть стрибати до нижчого значення замість того, щоб постійно розряджатись, тому використовується udevсхема узгодження струн для всіх потужностей 0через 5.

Для виконання різних дій залежно від стану електроживлення та / або потужності можуть бути додані інші правила.

Якщо у вашій системі немає або відсутні події ACPI, використовуйте cronтакий сценарій:

#!/bin/sh
acpi -b | awk -F'[,:%]' '{print $2, $3}' | {
    read -r status capacity

    if [ "$status" = Discharging -a "$capacity" -lt 5 ]; then
        logger "Critical battery threshold"
        systemctl hibernate
    fi
}

Тестові події

Один із способів перевірити udevправила - це змусити їх створити файл під час їх запуску. Наприклад:

$ cat /etc/udev/rules.d/98-discharging.rules

SUBSYSTEM=="power_supply", ATTR{status}=="Discharging", RUN+="/usr/bin/touch /home/example/discharging"

Це створює файл, /home/example/dischargingколи зарядний пристрій ноутбука відключено. Ви можете перевірити, чи працювало правило, відключивши ноутбук та шукаючи цей файл. Для більш досконалого udevтестування правил див. Udev # Правила тестування перед завантаженням .

Підсумок

Існує більше кроків для публікації між кроком №2 та "Останнім кроком", але вони будуть розміщені у вигляді ОП, які відкриють більше деталей після тестування. Тим часом "Останній крок" повинен зменшити більше відповідей на півдорозі, як, наприклад, просто відсоток звітування, що залишився.


Дякую за цю відповідь На жаль, здається, що мої gsettingsпараметри вже були встановлені, suspendі 10це вказувало б на те, що моя система не дотримується цих параметрів.
Анкета

@Questioner gsettingsбув першим (легким) кроком для перевірки. Я додав upowerнаступний крок.
WinEunuuchs2Unix

Дякую за оновлення Я перевірю ноутбук, як ви запропонуєте. Тим часом я /etc/UPower/UPower.confдо запитання додав вміст свого файлу.
Анкета

@Questioner Я побіг clipboard-diffміж вашою UPower.confта версією, встановленою в моїй системі. Вони однакові.
WinEunuuchs2Unix

@Questioner Пара питань: 1) Чи gsettings get org.gnome.settings-daemon.plugins.power activeповертається true? 2) Чи є у вас swap-розділ> кількість оперативної пам’яті?
WinEunuuchs2Unix

3

Ось дружній сценарій, який я склав разом!

Я створив імпровізоване рішення, яке перевіряє, чи ваш ноутбук живиться від змінного чи акумуляторного струму ...

Тому, якщо він увімкнено живлення змінного струму, він вийде, а якщо ні, то він продовжуватиме перевірку залишкової потужності акумулятора кожні 15 секунд, поки не потрапить у визначену змінну, lowа точніше відсоток ...

О, і якщо ви хочете продовжувати роботу в тому ж терміналі, коли ви запустили цей скрипт, просто запустіть сценарій так:

bash power-notify.sh &

Без зайвої приналежності, ось сценарій:

#!/bin/bash
#Get battery percent
bat_percent=$(acpi | awk -F ", " '{print $2}' | tr -d %)


#When to start showing warnings... Example: 10% --> low=10
low=10
#Alert message to show when low percent is reached
alert="Low battery, $bat_percent% left..."

#Check if notify-send is installed
notfiy_send_test=$(which notify-send)
if [ $? != 0 ] 
then
    echo "Please install notify-send..."
    exit 1
fi

acpi_test=$(which acpi)
if [ $? != 0 ]
then
    echo "Please install acpi..."
    exit 1
fi


#Test if cord is plugged in 
plugged=$(acpi -a | awk -F ": " '{print $2}')

if [ $plugged == 'on-line' ]
then
    echo "Your computer is connected to a power source..."
    echo "Exiting..."
    exit 0
fi

while :
do

    if [ $bat_percent -lt $low ]
    then
        notify-send "$alert"
        sleep 15
    else
        #Check every fifteen seconds to use less resources...
        sleep 15
    fi

done

Цей сценарій можна також знайти на GitHub, тут ...


Робоча система повинна попереджати вже при заданих відсотках, а потім гібридному режимі на 2%. Я думаю, що саме це шукає ОП. Ваш сценарій можна вдосконалити, зателефонувавши до сну в 2%. Також попереджувальний міхур кожні 15 секунд є крайнім ІМО. Міхур повідомлення t 9%, 8%, 7% ... 3% було б більш практичним, я думаю. Також звуковий сигнал системи допоможе людям, які не дивляться на свій ноутбук. Цей сценарій містить деякі компоненти, які я рекомендував: askubuntu.com/questions/837078/…
WinEunuuchs2Unix

@ WinEunuuchs2Unix просто простий сценарій
NerdOfCode

Напевно, і ваш сценарій, і мій сценарій, з якими я пов'язаний в останньому коментарі, професіонали можуть вважати простими. Я не впевнений, який сценарій ви називаєте "простим"?
WinEunuuchs2Unix

Мій сценарій точно.
NerdOfCode

Ні, це хороший сценарій і робить те, що ви хочете, щоб це зробити. Усі чудові сценарії починаються як хороші сценарії, і ви можете вдосконалювати їх протягом днів, тижнів чи десятиліть. Linux існує вже давно і буде довше.
WinEunuuchs2Unix
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.