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

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

PowerTOP 1.97 - Overview - Idle stats - Frequency stats - Device stats - Tunables

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

Я добавил строку в файл «grub», как предложено здесь

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

85
задан 13 April 2017 в 15:24

10 ответов

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

sudo powertop --auto-tune

Вызовить автоматическую настройку powertop во время загрузки

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

[ 1122] Примечание: в Linux с systemd, убедитесь, что /etc/rc.local выполняется при запуске службой совместимости

systemctl status rc-local.service
0
ответ дан 13 April 2017 в 15:24

Это не тот ответ, который вы просите, но вы можете попробовать запустить 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, измените только те строки, которые я изменил. Здесь есть несколько вариантов, которые вы хотите просмотреть и переключать по своему усмотрению. Когда вы рядом и сохраните.

После того, как это будет сделано, вы захотите набрать:

gksu gedit

, теперь в текстовом редакторе нажмите «Открыть» и перейдите в папку /etc/laptop-mode/conf.d/, там находятся различные файлы, Вы, вероятно, заинтересованы в USB AutoSuspend, HDA Audio, IWL Intel Wireless, Intel SATA и SCED MC PowerSaving. Откройте эти файлы один за другим и прочитайте их, они написаны на идеальном стандартном английском и все очень хорошо объясняют. Вы будете знать, что делать, помните, что 0 означает выключение, а 1 - большую часть времени.

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

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

sudo powertop

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

Источник: http://ubuntuforums.org/showthread.php?t=1157408&p=7271995#post7271995 (автор Axx83 )

0
ответ дан 13 April 2017 в 15:24

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

sudo powertop --html

Это создаст файл powertop-xxxxxxxxxx-xxxxxx.html.

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

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

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

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

0
ответ дан 13 April 2017 в 15:24

Я решил эту проблему, создав сценарий тире /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

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

@reboot /root/power_save.sh
0
ответ дан 13 April 2017 в 15:24

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

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

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

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

В частности:

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

Удачи!

0
ответ дан 13 April 2017 в 15:24

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, готово!

<час>

PS единичные файлы понимают продолжение строки ; то есть используйте обратную косую черту, чтобы добавить больше строк:

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

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

Загрузите powertop https://01.org/powertop/downloads/2013/powertop-v2.3

powertop-2.3.tar.gz <<<Щелчок и Загружают Меня

Прежде, чем скомпилировать Вас должно установить зависимости

Установка Зависимостей (Просто копия вставляют следующие команды),

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 для того, сколько ядер Вы хотите использовать в./делать. Замените-j2 любым количеством ядер процессора, которые Вы хотите использовать для процесса компиляции. например, я использовал./make-j8

Powertop установлен, Вы можете отключенное питание переменным током и можете работать

sudo powertop

Однако большинство настроек не сохраняется, и они потеряны после перезагрузки. Вы, может, однако, сделать их постоянными, при помощи команд обеспеченный в отчете HTML PowerTOP. Для генерации отчета 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

Теперь необходимо присвоить разрешение выполнения сценария питания

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

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

Ссылки Helpfull

http://ubuntuforums.org/showthread.php?t=1855126&page=3 http://www.webupd8.org/2012/08/install-powertop-21-in-ubuntu-1204.html

Для-j опции http://dnscrypt.org/

15
ответ дан 13 April 2017 в 15:24

Эта ссылка переговоры о том же говорит о той же проблеме:

https://bbs.archlinux.org/viewtopic.php? pid=860406

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

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

Однако это, кажется, работает:

http://philatwarrimoo.blogspot.com/2011/06/powertop-howto-enable-device-power.html

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

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

enter image description here

сценарий следующие:

enter image description here

Существует ли способ предотвратить просьбу о моем пароле?

2
ответ дан 13 April 2017 в 15:24

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

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

Пример для перестройки Enable SATA link power Managmenet for host0. Предложение:

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

Это уже дает вам представление о том, где находится аппаратное обеспечение: в / 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 /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.

0
ответ дан 13 April 2017 в 15:24

Согласно ответу rubo77, я запускаю powertop --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), или

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

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

Похожие вопросы: