O Gerenciamento de energia tem apenas a opção “Não fazer nada” por bateria extremamente fraca em 17.10


10

Estou usando o Ubuntu 17.10 com Gnome em um laptop Asus.

Na interface Configurações de energia, na guia Energia, há uma opção na parte inferior para definir o que fazer caso a bateria fique muito baixa.

No entanto, quando clico no menu suspenso para definir essa opção, ela oferece apenas uma opção, que é "não fazer nada":

opção de poder não fazer nada

Atualmente, meu laptop fica com 0 de energia da bateria ou próximo a ele e, em seguida, é desligado sem avisos, sem possibilidade de fechar programas e desligar normalmente.

Gostaria de receber um aviso quando a bateria estiver em 10% e, espero, algum tempo para salvar e desligar manualmente os programas antes de desligar o computador. Como faço para conseguir isso?


Edit: Aqui está o conteúdo do meu /etc/UPower/UPower.confarquivo:

# 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

Check é esse você ar procurando askubuntu.com/questions/92794/...
Aravind

Respostas:


7

Etapa 1: verificar gsettings

Há duas opções que você pode verificar no terminal:

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

Depois, para alterá-los, use:

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

Observe que no meu sistema eles estão bem, então eu os mudei de volta para o que eles eram em primeiro lugar, por exemplo.


Etapa 2: verificar upower

O gerenciamento de energia do Gnome é utilizado upowerpara fazer o trabalho pesado. Para garantir que esteja em execução e coletando estatísticas da bateria como deveria, 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

Primeiro, execute este comando quando o laptop estiver conectado. Em seguida, desconecte o laptop e execute-o após algum tempo e verifique se o tempo restante da bateria foi reduzido adequadamente.


Última etapa - hibernação de baixo nível

Este é o último passo que seria dado depois de esgotar todos os outros passos. Esta etapa não requer Ubuntu ou Unity ou Gnome ou gsettingsou upower. Ele só exige systemd, udeve cronque são construídos em quase todos Linux Distros com ou sem GUI (desktop).

Do ArchLinux :

Hibernar com pouca bateria

Se sua bateria enviar eventos para udevsempre que (des) carregar em 1%, você poderá usar esta udevregra para hibernar automaticamente o sistema quando o nível da bateria for crítico e impedir que todo o trabalho não salvo seja perdido. Nota: Nem todas as baterias relatam eventos de descarga. Teste executando udevadm monitor --propertycom a bateria e veja se há eventos relatados. Você deve esperar pelo menos 1% de queda. Se nenhum evento for relatado e /sys/class/power_supply/BAT0/alarmfor diferente de zero, a bateria provavelmente disparará um evento quando BAT0/energy_nowcair abaixo do valor do alarme, e a udevregra funcionará enquanto a porcentagem matemática funcionar. Alguns laptops têm uma opção para isso desativado no BIOS por padrão.

$ 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 regra será repetida sempre que a condição for definida. Assim, ao sair da hibernação quando a bateria é crítica, o computador hibernará diretamente. Alguns laptops não inicializam além de um determinado nível de bateria; portanto, a regra pode ser ajustada de acordo.

As baterias podem saltar para um valor mais baixo, em vez de descarregar continuamente, portanto, um udevpadrão de cadeia de correspondência para todas as capacidades 0por meio 5é usado.

Outras regras podem ser adicionadas para executar ações diferentes, dependendo do status e / ou capacidade da fonte de alimentação.

Se o seu sistema não tiver ou não houver eventos ACPI, use croncom o seguinte 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
}

Testando eventos

Uma maneira de testar udevregras é fazê-las criar um arquivo quando são executadas. Por exemplo:

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

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

Isso cria um arquivo /home/example/dischargingquando o carregador do laptop é desconectado. Você pode testar se a regra funcionou desconectando o laptop e procurando esse arquivo. Para udevtestes de regras mais avançados , consulte Udev # Testing rules before loading .

Sumário

Há mais etapas a serem postadas entre a Etapa 2 e a "Última Etapa", mas elas serão publicadas à medida que o OP revelar mais detalhes após o teste. Enquanto isso, o "Último passo" deve reduzir mais respostas intermediárias, como simplesmente informar a porcentagem restante.


Obrigado por esta resposta. Infelizmente, parece que meus gsettingsparâmetros já foram definidos como suspende 10, o que indicaria que meu sistema não está respeitando essas opções.
Pergunta

O @Questioner gsettingsfoi o primeiro passo (fácil) a ser verificado. Adicionei upowero próximo passo a ser dado.
WinEunuuchs2Unix

Obrigado pela atualização. Vou testar o laptop como você sugere. Enquanto isso, adicionei o conteúdo do meu /etc/UPower/UPower.confarquivo à minha pergunta.
Interrogante

@ Questionador Corri clipboard-diffentre o seu UPower.confe a versão instalada no meu sistema. Eles são idênticos.
WinEunuuchs2Unix 21/03

Perguntas @Questioner Casal: 1) O gsettings get org.gnome.settings-daemon.plugins.power activeretorno true? 2) Você tem uma partição swap> quantidade de RAM?
WinEunuuchs2Unix 21/03

3

Heres um roteiro amigável que eu montei!

Eu criei uma solução improvisada que verifica se o seu laptop está com energia CA ou Bateria (DC) ...

Portanto, se estiver ligado à energia CA, ele sairá e, caso contrário, continuará verificando a energia restante da bateria a cada 15 segundos até atingir a variável definida lowou, em vez disso, por cento ...

Ah, e se você quiser continuar trabalhando no mesmo terminal em que executou esse script, basta executar o script da seguinte forma:

bash power-notify.sh &

Sem mais delongas, aqui está o 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

Esse script também pode ser encontrado no GitHub, aqui ...


Um sistema em funcionamento deve fornecer avisos já em determinadas porcentagens e, em seguida, dormir híbrido a 2%. Eu acho que é isso que o OP está procurando. Seu script pode ser aprimorado chamando o hibernate em 2%. Também uma bolha de aviso a cada 15 segundos é extrema IMO. Uma bolha de mensagem t 9%, 8%, 7% ... 3% seria mais prático, eu acho. Além disso, um som de alerta do sistema ajudaria as pessoas que não estavam vendo o laptop na época. Este script possui alguns dos componentes que eu recomendei: askubuntu.com/questions/837078/…
WinEunuuchs2Unix

@ WinEunuuchs2Unix apenas um script simples
NerdOfCode

Eu acho que tanto o seu script quanto o meu link que eu liguei no último comentário podem ser considerados simples por profissionais. Não sei ao certo qual script você está chamando de "simples"?
WinEunuuchs2Unix 22/03

Meu roteiro definitivamente.
NerdOfCode 22/0318

Não, é um bom roteiro e faz o que você quer que ele faça. Todos os ótimos scripts começam como bons scripts e você pode aprimorá-lo em dias, semanas ou décadas. O Linux existe há muito tempo e permanecerá por muito mais tempo.
WinEunuuchs2Unix 22/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.