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 processeur/GPU aussi cool que possible. Voici ce que Powertop a à dire:
Si je les change tous en "bien", les modifications ne survivront pas au redémarrage.
J'ai ajouté la ligne au fichier "grub" comme suggéré ici
Comment rendre permanent le "Tunables" suggéré par Powertop?
Si vous les modifiez tous de toute façon, vous pouvez simplement utiliser la commande
Sudo powertop --auto-tune
Sur les systèmes utilisant systemd
en tant que 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
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 de /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 le script quitte le script.
Si vous souhaitez régler tous les éléments sur une seule ligne, vous pouvez d’abord régler automatiquement l’appareil, puis en désactiver un avec une ligne supplémentaire. Par exemple, si vous souhaitez réactiver le périphérique à écran tactile (à l’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
Voici comment vous pouvez rendre les modifications permanentes:
Sudo powertop --html
Cela générera un fichier powertop-xxxxxxxxxx-xxxxxx.html
.
Maintenant, ouvrez-le dans le navigateur et copiez les commandes echo
de "... ayant besoin de réglage" dans /etc/rc.local
.
Ou extrayez les commandes en utilisant quelque chose comme ceci:
echo "grep 'echo ' powertop-20120805-125538.html | sed 's/.*\(echo.*\);.*/\1/g'"
Si rc.local
contient exit 0
, vous devez vous assurer de placer les commandes avant cette ligne.
Vous devez le télécharger et le compiler car personne n’a la dernière version.
Télécharger powertop https://01.org/powertop/downloads/2013/powertop-v2.
powertop-2.3.tar.gz <<<Cliquez et téléchargez-moi
Avant de compiler, vous devez installer des dépendances
Installation de dépendances (il suffit de copier-coller les commandes suivantes)
Sudo apt-get install libtool autoconf libnl-dev ncurses-dev pciutils-dev build-essential -y
Installation de Powertop
Pour construire 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 que vous souhaitez utiliser ./ make . Remplacez - j2 par le nombre de cœurs de processeur que vous souhaitez utiliser pour le processus de compilation. par exemple, j'ai utilisé ./ make -j8
Powertop est installé, vous pouvez débrancher le courant alternatif et courir
Sudo powertop
Cependant, la plupart des paramètres ne sont pas enregistrés et ils sont perdus après un redémarrage. Vous pouvez toutefois les rendre permanents en utilisant les commandes fournies dans le rapport HTML 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 alimentation ca
Pour cela, vous devez créer un script qui exécute la suggestion powertop sur batterie et optimise les performances en courant alternatif.
Placez-le dans /etc/pm/power.d/ et donnez les droits d'exécution
Sudo gedit /etc/pm/power.d/power
Copier coller ce qui suit dans le fichier 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
Vous devez maintenant attribuer le droit d’exécution du script power
Sudo chmod +x /etc/pm/power.d/power
Maintenant, lorsque vous débrancherez , la suggestion de Powertop prendra le relais et maximisera la durée de vie de la batterie. Vous serez branché sur le secteur vous aurez Max Performance.
Liens utiles
http://ubuntuforums.org/showthread.php?t=1855126&page=http://www.webupd8.org/2012/08/install-powertop-21-in- ubuntu-1204.html
Pour l'option -j http://dnscrypt.org/
Ce n'est pas la réponse que vous demandez, mais vous pouvez essayer de l'exécuter avec laptop-mode
. Pour faire ça:
ouvrez un terminal et tapez:
gksu gedit /etc/default/acpi-support
entrez le mot de passe puis allez au bas de la page et dans la section où il est écrit en mode portable écrivez vrai au lieu de faux, fermez le document et sauvegardez 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 celles 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 mis à 1, ne modifiez que les lignes que j'ai modifiées. Il y a quelques options ici que vous voudrez examiner et basculer à votre guise. Lorsque vous êtes proche et économisez.
Après cela, vous voudrez taper:
gksu gedit
maintenant, dans l'éditeur de texte, cliquez sur Ouvrir et allez dans le dossier /etc/laptop-mode/conf.d/. Il existe divers fichiers. Vous êtes probablement intéressé par USB autosuspend, hda audio, iwl intel wireless, intel sata et sched mc powersaving. Ouvrez ces fichiers un par un et lisez-les, ils sont écrits dans un anglais standard parfait et expliquent très bien tout. Vous saurez quoi faire, rappelez-vous que 0 correspond à off et 1 à la plupart du temps.
Lorsque vous avez terminé, fermez et enregistrez chaque fichier.
Maintenant, redémarrez et admirez le mode 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, car vous avez peaufiné tout ce qu'il y a à modifier (plus ou moins).
Source: http://ubuntuforums.org/showthread.php?t=1157408&p=7271995#post7271995 (by Axx8 )
Utilisez les règles udev pour des économies d’énergie permanentes, configurez les paramètres directement au niveau de la source, au lieu de créer des scripts ou de vous fier aux éventuels packages non installés. Ainsi, dès que le matériel est ajouté par udev
name__, vos paramètres sont appliqués.
Une règle udev
correcte rend les paramètres non applicables en l'absence de matériel, ce qui rend la configuration plus portable. Et vous en apprendrez plus sur le fonctionnement interne de votre noyau Linux :-). La configuration faite de cette façon, s’applique également lorsqu’elle ne fonctionne pas sur batterie.
Un exemple pour accordable 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 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
Quelques autres exemples écrivent des règles comme:
KERNEL=="Host[0-5]", SUBSYSTEM=="scsi_Host", ATTR{link_power_management_policy}="min_power"
Je dirais non, et améliorez encore votre règle en l'appliquant uniquement lorsque la stratégie de gestion de l'énergie des liens est définie sur max_performance. Regardez la petite différence (cherchez le signe de 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 redémarré pour appliquer la règle udev nouvellement créée.
systemd facilite les choses:
# /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 --now powertop-autotune.service
, c'est terminé!
P.S. Si vous avez besoin d'une exception à ce que fait --auto-tune
, ajoutez simplement plus de lignes ExecStart
pour définir vos propres paramètres.
#...
ExecStart=/usr/bin/powertop --auto-tune
ExecStart=/bin/sh -c "echo on > /sys/bus/usb/devices/2-7/power/control"
#...
Ce lien parle de la même chose parle de la même chose:
https://bbs.archlinux.org/viewtopic.php?pid=860406
Je suis intéressé par la solution par moi-même et j'essaierai plus tard. Dis-moi si tu peux réussir à mettre en œuvre cette solution.
Je ne pouvais pas le faire fonctionner car le système me disait toujours la permission refusée d'exécuter le fichier exécutable.
Cependant, cela semble fonctionner:
http://philatwarrimoo.blogspot.com/2011/06/powertop-howto-enable-device-power.html
J'ai utilisé la commande courte et l'exécutez avec Sudo.
En tant que solution semi-automatique, j'ai créé un lanceur:
le script est comme suit:
Y a-t-il un moyen d'éviter de demander mon mot de passe?
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 à la racine crontab avec Sudo crontab -e
:
@reboot /root/power_save.sh
Selon la réponse de rubo77, j'utilise powertop --auto-tune
dans /etc/rc.local
, puis j'annule une modification par défaut non souhaitée.
Toutefois, étant donné que le périphérique pour lequel je souhaite désactiver le contrôle automatique de l'alimentation est un périphérique USB externe pouvant potentiellement apparaître avec un numéro de périphérique /sys
différent, j'ai créé un peu plus de script pour l'identifier de manière dynamique:
/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
où VENDOR
et PRODUCT
sont définis sur les identifiants de fournisseur et de produit USB en minuscule.
Ceux-ci sont disponibles chez
identifier le périphérique dans la sortie lsusb
(les ID y apparaissent sous la forme aaaa:bbbb
), ou
observez la commande exécutée par powertop lorsque vous modifiez le paramètre d'alimentation, accédez au répertoire actuel /sys/bus/usb/devices/*
du périphérique et récupérez les valeurs des fichiers idProduct
et idVendor
actuels.