電源管理には、17.10の非常に低いバッテリーに対して「何もしない」というオプションしかありません


10

私はAsusラップトップでUbuntu 17.10とGnomeを使用しています。

電源設定インターフェイスの[電源]タブの下に、バッテリーが非常に少なくなった場合に何をするかを設定するオプションがあります。

ただし、ドロップダウンをクリックしてそのオプションを設定すると、「何もしない」という1つのオプションしか表示されません。

電源オプションを何もしない

現在、私のラップトップはバッテリー残量がゼロまたはそれに近い状態で動作し、警告なしでシャットダウンし、プログラムを閉じて正常にシャットダウンする可能性はありません。

バッテリーが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

ターミナルで確認できる2つのオプションがあります。

$ 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、gsettingsor は必要ありませんupower。それだけ必要でsystemdudevそしてcronそれはとか、GUI(デスクトップ)せずに、ほぼすべてのLinuxのディストリビューションに組み込まれています。

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ルールをテストする1つの方法は、実行時にファイルを作成させることです。例えば:

$ 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と「最後のステップ」の間に投稿するステップが他にもありますが、OPがテスト後に詳細を明らかにするため、これらのステップが投稿されます。それまでの間、「最後のステップ」では、単に残りの割合を報告するなど、より多くの中間回答を減らす必要があります。


この回答をありがとうございます。残念ながら、私のgsettingsパラメータはすでにsuspendおよび10に設定されているようです。これは、私のシステムがこれらのオプションを考慮していないことを示しています。
質問者

@Questioner gsettingsは、確認する最初の(簡単な)ステップでした。upower次のステップを追加しました。
WinEunuuchs2Unix 2018年

アップデートありがとうございます。あなたが提案するように私はラップトップをテストします。それまでの間、/etc/UPower/UPower.confファイルの内容を質問に追加しました。
質問者

@Questioner clipboard-diffあなたUPower.confと私のシステムにインストールされているバージョンの間を走りました。それらは同一です。
WinEunuuchs2Unix 2018年

@Questionerカップルの質問:1)gsettings get org.gnome.settings-daemon.plugins.power active戻りtrueますか?2)スワップパーティション> RAM容量がありますか?
WinEunuuchs2Unix 2018年

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%でhibernateを呼び出すことにより、スクリプトを改善できます。また、15秒ごとの警告バブルは極端なIMOです。メッセージバブルt 9%、8%、7%... 3%の方が実用的だと思います。また、システムアラートサウンドは、その時点でラップトップを見ない人を支援します。このスクリプトには、私が推奨するコンポーネントがいくつか含まれています。askubuntu.com
837078

@ WinEunuuchs2Unixは単純なスクリプト
NerdOfCode

私はあなたのスクリプトと、最後のコメントでリンクした私のスクリプトの両方が、専門家によって単純であると考えることができると思います。どのスクリプトを「シンプル」と呼んでいるかわかりませんか?
WinEunuuchs2Unix 2018年

私のスクリプトは間違いなく。
NerdOfCode 2018年

いいえ、それは良いスクリプトであり、あなたがやりたいことをします。すべての優れたスクリプトは優れたスクリプトとして始まり、数日、数週間、または数十年にわたって改善することができます。Linuxは長い間存在しており、かなり長く存在します。
WinEunuuchs2Unix 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.