Comment faire en sorte que les modifications de Powertop soient permanentes?

63

Je suis sur un Compaq 615 et son ventilateur est fort. Vous ne pouvez pas faire grand chose à ce sujet, mais j'essaie de garder le CPU / GPU aussi cool que possible. Voici ce que Powertop a à dire:

Si je les change tous en "bon", les modifications ne survivent pas à un redémarrage.

J'ai ajouté la ligne au fichier "grub" sous la forme proposé ici

Comment puis-je rendre les "Tunables" suggérés par Powertop permanents?

    
posée H3R3T1K 13.03.2012 - 21:12
la source

10 réponses

49

Si vous les modifiez tous bien, vous pouvez simplement utiliser la commande

sudo powertop --auto-tune

Appeler automatiquement le réglage automatique du groupe électrogène au moment du démarrage

1.

Sur les systèmes utilisant systemd comme gestionnaire de démarrage (comme Ubuntu), installez-le en tant que service:

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.

Sur les systèmes n'utilisant pas systemd , ou si vous souhaitez utiliser l'ancien style avec le fichier /etc/rc.local , ajoutez cette ligne à la fin dans /etc/rc.local :

powertop --auto-tune
exit 0

Remarque: si le script contient déjà exit 0 , assurez-vous de placer toutes les commandes avant cette ligne, car cela ferme le script

Si vous souhaitez définir tous les paramètres sur une seule ligne, vous pouvez d'abord les régler automatiquement, puis désactiver un paramètre avec une ligne supplémentaire, par exemple si vous souhaitez réactiver le périphérique à écran tactile (à usb 2-7). ), ajoutez ceci avant le exit 0 :

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

Remarque: sous Linux avec systemd , assurez-vous que /etc/rc.local est exécuté au démarrage par le service de compatibilité

systemctl status rc-local.service
    
réponse donnée rubo77 01.07.2014 - 16:36
la source
24

Voici comment vous pouvez rendre les modifications permanentes:

sudo powertop --html

Cela va générer un fichier powertop-xxxxxxxxxx-xxxxxx.html .

Maintenant, ouvrez-le dans le navigateur et copiez les commandes echo de "... nécessitant un réglage" à /etc/rc.local .

Ou extraire les commandes en utilisant quelque chose comme ceci:

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

Si rc.local contient exit 0 , vous devez vous assurer de placer les commandes avant cette ligne.

    
réponse donnée pumpupthevolume 05.08.2012 - 13:14
la source
14

Vous devez le télécharger et le compiler car personne n’a la dernière version

Téléchargez powertop lien

powertop-2.3.tar.gz & lt; & lt; & lt; Cliquez & amp; Téléchargez-moi

Avant de compiler, vous devez installer des dépendances

Installer des dépendances (copiez simplement les commandes suivantes)

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

Installation de Powertop

Pour créer et installer PowerTOP, tapez les commandes suivantes,

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

Vous pouvez également utiliser -j2 pour le nombre de cœurs à utiliser dans ./ make .Replace -j2 avec le nombre de Cœurs de processeur à utiliser pour le processus de compilation. Par exemple, j'ai utilisé ./ make -j8

Powertop est installé, vous pouvez débrancher l’alimentation secteur et peut fonctionner

sudo powertop

Cependant, la plupart des paramètres ne sont pas enregistrés et ils sont perdus après un redémarrage. Vous pouvez cependant les rendre permanents en utilisant les commandes fournies dans le rapport html de PowerTOP. Pour générer un rapport HTML, exécutez la commande suivante: webupd8.org

sudo powertop --html=powertop.html

Implémentation de la suggestion Powertop sur batterie et retour pour optimiser les performances sur l’alimentation CA

Pour cela, vous devez créer un script qui exécute la suggestion de Powertop sur batterie et optimiser les performances sur l’alimentation électrique

  

Placez-le dans /etc/pm/power.d/ et donnez des droits d’exécution

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

Copiez collez le texte suivant dans le fichier d'alimentation

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

Maintenant, vous devez attribuer une autorisation d’exécution du script power

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

Maintenant, lorsque vous Débranchez , la suggestion Powertop prendra le dessus et optimisera la durée de vie de la batterie et Vous avez branché Alimentation secteur , vous obtiendrez des performances maximales.

Liens utiles

lien lien

Pour l'option -j lien

    
réponse donnée Qasim 22.03.2013 - 17:27
la source
9

Ce n'est pas la réponse que vous demandez, mais vous pouvez essayer de s'exécuter dans laptop-mode . Pour ce faire:

  

ouvrir un terminal et taper:

gksu gedit /etc/default/acpi-support
     

entrez le mot de passe, puis allez au bas et dans la section où il   parle de mode ordinateur portable écrire vrai au lieu de faux, fermer le document   et sauvez bien sûr

     

Puis entrez:

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

ce fichier est un peu plus long, mais voici comment j'ai édité le mien. J'ai ajouté #   avant la ligne par défaut sur les lignes que j'ai modifiées, comme ceci:

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

la valeur par défaut était 0 et je l'ai transformé en 1, modifier uniquement les lignes I   modifié. Il y a quelques options ici que vous voudrez examiner et   basculer comme bon vous semble. Lorsque vous fermez et enregistrez.

     

Après cela, vous voudrez taper:

gksu gedit
     

maintenant dans l'éditeur de texte, cliquez sur ouvrir et allez dans /etc/laptop-mode/conf.d/   dossier, il existe divers fichiers, vous êtes probablement intéressé par usb   autosuspend, hda audio, iwl intel sans fil, intel sata et sched mc   Economie d'énergie. Ouvrez ces fichiers un par un et lisez-les, ils sont   écrit dans un anglais standard parfait et explique tout très   bien. Vous saurez quoi faire, rappelez-vous que 0 correspond à off et 1   pour la plupart du temps.

     

