Как сделать изменения Powertop постоянными?

54

Я на Compaq 615, и это вентилятор громкий. Не так много вы можете сделать по этому поводу, но я стараюсь, чтобы CPU / GPU был как можно более крутым. Вот что говорит Powertop:

Если я изменил их все на «хорошо», изменения не сохранились при перезагрузке.

Я добавил строку в файл grub как здесь

Как сделать Powertop предложенным «Tunables» постоянным?

    
задан H3R3T1K 13.03.2012 в 21:12
источник

10 ответов

40

Если вы все равно измените их на хорошие, вы можете просто использовать команду

sudo powertop --auto-tune

Автоматическая настройка звонка автоматически во время загрузки

1.

В системах, использующих systemd в качестве менеджера запуска (например, Ubuntu), установите его как службу:

cat << EOF | sudo tee /etc/systemd/system/powertop.service
[Unit]
Description=PowerTOP auto tune

[Service]
Type=idle
Environment="TERM=dumb"
ExecStart=/usr/sbin/powertop --auto-tune

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable powertop.service

2.

В системах, не использующих systemd , или если вы хотите использовать старый стиль с файлом /etc/rc.local , добавьте эту строку в конец в /etc/rc.local :

powertop --auto-tune
exit 0

Примечание: , если скрипт уже содержит exit 0 , обязательно добавьте все команды до этой строки, выйдите из сценария

Если вы хотите, чтобы все было хорошо, а одна строка, вы могли сначала автонастроить, а затем отключить один параметр с дополнительной строкой, например, если вы хотите снова включить сенсорный экран (на usb 2-7 ), добавьте это перед exit 0 :

powertop --auto-tune
echo 'on' > '/sys/bus/usb/devices/2-7/power/control'
exit 0

Примечание. . В Linux с systemd убедитесь, что при запуске службы com / com> выполняется запуск /etc/rc.local.

systemctl status rc-local.service
    
ответ дан rubo77 01.07.2014 в 16:36
24

Вот как вы можете сделать изменения постоянными:

sudo powertop --html

Это приведет к созданию файла powertop-xxxxxxxxxx-xxxxxx.html .

Теперь либо откройте это в браузере, и скопируйте команды echo из «... нуждающегося в настройке» в /etc/rc.local .

Или извлеките команды, используя что-то вроде этого:

echo "grep 'echo ' powertop-20120805-125538.html | sed 's/.*\(echo.*\);.*//g'"

Если rc.local содержит exit 0 , вам нужно обязательно поместить команды перед этой строкой.

    
ответ дан pumpupthevolume 05.08.2012 в 13:14
12

Вам необходимо загрузить и скомпилировать его, потому что у вас нет последней версии

Загрузить powertop Ссылка

powertop-2.3.tar.gz & lt; & Lt; & Lt; Нажмите & amp; Скачайте Me

Перед компиляцией вам нужно установить зависимости

Установка зависимостей (просто скопируйте вставку следующих команд)

sudo apt-get install libtool autoconf libnl-dev ncurses-dev pciutils-dev build-essential -y

Установка Powertop

Чтобы создать и установить PowerTOP, выполните следующие команды:

cd Downloads/powertop*  # assuming that you have downloaded in Downloads folder in you home directory   
configure 
make        # use -j option if you want to see details below
make install

Вы также можете использовать -j2 для того, сколько ядер вы хотите использовать в ./ make . Замените -j2 на любое количество Процессорные ядра, которые вы хотите использовать для процесса компиляции. например, я использовал ./ make -j8

Установлена ​​Powertop, вы можете отключить питание переменного тока и запустить

sudo powertop

Однако большинство настроек не сохраняются и они теряются после перезагрузки. Тем не менее, вы можете сделать их постоянными, используя команды, представленные в отчете PowerTOP html. Чтобы создать отчет HTML, выполните следующую команду: webupd8.org

sudo powertop --html=powertop.html

Реализация предложения Powertop на аккумуляторе и обратно для максимальной производительности при мощности переменного тока

Для этого вам нужно создать сценарий, который запускает предложение powertop на батарею и максимизирует производительность при работе от переменного тока

  

Поместите его в /etc/pm/power.d/ и предоставите права выполнения

sudo gedit /etc/pm/power.d/power

