전원 관리에는 17.10의 배터리 부족 상태에 대해 "아무것도하지 않음"옵션 만 있습니다.


10

Asus 랩톱에서 Gbunme과 함께 Ubuntu 17.10을 사용하고 있습니다.

전원 설정 인터페이스의 전원 탭 아래에 배터리가 매우 부족한 경우 수행 할 작업을 설정하는 옵션이 있습니다.

그러나 드롭 다운을 클릭하여 해당 옵션을 설정하면 "아무것도하지 않는"옵션이 하나만 제공됩니다.

전원 옵션이 없다

현재 내 랩탑은 배터리 전원이 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

답변:


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

그놈 전원 관리 기능은 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이는 또는 GUI (데스크탑)없이 거의 모든 리눅스 배포판에 내장되어 있습니다.

에서 아치 리눅스 :

배터리 부족 상태에서 최대 절전 모드

배터리 udev가 1 % 충전 될 때마다 이벤트를 보내는 경우이 udev규칙을 사용 하여 배터리 잔량이 중요한 경우 시스템을 자동으로 최대 절전 모드로 설정하여 저장하지 않은 모든 작업이 손실되는 것을 방지 할 수 있습니다. 참고 : 모든 배터리가 방전 이벤트를보고하는 것은 아닙니다. udevadm monitor --property배터리 로 작동 하면서 테스트하고 이벤트가보고되는지 확인하십시오. 최소 1 %의 하락을 기다려야합니다. 이벤트가보고되지 않고 /sys/class/power_supply/BAT0/alarm0이 아닌 경우 배터리는 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있는 모든 용량의 문자열과 일치하는 패턴 05사용한다.

전원 공급 장치 상태 및 / 또는 용량에 따라 다른 작업을 수행하기 위해 다른 규칙을 추가 할 수 있습니다.

시스템에 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 # Testing 규칙을 참조하십시오 .

요약

2 단계와 "마지막 단계"사이에 게시 할 단계가 더 있지만 OP는 테스트 후 자세한 내용을 표시하므로 게시됩니다. 그 동안 "마지막 단계"는 단순히 남은 비율을보고하는 것과 같이 중간 정도의 답변을 줄여야합니다.


이 답변에 감사드립니다. 불행히도 내 gsettings매개 변수가 이미 suspend및로 설정되어있는 것으로 보이며 10이는 내 시스템이 해당 옵션을 존중하지 않음을 나타냅니다.
Questioner

@Questioner gsettings는 첫 번째 쉬운 단계였습니다. upower다음 단계를 추가 했습니다.
WinEunuuchs2Unix

업데이트 해주셔서 감사합니다. 제안한대로 노트북을 테스트하겠습니다. 그동안 내 /etc/UPower/UPower.conf파일 의 내용을 질문에 추가했습니다.
Questioner

@Questioner 나는 clipboard-diff당신 UPower.conf과 내 시스템에 설치된 버전 사이를 달렸다 . 그것들은 동일합니다.
WinEunuuchs2Unix

@Questioner 커플 질문 : 1)합니까의 gsettings get org.gnome.settings-daemon.plugins.power active복귀 true? 2) 스왑 파티션> RAM 용량이 있습니까?
WinEunuuchs2Unix

3

여기에 친숙한 스크립트가 있습니다!

랩톱이 AC 또는 배터리 (DC) 전원인지 확인하는 임시 변통 솔루션을 만들었습니다 ...

따라서 AC 전원이 켜져 있으면 종료되고 그렇지 않으면 정의 된 변수 low또는 백분율에 도달 할 때까지 15 초마다 배터리 잔량을 계속 확인합니다 ...

아 그리고이 스크립트를 실행 한 것과 동일한 터미널에서 계속 작업하려면 다음과 같이 스크립트를 실행하십시오.

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 %에서 하이브리드 절전 모드로 전환해야합니다. 나는 그것이 OP가 찾고있는 것이라고 생각합니다. 최대 절전 모드를 2 %로 호출하여 스크립트를 개선 할 수 있습니다. 또한 15 초마다 경고 거품은 극단적 인 IMO입니다. 메시지 버블 t 9 %, 8 %, 7 % ... 3 %가 더 실용적이라고 생각합니다. 또한 시스템 경고음은 사람들이 당시 랩톱을 보지 못하도록 도와줍니다. 이 스크립트는 내가 추천 한 구성 요소 중 일부를 가지고 있습니다 : askubuntu.com/questions/837078/…
WinEunuuchs2Unix

@ WinEunuuchs2Unix 간단한 스크립트
NerdOfCode

나는 당신의 스크립트와 마지막 주석에서 링크 한 내 스크립트가 전문가들에 의해 단순하다고 간주 될 수 있다고 생각합니다. 그래도 "간단한"이라고 부르는 스크립트가 확실하지 않습니까?
WinEunuuchs2Unix

내 스크립트는 확실하다.
NerdOfCode

아니요 좋은 스크립트이며 원하는 작업을 수행합니다. 모든 훌륭한 스크립트는 좋은 스크립트로 시작하여 며칠, 몇 주 또는 수십 년에 걸쳐 향상시킬 수 있습니다. 리눅스는 오랫동안 존재 해 왔으며 훨씬 더 오래있을 것입니다.
WinEunuuchs2Unix 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.