Lorsque vous avez terminé, fermez et enregistrez chaque fichier.

     

Maintenant, redémarrez et admirez le mode ordinateur portable en action, puis:

sudo powertop
     

et examinez la consommation d'énergie, si vous avez tout fait correctement   Powertop n'aura aucune suggestion supplémentaire à faire parce que vous avez   peaufiné tout ce qu'il y a à modifier (plus ou moins).

Source: lien (par Axx83 )

    
réponse donnée rlemon 13.03.2012 - 21:21
la source
5

Utilisez les règles udev pour des économies d’énergie permanentes lors de la configuration des paramètres directement à la source, au lieu de créer des scripts ou d’utiliser des packages non installés. Ainsi, dès que le matériel est ajouté par udev , vos paramètres sont appliqués.

Une règle udev correcte fait en sorte que les paramètres ne s’appliquent pas lorsque le matériel n’y est pas, ce qui rend la configuration plus portable. Et vous en apprendrez plus sur le fonctionnement interne de votre noyau Linux :-). La configuration effectuée de cette manière s’applique également lorsque vous ne travaillez pas sur batterie.

Un exemple pour le réglage Enable SATA link power Managmenet for host0 . La suggestion est de:

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

Cela vous donne déjà une idée de l'emplacement du matériel: dans / sys / class / scsi_host. Vous pouvez le vérifier avec:

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

Mieux vaut ne pas toucher les règles du système udev dans /lib/udev/rules.d/ et créer votre propre fichier de règles udev à peu près au niveau 60 dans /etc/udev/rules.d/. Par exemple avec l'éditeur nano:

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

D'autres exemples écrivent des règles comme:

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

Je dirais que ce n'est pas le cas et que votre règle est encore meilleure en l'appliquant uniquement lorsque la stratégie de gestion de l'alimentation du lien est définie sur max_performance. Regardez la petite différence (cherchez le signe de la double équation):

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

Testez votre règle avec 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

Je ne trouve pas de moyen d’appliquer la règle. Dans ce cas, j’ai fait un redémarrage pour appliquer la règle udev nouvellement créée.

    
réponse donnée Pro Backup 03.09.2014 - 18:57
la source
2

J'ai résolu ce problème en créant un script de tiret /root/power_save.sh :

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

Définissez-le comme exécutable:

sudo chmod u+x /root/power_save.sh

Et ajoutez-le à root crontab avec sudo crontab -e :

@reboot /root/power_save.sh
    
réponse donnée Seppo Erviälä 22.06.2011 - 22:21
la source
2

Ce lien parle de la même chose parle du même problème:

lien

Je suis intéressé par la solution par moi-même et je tenterai plus tard. Dites-moi si vous pouvez réussir à implémenter cette solution.

Je ne pouvais pas le faire fonctionner car le système me disait toujours que la permission d'exécuter le fichier exécutable était refusée.

Cependant, cela semble fonctionner:

lien

J'ai utilisé la commande abrégée et l'ai exécutée avec sudo.

En tant que solution semi-automatique, j'ai créé un lanceur:

le script est le suivant:

Existe-t-il un moyen d’empêcher de demander mon mot de passe?

    
réponse donnée dago 22.06.2011 - 19:58
la source
1

Eh bien ... systemd : trop facile:

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

Enregistrez le fichier d'unité, kill -HUP 1 , systemctl enable powertop-autotune , done!

P.S. les fichiers d'unité comprennent la suite de ligne ; c'est-à-dire utiliser des barres obliques inverses pour ajouter d'autres lignes:

#...
ExecStart=/usr/bin/powertop --auto-tune && \
          echo on > /sys/bus/usb/devices/2-7/power/control && \
          : ;
#...
    
réponse donnée ulidtko 03.10.2017 - 13:47
la source
0

J'ai eu un problème similaire et après avoir lu une question sur ce site, j'ai découvert que le programme "powertop" était apparemment plus adapté aux développeurs.

Comment installer powertop 1.13?

La version plus utile pour les utilisateurs est "powertop-1.13" trouvée dans les référentiels. Il montre des suggestions d'économie d'énergie ainsi que la commande qu'il utilise pour exécuter la suggestion.

Ce site contient des instructions supplémentaires pour rendre ces changements permanents.

Plus précisément:

  

Pour vous aider à rendre les modifications permanentes, PowerTOP affiche   commande qu'il exécute pour effectuer cette optimisation. Ajoutez la commande à votre    /etc/rc.local fichier avec votre éditeur de texte préféré afin qu'il prenne   effet à chaque démarrage de l'ordinateur.

Bonne chance!

    
réponse donnée Neil 04.05.2012 - 14:41
la source
0

Selon la réponse de rubo77, j'exécute powertap --auto-tune in /etc/rc.local et annule une modification par défaut indésirable.

Cependant, étant donné que le périphérique pour lequel je souhaite désactiver le contrôle d’alimentation automatique est un périphérique USB externe susceptible d’apparaître avec un numéro de périphérique /sys différent, j’ai fait un peu plus de script pour l’identifier dynamiquement:

/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 et PRODUCT sont définis sur le fournisseur USB et les ID de produit en minuscule.

Ceux-ci sont disponibles par

  • identifier le périphérique dans la sortie lsusb (les identifiants y apparaissent sous la forme aaaa:bbbb ), ou

  • en observant la commande exécutée par powertop lorsque vous basculez le paramètre d'alimentation, en accédant au répertoire /sys/bus/usb/devices/* du périphérique et en obtenant les valeurs des fichiers idProduct et idVendor actuels.

réponse donnée rakslice 04.04.2017 - 06:40
la source

Lire d'autres questions sur les étiquettes