Etapa 1: verificar gsettings
Existem 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'
Em seguida, 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
Note no meu sistema que eles estão muito bem, então eu os alterei de volta para o que eles estavam em primeiro lugar por exemplo.
Etapa 2: verificar upower
O gerenciamento de energia do Gnome utiliza upower
para fazer o trabalho pesado. Para garantir que ele esteja em execução e coletando as 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 comando após algum tempo e certifique-se de que o tempo restante da bateria tenha sido reduzido adequadamente.
Última etapa - hibernação de baixo nível
Este é o último passo que seria dado depois de esgotar todas as outras etapas. Esta etapa não exige o Ubuntu, nem o Unity nem o Gnome, nem gsettings
ou upower
. Ele requer apenas systemd
, udev
e cron
, que são construídos em quase todas as distribuições Linux com ou sem GUI (Desktop).
Em ArchLinux :
Hibernar no nível de bateria fraca
Se sua bateria enviar eventos para udev
sempre que ela (dis) for cobrada em 1%, você pode usar essa regra udev
para hibernar automaticamente o sistema quando o nível da bateria for crítico e impedir que todos os trabalhos não salvos sejam perdidos .
Nota: Nem todas as baterias relatam eventos de descarga. Teste executando udevadm monitor --property
enquanto estiver na bateria e veja se algum evento foi relatado. Você deve esperar pelo menos 1% de queda. Se nenhum evento for relatado e /sys/class/power_supply/BAT0/alarm
for diferente de zero, a bateria provavelmente acionará um evento quando BAT0/energy_now
cair abaixo do valor do alarme, e a regra udev
funcionará enquanto a matemática de porcentagem 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. Dessa forma, ao sair do modo de hibernação quando a bateria estiver crítica, o computador irá 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, é usado um padrão de correspondência de sequência de caracteres udev
para todas as capacidades 0
a 5
.
Outras regras podem ser adicionadas para executar diferentes ações, dependendo do status e / ou capacidade da fonte de alimentação.
Se o seu sistema não tiver ou estiver faltando eventos da ACPI, use cron
com 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 as regras udev
é fazer com que elas criem 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 em /home/example/discharging
quando o carregador do laptop é desconectado. Você pode testar se a regra funcionou desconectando seu laptop e procurando por este arquivo. Para um teste de regra udev
mais avançado, consulte Udev # Testar regras antes de carregar .
Resumo
Há mais etapas para postar entre a Etapa 2 e a "Última Etapa", mas elas serão postadas como OP, revelando mais detalhes após o teste. Nesse meio tempo, o "Último passo" deve reduzir mais respostas no meio do caminho, como simplesmente reportar a porcentagem restante.