Скопируйте в файл питания следующие файлы

 #!/bin/sh

 # Shell script to reduce energy consumption when running battery. Place
 # it in /etc/pm/power.d/ and give execution rights.

 if on_ac_power; then

 # Start AC powered settings --------------------------------------------#


 # Disable laptop mode
 echo 0 > /proc/sys/vm/laptop_mode

 #NMI watchdog should be turned on
 for foo in /proc/sys/kernel/nmi_watchdog;
 do echo 1 > $foo;
 done

 # Set SATA channel: max performance
 for foo in /sys/class/scsi_host/host*/link_power_management_policy;
 do echo max_performance > $foo;
 done

 # CPU Governor: Performance
 for foo in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
 do echo performance > $foo;
 done 

 # Disable USB autosuspend
 for foo in /sys/bus/usb/devices/*/power/level;
 do echo on > $foo;
 done

 # Disable PCI autosuspend
 for foo in /sys/bus/pci/devices/*/power/control;
 do echo on > $foo;
 done

 # Disabile audio_card power saving
 echo 0 > /sys/module/snd_hda_intel/parameters/power_save_controller
 echo 0 > /sys/module/snd_hda_intel/parameters/power_save

 # End AC powered settings ----------------------------------------------#

 else

 # Start battery powered settings ---------------------------------------#

 # Enable Laptop-Mode disk writing
 echo 5 > /proc/sys/vm/laptop_mode

 #NMI watchdog should be turned on
 for foo in /proc/sys/kernel/nmi_watchdog;
 do echo 0 > $foo;
 done

 # Set SATA channel to power saving
 for foo in /sys/class/scsi_host/host*/link_power_management_policy;
 do echo min_power > $foo;
 done

 # Select Ondemand CPU Governor
 for foo in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
 do echo ondemand > $foo;
 done

 # Activate USB autosuspend
 for foo in /sys/bus/usb/devices/*/power/level;
 do echo auto > $foo;
 done

 # Activate PCI autosuspend
 for foo in /sys/bus/pci/devices/*/power/control;
 do echo auto > $foo;
 done

 # Activate audio card power saving
 # (sounds shorter than 5 seconds will not be played)
 echo 5 > /sys/module/snd_hda_intel/parameters/power_save
 echo 1 > /sys/module/snd_hda_intel/parameters/power_save_controller

 # End battery powered settings -----------------------------------------#

 fi

Теперь вам нужно назначить разрешение на выполнение сценария power

 sudo chmod +x /etc/pm/power.d/power

Теперь, когда вы Unplugged , предложение Powertop возьмет на себя и увеличит срок службы батареи и усилителя; вы подключены к сети переменного тока , у вас будет максимальная производительность.

Полезные ссылки

Ссылка Ссылка

Для опции -j Ссылка

    
ответ дан Qasim 22.03.2013 в 17:27
9

Это не тот ответ, о котором вы просите, но вы можете попробовать работать в laptop-mode . Для этого:

  

откройте терминал и введите:

gksu gedit /etc/default/acpi-support
     

введите пароль, а затем перейдите в нижнюю часть и в раздел, где   говорит о режиме ноутбука, пишет true вместо false, закрывает документ   и сохранить курс

     

Затем введите:

gksu gedit /etc/laptop-mode/laptop-mode.conf
     

этот файл немного длиннее, но вот как я редактировал мой. Я добавил #   перед строкой по умолчанию на той строке, которую я изменил, например:

#
# Should laptop mode tools add the "noatime" option to the mount options when 
# laptop mode is enabled?
#
#CONTROL_NOATIME=0
CONTROL_NOATIME=1
     

по умолчанию было 0, и я повернул его в 1, изменил только строки I   модифицирована. Здесь есть несколько вариантов, которые вы хотите просмотреть и   переключитесь, как вы сочтете нужным. Когда вы близко и сохраните.

     

После этого вы захотите ввести:

gksu gedit
     

теперь в текстовом редакторе нажмите «Открыть» и перейдите в /etc/laptop-mode/conf.d/   папка, есть разные файлы, вы, вероятно, интересуетесь usb   autosuspend, hda audio, iwl intel wireless, intel sata и sched mc   энергосбережение. Открывайте эти файлы один за другим и читайте их, они   написанный на идеальном стандартном английском языке и объясняющий все очень   Что ж. Вы будете знать, что делать, помните, что 0 означает «выключено» и 1   в течение большей части времени.

     

Когда вы закончите и сохраните каждый файл.

     

Теперь перезапустите и полюбуйтесь режимом ноутбука в действии, затем:

sudo powertop
     

и проверьте потребление энергии, если все сделано правильно   powertop не будет предлагать никаких дополнительных предложений, потому что вы   измените все, что нужно настроить (более или менее).

