Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Настройка питания. Ноутбук.  (Прочитано 346 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SVrus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Настройка питания. Ноутбук.
« : 24 Октября 2024, 23:23:30 »
Добрый день.
Имею очень приятный ноутбук, который отлично работает на 24.04 GNOME. При питании от батареи всё отлично, и штатная настройка режимов переключает потребление идеально. Но при питании от сети переключение режимов не влияет ни на что. Процессор и прочее работают на максимальном TDP, и получается, что встроенного 28 Вт.Ч. аккумулятора ноутбука хватает на 2-7 часов, а при подключении внешнего 72-ваттного повербанка хватает всего на 3.5-6 часов, при заряженном внутреннем. А если подключить разряженный ноут, то на 2-4. Ноут остается заряженным но хотелось бы нормального потребления. И не такого нагрева. При зарядке выключенного хватает на 2 полные зарядки, но это неудобно и мало полезно. Ждать 2 часа.
__Вопрос__
Как заставить штатный менеджер питания игнорировать факт постановки на зарядку? И не поднимать режим до максимального?



Оффлайн Morisson

  • Заслуженный пользователь
  • Участник
  • *
  • Сообщений: 128
    • Просмотр профиля
Re: Настройка питания. Ноутбук.
« Ответ #1 : 25 Октября 2024, 08:52:29 »
У меня удалено управление потребления (gnome-power-profile или как там его) и есть скрипт, который регулирует энергопотребление в зависимости от зарядки (правило udev). Плюс на хоткеи настроены на переключение режимов.

Скрипт powersave в /usr/bin/:
#!/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 <<< 0
    tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor <<< performance
    tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference <<< performance
#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
#brightness
    tee /sys/class/backlight/amdgpu_bl1/brightness <<< 237
    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
    amdctl -p0 -v56 -m
    amdctl -p1 -v100 -m
    amdctl -p2 -v108 -m

#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/cpu*/cpufreq/scaling_governor <<< powersave
    tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference <<< power
#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/module/snd_hda_intel/parameters/power_save <<< 1
#brightness
    tee /sys/class/backlight/amdgpu_bl1/brightness <<< 85
    tee /sys/class/drm/card1-eDP-1/amdgpu/panel_power_savings <<< 3
#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
    amdctl -p0 -v88 -m
    amdctl -p1 -v112 -m
    amdctl -p2 -v124 -m

#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/ACAD/online
    then
        on_battery
    else
        on_ac
    fi
}

case "$1" in
    true)
        on_battery
        ;;
    false)
        on_ac
        ;;
    *)
        guess
        ;;
esac
exit 0
В скрипте используется amdctl для снижения напряжений процессора. Раньше использовал ryzenadj, но от так себе работает.

Правило 99-powersave.rules в /etc/udev/rules.d/
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/bin/powersave true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/bin/powersave false"

Запуск скрипта вручную:
sudo powersave trueили
sudo powersave false
Также, для применения скрипта после пробуждения для адекватной работы в /usr/lib/systemd/system-sleep/ есть еще скрипт 00powersave.sh
#!/bin/sh
case $1/$2 in
    pre/*)
      /usr/bin/powersave false
     ;;
    post/*)
      /usr/bin/powersave
     ;;
esac

Пользователь добавил сообщение 25 Октября 2024, 08:57:18:
Аккуратней с напряжениями и для интела тоже нужно менять.
Напряжение для интелов- intel-undervolt.
https://github.com/georgewhewell/undervolt

Ссылка на мои наработки для интелов
https://gitlab.com/Jeriho1983/My_configs/-/tree/master/Dell_Inspiron_7348/usr/bin?ref_type=heads
« Последнее редактирование: 25 Октября 2024, 08:57:18 от Morisson »

 

Страница сгенерирована за 0.077 секунд. Запросов: 25.