Quản lý năng lượng chỉ có tùy chọn của Do.


10

Tôi đang sử dụng Ubuntu 17.10 với Gnome trên máy tính xách tay Asus.

Trong giao diện Cài đặt nguồn, bên dưới tab Nguồn, có một tùy chọn ở phía dưới để đặt những việc cần làm trong trường hợp pin yếu.

Tuy nhiên, khi tôi nhấp vào trình đơn thả xuống để đặt tùy chọn đó, nó chỉ cung cấp một tùy chọn, đó là "không làm gì":

không có gì tùy chọn sức mạnh

Hiện tại, máy tính xách tay của tôi sẽ hết pin, hoặc gần hết pin, sau đó tắt mà không có cảnh báo, không có khả năng đóng chương trình và tắt một cách duyên dáng.

Tôi muốn có một cảnh báo khi pin ở mức 10% và hy vọng một lúc nào đó sẽ tự lưu và tắt chương trình trước khi tắt máy tính. Làm thế nào để tôi đạt được điều này?


Chỉnh sửa: Đây là nội dung của /etc/UPower/UPower.conftập tin của tôi :

# 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

Kiểm tra xem đây có phải là bạn đang tìm kiếm Askubfox.com/questions/92794/ không
Aravind

Câu trả lời:


7

Bước 1: Kiểm tra gsettings

Có hai tùy chọn bạn có thể kiểm tra trong thiết bị đầu cuối:

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

Sau đó, để thay đổi chúng sử dụng:

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

Lưu ý trên hệ thống của tôi, chúng vẫn ổn, vì vậy tôi đã thay đổi chúng trở lại vị trí của chúng ngay từ đầu.


Bước 2: Kiểm tra upower

Quản lý năng lượng Gnome sử dụng upowerđể làm việc nặng. Để đảm bảo nó đang chạy và thu thập số liệu thống kê pin cần thiết, hãy sử dụng:

$ 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

Đầu tiên chạy lệnh này khi máy tính xách tay được cắm. Sau đó rút phích cắm máy tính xách tay và chạy lệnh sau một thời gian và đảm bảo thời gian còn lại của pin đã giảm một cách thích hợp.


Bước cuối cùng - ngủ đông ở mức độ thấp

Đây là bước cuối cùng sẽ được thực hiện sau khi cạn kiệt tất cả các bước khác. Bước này không yêu cầu Ubuntu hoặc Unity hoặc Gnome gsettingshoặc upower. Nó chỉ đòi hỏi systemd, udevcronđược xây dựng vào hầu hết các distro Linux có hoặc không có giao diện đồ họa (Desktop).

Từ ArchLinux :

Ngủ đông ở mức pin thấp

Nếu pin của bạn gửi các sự kiện đến udevbất cứ khi nào nó (1) sạc 1%, bạn có thể sử dụng udevquy tắc này để tự động ngủ đông hệ thống khi mức pin rất quan trọng và do đó ngăn chặn tất cả các công việc chưa được lưu bị mất. Lưu ý: Không phải tất cả các pin báo cáo sự kiện xả. Kiểm tra bằng cách chạy udevadm monitor --propertytrong khi sử dụng pin và xem có sự kiện nào được báo cáo không. Bạn nên chờ ít nhất 1% thả. Nếu không có sự kiện nào được báo cáo và /sys/class/power_supply/BAT0/alarmkhác không thì pin có thể sẽ kích hoạt một sự kiện khi BAT0/energy_nowgiảm xuống dưới giá trị cảnh báo và udevquy tắc sẽ hoạt động miễn là phần trăm toán học hoạt động. Một số máy tính xách tay có một tùy chọn cho điều này bị vô hiệu hóa trong BIOS theo mặc định.

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

Quy tắc này sẽ được lặp lại bất cứ khi nào điều kiện được đặt. Như vậy, khi nối lại từ chế độ ngủ đông khi pin yếu, máy tính sẽ ngủ đông trực tiếp. Một số máy tính xách tay không khởi động vượt quá một mức pin nhất định, vì vậy quy tắc có thể được điều chỉnh cho phù hợp.

Pin có thể nhảy đến một giá trị thấp hơn thay vì xả liên tục, do đó một udevmô hình chuỗi phù hợp cho tất cả các khả năng 0thông qua 5được sử dụng.

Các quy tắc khác có thể được thêm vào để thực hiện các hành động khác nhau tùy thuộc vào trạng thái cung cấp điện và / hoặc công suất.

Nếu hệ thống của bạn không có hoặc thiếu các sự kiện ACPI, hãy sử dụng cronvới tập lệnh sau:

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

Kiểm tra sự kiện