Источник: Ссылка ( Axx83 )     

ответ дан rlemon 13.03.2012 в 21:21
5

Используйте правила udev для постоянной экономии энергии, настраивайте настройки непосредственно у источника, вместо создания сценариев или полагаясь на возможные не установленные пакеты. Таким образом, как только аппаратное обеспечение добавляется udev , ваши настройки применяются.

Правильное правило udev делает настройки неприменимыми, если аппаратное обеспечение отсутствует, что делает конфигурацию более переносимой. И вы узнаете больше о внутренней работе вашего ядра Linux :-). Конфигурация, сделанная таким образом, также применяется, если не работает от аккумулятора.

Пример для настраиваемого Enable SATA link power Managmenet for host0 . Это предложение:

# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy''

Это уже дает вам представление о том, где находится аппаратное обеспечение: in / sys / class / scsi_host. Вы можете проверить это с помощью:

# udevadm info -a -p /sys/class/scsi_host/host?
…
  looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0':
    KERNEL=="host0"
    SUBSYSTEM=="scsi_host"
…
    ATTR{eh_deadline}=="0"
    ATTR{link_power_management_policy}=="max_performance"
    ATTR{host_busy}=="0"

Лучше не касаться системных правил udev в /lib/udev/rules.d/ и создавать свой собственный файл правил udev примерно на уровне 60 в файле /etc/udev/rules.d/. Например, с помощью редактора nano:

$ nano /etc/udev/rules.d/60-power.rules

Некоторые другие примеры пишут такие правила, как:

KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"

Я бы сказал, не делайте этого и не делайте свое правило еще лучше, применяя его только тогда, когда для политики управления питанием для ссылок установлено значение max_performance. Посмотрите на небольшую разницу (найдите знак двойного уравнения):

KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"

Проверьте правило с помощью udevadm test /devices/… :

# udevadm test /devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy
calling: test
version 204
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          204
file size:         5660180 bytes
header size             80 bytes
strings            1265196 bytes
nodes              4394904 bytes
load module index
read rules file: /lib/udev/rules.d/40-crda.rules
read rules file: /lib/udev/rules.d/40-gnupg.rules
read rules file: /lib/udev/rules.d/40-hyperv-hotadd.rules
read rules file: /lib/udev/rules.d/42-usb-hid-pm.rules
read rules file: /lib/udev/rules.d/50-firmware.rules
read rules file: /lib/udev/rules.d/50-udev-default.rules
read rules file: /lib/udev/rules.d/55-dm.rules
read rules file: /lib/udev/rules.d/60-cdrom_id.rules
read rules file: /lib/udev/rules.d/60-keyboard.rules
read rules file: /lib/udev/rules.d/60-persistent-alsa.rules
read rules file: /lib/udev/rules.d/60-persistent-input.rules
read rules file: /lib/udev/rules.d/60-persistent-serial.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
read rules file: /lib/udev/rules.d/60-persistent-storage.rules
read rules file: /lib/udev/rules.d/60-persistent-v4l.rules
read rules file: /etc/udev/rules.d/60-power.rules
read rules file: /lib/udev/rules.d/61-accelerometer.rules
read rules file: /lib/udev/rules.d/64-btrfs.rules
read rules file: /etc/udev/rules.d/70-persistent-net.rules
read rules file: /lib/udev/rules.d/70-power-switch.rules
read rules file: /lib/udev/rules.d/70-uaccess.rules
read rules file: /lib/udev/rules.d/71-biosdevname.rules
read rules file: /lib/udev/rules.d/71-seat.rules
read rules file: /lib/udev/rules.d/73-idrac.rules
read rules file: /lib/udev/rules.d/73-seat-late.rules
read rules file: /lib/udev/rules.d/75-net-description.rules
read rules file: /lib/udev/rules.d/75-persistent-net-generator.rules
read rules file: /lib/udev/rules.d/75-probe_mtd.rules
read rules file: /lib/udev/rules.d/75-tty-description.rules
read rules file: /lib/udev/rules.d/78-graphics-card.rules
read rules file: /lib/udev/rules.d/78-sound-card.rules
read rules file: /lib/udev/rules.d/80-drivers.rules
read rules file: /lib/udev/rules.d/85-hdparm.rules
read rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
read rules file: /lib/udev/rules.d/85-regulatory.rules
read rules file: /lib/udev/rules.d/95-udev-late.rules
rules contain 24576 bytes tokens (2048 * 12 bytes), 11335 bytes strings
1814 strings (22027 bytes), 1179 de-duplicated (11328 bytes), 636 trie nodes used
ATTR '/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy' writing 'min_power' /etc/udev/rules.d/60-power.rules:1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0
SUBSYSTEM=scsi_host
USEC_INITIALIZED=1203444595
unload module index

