La administración de energía solo tiene la opción de "No hacer nada" para la batería extremadamente baja en 17.10

10

Estoy usando Ubuntu 17.10 con Gnome en una computadora portátil Asus.

En la interfaz de Configuración de energía, debajo de la pestaña Energía, hay una opción en la parte inferior para configurar qué hacer en caso de que la batería se agote.

Sin embargo, cuando hago clic en el menú desplegable para establecer esa opción, solo ofrece una opción, que es "no hacer nada":

no hacer nada opción de energía

Actualmente, mi computadora portátil se agotará con una carga de batería de 0, o cerca de ella, y luego se apagará sin advertencias, sin posibilidad de cerrar programas y apagarse con gracia.

Me gustaría recibir una advertencia cuando la batería esté al 10% y, con suerte, algún tiempo para guardar y apagar programas manualmente antes de apagar la computadora. ¿Cómo logro esto?


Editar: Aquí está el contenido de mi /etc/UPower/UPower.confarchivo:

# 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
Preguntador
fuente
Comprueba si estás buscando askubuntu.com/questions/92794/…
Aravind el

Respuestas:

7

Paso 1: verificar gsettings

Hay dos opciones que puede verificar en la terminal:

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

Luego, para cambiarlos, use:

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

Tenga en cuenta que en mi sistema están bien, así que los cambié a lo que eran en primer lugar, por ejemplo.


Paso 2: verificar upower

La administración de energía de GNOME utiliza upowerpara hacer el trabajo pesado. Para asegurarse de que se está ejecutando y recolectando estadísticas de batería como debería, use:

$ 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

Primero ejecute este comando cuando la computadora portátil esté enchufada. Luego, desenchufe la computadora portátil y ejecute el comando después de un tiempo y asegúrese de que el tiempo restante de la batería se haya reducido adecuadamente.


Último paso: hibernación de bajo nivel

Este es el último paso que se tomaría después de agotar todos los demás pasos. Este paso no requiere Ubuntu o Unity o Gnome o gsettingso upower. Solo requiere systemd, udevy cronque están integrados en casi todas las distribuciones de Linux con o sin GUI (escritorio).

De ArchLinux :

Hibernar con poca batería

Si su batería envía eventos udevcada vez que se (des) carga en un 1%, puede usar esta udevregla para hibernar automáticamente el sistema cuando el nivel de la batería es crítico, y así evitar que se pierda todo el trabajo no guardado. Nota: No todas las baterías informan eventos de descarga. Realice la prueba udevadm monitor --propertycon la batería y vea si se informa algún evento. Debe esperar al menos 1% de caída. Si no se informan eventos y /sys/class/power_supply/BAT0/alarmno es cero, entonces la batería probablemente desencadenará un evento cuando BAT0/energy_nowcaiga por debajo del valor de alarma, y ​​la udevregla funcionará mientras el porcentaje matemático funcione. Algunas computadoras portátiles tienen una opción para esto deshabilitada en BIOS por defecto.

$ 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"

Esta regla se repetirá siempre que se establezca la condición. Como tal, cuando se reanuda la hibernación cuando la batería es crítica, la computadora hiberna directamente. Algunas computadoras portátiles no arrancan más allá de cierto nivel de batería, por lo que la regla podría ajustarse en consecuencia.

Las baterías pueden saltar a un valor inferior en lugar de descargar de forma continua, por lo tanto, un udevpatrón de cadena coincidente para todas las capacidades 0a través 5se utiliza.

Se pueden agregar otras reglas para realizar diferentes acciones según el estado y / o la capacidad de la fuente de alimentación.

Si su sistema no tiene o faltan eventos ACPI, use croncon el siguiente script:

#!/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
}

Pruebas de eventos

Una forma de probar las udevreglas es hacer que creen un archivo cuando se ejecutan. Por ejemplo:

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

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

Esto crea un archivo /home/example/dischargingcuando el cargador de la computadora portátil está desconectado. Puede probar si la regla funcionó desconectando su computadora portátil y buscando este archivo. Para udevpruebas de reglas más avanzadas , vea Udev # Prueba de reglas antes de cargar .

Resumen

Hay más pasos para publicar entre el Paso 2 y el "Último paso", pero se publicarán cuando OP revele más detalles después de la prueba. Mientras tanto, el "Último paso" debería reducir más respuestas intermedias, como simplemente informar el porcentaje restante.

WinEunuuchs2Unix
fuente
Gracias por esta respuesta. Desafortunadamente, parece que mis gsettingsparámetros ya estaban establecidos en suspendy 10, lo que indicaría que mi sistema no está respetando esas opciones.
Interlocutor
@Questioner gsettingsfue el primer paso (fácil) para verificar. He agregado upowerel siguiente paso a seguir.
WinEunuuchs2Unix
Gracias por la actualizacion. Probaré la computadora portátil como sugieres. Mientras tanto, agregué el contenido de mi /etc/UPower/UPower.confarchivo a mi pregunta.
Interlocutor
@Questioner Corrí clipboard-diffentre tu UPower.confy la versión instalada en mi sistema. Son idénticos
WinEunuuchs2Unix
Preguntas @Questioner Pareja: 1) ¿El gsettings get org.gnome.settings-daemon.plugins.power activeretorno true? 2) ¿Tiene una partición de intercambio> cantidad de RAM?
WinEunuuchs2Unix
3

¡Aquí hay un guión amigable que armé!

He creado una solución improvisada que comprueba si su computadora portátil está alimentada por CA o batería (CC) ...

Por lo tanto, si está conectado a la alimentación de CA, saldrá y, de lo contrario, continuará comprobando la energía restante de la batería cada 15 segundos hasta que alcance la variable definida lowo, más bien, el porcentaje ...

Ah, y si desea continuar trabajando en la misma terminal que ejecutó este script, simplemente ejecute el script de esta manera:

bash power-notify.sh &

Sin más preámbulos, aquí está el script:

#!/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

Este script también se puede encontrar en GitHub, aquí ...

NerdOfCode
fuente
Se supone que un sistema de trabajo ya da advertencias en porcentajes dados y luego hibrida dormida al 2%. Creo que eso es lo que está buscando el OP. Su script podría mejorarse llamando a hibernate al 2%. También una burbuja de advertencia cada 15 segundos es IMO extrema. Un mensaje de burbuja t 9%, 8%, 7% ... 3% sería más práctico, creo. Además, un sonido de alerta del sistema ayudaría a las personas que no miran su computadora portátil en ese momento. Este script tiene algunos de los componentes que recomendé: askubuntu.com/questions/837078/…
WinEunuuchs2Unix
@ WinEunuuchs2Unix solo un script simple
NerdOfCode
Supongo que tanto tu guión como mi guión que vinculé en el último comentario pueden ser considerados simples por profesionales. Sin embargo, no estoy seguro de qué script estás llamando "simple".
WinEunuuchs2Unix
Mi guión definitivamente.
NerdOfCode
No, es un buen guión y hace lo que quieres que haga. Todos los scripts excelentes comienzan como buenos scripts y puedes mejorarlos durante días, semanas o décadas. Linux ha existido durante mucho tiempo y seguirá existiendo durante mucho más tiempo.
WinEunuuchs2Unix