Một cách để kiểm tra udevcác quy tắc là yêu cầu họ tạo một tệp khi chúng được chạy. Ví dụ:

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

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

Điều này tạo ra một tập tin /home/example/dischargingkhi rút bộ sạc máy tính xách tay. Bạn có thể kiểm tra xem quy tắc có hoạt động hay không bằng cách rút phích cắm máy tính xách tay của bạn và tìm tệp này. Để udevkiểm tra quy tắc nâng cao hơn , hãy xem Udev # Kiểm tra quy tắc trước khi tải .

Tóm lược

Có nhiều bước hơn để đăng giữa Bước # 2 và "Bước cuối cùng" nhưng những bước này sẽ được đăng khi OP tiết lộ thêm chi tiết sau khi thử nghiệm. Trong thời gian đó, "Bước cuối cùng" sẽ giảm nhiều câu trả lời nửa chừng như chỉ đơn giản là báo cáo tỷ lệ phần trăm còn lại.


Cảm ơn bạn đã phản hồi này. Thật không may, có vẻ như gsettingscác tham số của tôi đã được đặt thành suspend10điều đó cho thấy hệ thống của tôi không tôn trọng các tùy chọn đó.
hỏi

@Questioner gsettingslà bước đầu tiên (dễ dàng) để kiểm tra. Tôi đã thêm upowerbước tiếp theo để thực hiện.
WinEunuuchs2Unix 20/03/18

Cảm ơn bạn đã cập nhật. Tôi sẽ kiểm tra máy tính xách tay như bạn đề nghị. Trong khi đó, tôi đã thêm nội dung của /etc/UPower/UPower.conftập tin vào câu hỏi của mình.
hỏi

@Questioner Tôi chạy clipboard-diffgiữa bạn UPower.confvà phiên bản được cài đặt trên hệ thống của tôi. Chúng giống hệt nhau.
WinEunuuchs2Unix

@Questioner Câu hỏi cặp đôi: 1) Có gsettings get org.gnome.settings-daemon.plugins.power activequay lại truekhông? 2) Bạn có phân vùng trao đổi> dung lượng RAM không?
WinEunuuchs2Unix

3

Đây là một kịch bản thân thiện với nhau!

Tôi đã tạo một giải pháp tạm thời để kiểm tra xem máy tính xách tay của bạn đang sử dụng nguồn điện AC hay Pin (DC) ...

Do đó, nếu bật nguồn AC, nó sẽ thoát và nếu không, nó sẽ tiếp tục kiểm tra lượng pin còn lại sau mỗi 15 giây cho đến khi chạm vào biến được xác định lowhoặc thay vì phần trăm ...

Ồ và nếu bạn muốn tiếp tục làm việc trong cùng một thiết bị đầu cuối khi bạn chạy tập lệnh này thì chỉ cần chạy tập lệnh như vậy:

bash power-notify.sh &

Không có thêm rắc rối, đây là kịch bản:

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

Kịch bản này cũng có thể được tìm thấy trên GitHub, tại đây ...


Một hệ thống làm việc được cho là đưa ra các cảnh báo đã có tỷ lệ phần trăm nhất định và sau đó lai ngủ ở mức 2%. Tôi nghĩ đó là những gì OP đang tìm kiếm. Kịch bản của bạn có thể được cải thiện bằng cách gọi ngủ đông ở mức 2%. Ngoài ra một bong bóng cảnh báo cứ sau 15 giây là IMO cực độ. Một bong bóng tin nhắn t 9%, 8%, 7% ... 3% sẽ thực tế hơn tôi nghĩ. Ngoài ra một âm thanh cảnh báo hệ thống sẽ giúp mọi người không nhìn vào máy tính xách tay của họ tại thời điểm đó. Kịch bản này có một số thành phần tôi đề nghị: askubuntu.com/questions/837078/...
WinEunuuchs2Unix

@ WinEunuuchs2Unix chỉ là một tập lệnh đơn giản
NerdOfCode 21/03/18

Tôi đoán cả kịch bản của bạn và kịch bản của tôi, tôi đã liên kết trong bình luận cuối cùng có thể được các chuyên gia coi là đơn giản. Tôi không chắc chắn kịch bản mà bạn đang gọi là "đơn giản" mặc dù?
WinEunuuchs2Unix

Kịch bản của tôi chắc chắn.
NerdOfCode

Không, đó là một kịch bản hay và làm những gì bạn muốn nó làm. Tất cả các kịch bản tuyệt vời bắt đầu như các kịch bản tốt và bạn có thể cải thiện nó qua nhiều ngày, vài tuần hoặc nhiều thập kỷ. Linux đã xuất hiện từ lâu và sẽ tồn tại lâu hơn rất nhiều.
WinEunuuchs2Unix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.