Я не могу найти способ применить правило, поэтому в этом случае я перезагрузился, чтобы применить вновь созданное правило udev.

    
ответ дан Pro Backup 03.09.2014 в 18:57
2

Я решил это, создав тире скрипта /root/power_save.sh :

#!/bin/dash
find /sys/devices/pci* -path "*power/control" -exec bash -c "echo auto > '{}'" \;

Установите его как исполняемый файл:

sudo chmod u+x /root/power_save.sh

И добавьте его в корневой crontab с помощью sudo crontab -e :

@reboot /root/power_save.sh
    
ответ дан Seppo Erviälä 22.06.2011 в 22:21
2

В этой связи говорится о том же, что касается одной и той же проблемы:

Ссылка

Я сам заинтересован в решении и попробую позже. Скажите мне, если вам удастся реализовать это решение.

Я не мог заставить его работать, поскольку система всегда говорила мне, что мне разрешено запускать исполняемый файл.

Однако это, похоже, работает:

Ссылка

Я использовал короткую команду и запускал ее с помощью sudo.

В качестве полуавтоматического решения я создал пусковую установку:

сценарий выглядит следующим образом:

Есть ли способ предотвратить запрос моего пароля?

    
ответ дан dago 22.06.2011 в 19:58
0

У меня была аналогичная проблема, и после прочтения вопроса на этом сайте выяснилось, что программа "powertop", по-видимому, больше подходит разработчикам.

Как установить powertop 1.13?

Версия, более полезная для пользователей, - это "powertop-1.13", найденная в репозиториях. Он показывает предложения по энергосбережению, а также команду, которую он использует для выполнения предложения.

Этот сайт Red Hat Docs содержит дополнительные инструкции для делая эти изменения постоянными.

В частности:

  

Чтобы помочь вам сделать изменения постоянными, PowerTOP отображает точные   для выполнения этой оптимизации. Добавьте команду в свою    /etc/rc.local с предпочтительным текстовым редактором, чтобы он   каждый раз, когда компьютер запускается.

Удачи!

    
ответ дан Neil 04.05.2012 в 14:41
0

В ответе rubo77 я запускаю powertap --auto-tune в /etc/rc.local , а затем отменяет нежелательное изменение по умолчанию.

Однако, поскольку устройство, с которого я хочу отключить автоматическое управление мощностью, - это внешнее устройство USB, которое потенциально может появиться с другим номером устройства дерева /sys , я сделал немного больше сценариев, чтобы динамически идентифицировать его:

/usr/local/sbin/powertop --auto-tune

export VENDOR=aaaa
export PRODUCT=bbbb

for d in /sys/bus/usb/devices/*; do
        if [ -f $d/idVendor ] && \
           [ "$(cat $d/idVendor)" == "${VENDOR}" ] && \
           [ -f $d/idProduct ] && \
           [ "$(cat $d/idProduct)" == "${PRODUCT}" ]; then
                echo 'on' > $d/power/control
        fi   
done

exit 0

, где VENDOR и PRODUCT установлены на идентификатор поставщика USB и идентификаторы продуктов в нижнем регистре.

Они доступны

  • идентификация устройства на выходе lsusb (идентификаторы появляются там в форме aaaa:bbbb ) или

  • соблюдая команду, выполняемую при включении питания, когда вы переключаете настройку мощности, переходите к текущему каталогу /sys/bus/usb/devices/* устройства и получаете значения из текущих файлов idProduct и idVendor .

    / li>
ответ дан rakslice 04.04.2017 в 06:40
0

Хорошо ... systemd делает это слишком просто:

# /etc/systemd/system/powertop-autotune.service
[Unit]
Description=Auto-tune power savings (oneshot)

[Service]
Type=oneshot
ExecStart=/usr/bin/powertop --auto-tune
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

Сохраните файл блока, kill -HUP 1 , systemctl enable powertop-autotune , done!

Пиксельные файлы понимают продолжение строки ; т. е. использовать обратную косую черту для добавления дополнительных строк:

#...
ExecStart=/usr/bin/powertop --auto-tune && \
          echo on > /sys/bus/usb/devices/2-7/power/control && \
          : ;
#...
    
ответ дан ulidtko 03.10.2017 в 13:47