LINUX.ORG.RU

История изменений

Исправление Jeronimo, (текущая версия) :

#!/bin/sh

on_ac() {
    sleep 3

#pcie_aspm
    tee /sys/module/pcie_aspm/parameters/policy <<< performance

#cpu
#    tee /sys/devices/system/cpu/smt/control <<< off
#    tee /sys/devices/system/cpu/cpufreq/boost <<< 1
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<< performance
    tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference <<< performance
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq <<< 600000
#    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq <<< 4400000
#disk_powersave
#    tee /sys/module/ahci/parameters/mobile_lpm_policy <<< -1

#Fn_lock_HUAWEI
#    tee /sys/devices/platform/huawei-wmi/fn_lock_state <<< 0

#i2c_powersave
#    tee /sys/bus/i2c/devices/*/device/power/control <<< auto

#usb_powersave
    tee /sys/bus/usb/devices/*/power/control <<< auto

#pci_powersave
    tee /sys/bus/pci/devices/*/power/control <<< auto

#wakeups
#    tee /sys/class/net/*/device/power/wakeup <<< disabled
#    tee /sys/bus/*/devices/*/power/wakeup <<< disabled
    tee /sys/module/snd_hda_intel/parameters/power_save <<< 0
#    tee /sys/class/rtc/rtc0/device/power/wakeup <<< enabled
#brightness
#    tee /sys/class/drm/card1-eDP-1/intel_backlight/brightness <<< 18500
#    tee /sys/class/drm/card1-eDP-1/amdgpu/panel_power_savings <<< 0
#RYZEN_power
#    ryzenadj -a 38000 -b 38000 -c 35000 -g 58000 -j 15000 -k 96000 -l 20000 --apu-skin-temp=95 -f 95 --max-performance
#    ryzenadj --max-performance
#    amdctl -p0 -v56 -m
#    amdctl -p1 -v100 -m
#    amdctl -p2 -v108 -m
    x86_energy_perf_policy -epb 0
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw <<< 40000000
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_1_power_limit_uw <<< 51000000
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_2_power_limit_uw <<< 100000000
    tee /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw <<< 40000000
    tee /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw <<< 51000000
    tee /sys/class/powercap/intel-rapl:0/constraint_2_power_limit_uw <<< 100000000
    tee /sys/class/drm/card1/gt_max_freq_mhz <<< 1300
#Video
#    tee /sys/class/drm/card*/device/power_dpm_force_performance_level <<< auto
}

on_battery() {
    sleep 3

#pcie_aspm
    tee /sys/module/pcie_aspm/parameters/policy <<< powersupersave

#cpu
#   tee /sys/devices/system/cpu/smt/control <<< off
#    tee /sys/devices/system/cpu/cpufreq/boost <<< 0
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<< powersave
    tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference <<< power
#    cpupower frequency-set -d 400MHz
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq <<< 400000
#     tee /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq <<< 1900000
#disk_powersave
#    tee /sys/module/ahci/parameters/mobile_lpm_policy <<< 3

#Fn_lock_HUAWEI
#    tee /sys/devices/platform/huawei-wmi/fn_lock_state <<< 0

#i2c_powersave
#    tee /sys/bus/i2c/devices/*/device/power/control <<< auto

#usb_powersave
    tee /sys/bus/usb/devices/*/power/control <<< auto

#pci_powersave
    tee /sys/bus/pci/devices/*/power/control <<< auto

#wakeups
#    tee /sys/class/net/*/device/power/wakeup <<< disabled
#    tee /sys/bus/*/devices/*/power/wakeup <<< disabled
#    tee /sys/class/rtc/rtc0/device/power/wakeup <<< enabled
    tee /sys/module/snd_hda_intel/parameters/power_save <<< 1
#brightness
#    tee /sys/class/drm/card1-eDP-1/intel_backlight/brightness <<< 1600
#    tee /sys/class/drm/card1-eDP-1/amdgpu/panel_power_savings <<< 4
#RYZEN_power
#    ryzenadj -a 8000 -b 8000 -c 4000 -g 12000 -j 3000 -k 15000 -l 5000 --apu-skin-temp=36 -f 70 --power-saving
#    ryzenadj --power-saving
#    amdctl -p0 -v88 -m
#    amdctl -p1 -v112 -m
#    amdctl -p2 -v124 -m
    x86_energy_perf_policy -epb 15
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw <<< 10000000
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_1_power_limit_uw <<< 12000000
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_2_power_limit_uw <<< 15000000
    tee /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw <<< 10000000
    tee /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw <<< 12000000
    tee /sys/class/powercap/intel-rapl:0/constraint_2_power_limit_uw <<< 15000000
    tee /sys/class/drm/card1/gt_max_freq_mhz <<< 950
#Video
#     tee /sys/class/drm/card*/device/power_dpm_force_performance_level <<< low
}

guess() {
#    if cat /sys/class/power_supply/ACAD/online | grep 0 > /dev/null 2>&1
    if grep -q 0 /sys/class/power_supply/AC/online
    then
        on_battery
    else
        on_ac
    fi
}

case "$1" in
    true)
        on_battery
        ;;
    false)
        on_ac
        ;;
    *)
        guess
        ;;
esac
exit 0

Исходная версия Jeronimo, :

#!/bin/sh
# Скрипт управления энергопотреблением (powersave)

on_ac() {
    sleep 3
    # CPU Performance
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<< performance
    tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference <<< performance
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq <<< 600000
    # Intel RAPL Limits: 40W / 51W / 100W
    x86_energy_perf_policy -epb 0
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw <<< 40000000
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_1_power_limit_uw <<< 51000000
    tee /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw <<< 40000000
    tee /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw <<< 51000000
    tee /sys/class/drm/card1/gt_max_freq_mhz <<< 1300
    # USB/PCI Auto
    tee /sys/bus/usb/devices/*/power/control <<< auto
    tee /sys/bus/pci/devices/*/power/control <<< auto
}

on_battery() {
    sleep 3
    # CPU Powersave
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<< powersave
    tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference <<< power
    tee /sys/devices/system/cpu/cpufreq/policy*/scaling_min_freq <<< 400000
    # Intel RAPL Limits: 10W / 12W / 15W
    x86_energy_perf_policy -epb 15
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_0_power_limit_uw <<< 10000000
    tee /sys/class/powercap/intel-rapl-mmio/intel-rapl-mmio:0/constraint_1_power_limit_uw <<< 12000000
    tee /sys/class/powercap/intel-rapl:0/constraint_0_power_limit_uw <<< 10000000
    tee /sys/class/powercap/intel-rapl:0/constraint_1_power_limit_uw <<< 12000000
    tee /sys/class/drm/card1/gt_max_freq_mhz <<< 950
    # USB/PCI Auto
    tee /sys/bus/usb/devices/*/power/control <<< auto
    tee /sys/bus/pci/devices/*/power/control <<< auto
}

guess() {
    if grep -q 0 /sys/class/power_supply/AC/online; then
        on_battery
    else
        on_ac
    fi
}

case "$1" in
    true)  on_battery ;;
    false) on_ac ;;
    *)     guess ;;
esac
exit 0