Come faccio a rendere permanenti le modifiche di Powertop?

63

Sono su un Compaq 615 ed è un fan forte. Non si può fare molto a riguardo, ma sto cercando di mantenere la CPU / GPU il più possibile fresca. Questo è ciò che ha da dire Powertop:

Se li cambio tutti in "buono", le modifiche non sopravvivono a un riavvio.

Ho aggiunto la riga al file "grub" come suggerito qui

Come faccio a rendere Powertop suggerito come permanente "Tunables"?

    
posta H3R3T1K 13.03.2012 - 21:12

10 risposte

49

Se li modifichi comunque, puoi semplicemente utilizzare il comando

sudo powertop --auto-tune

Richiama automaticamente l'ottimizzazione automatica del powertop all'avvio

1.

Sui sistemi che usano systemd come startup manager (come Ubuntu) installalo come un servizio:

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.

Sui sistemi che non usano systemd , o se vuoi usare il vecchio stile con /etc/rc.local file, aggiungi questa riga alla fine a /etc/rc.local :

powertop --auto-tune
exit 0

Nota: se lo script contiene già exit 0 assicurati di posizionare tutti i comandi prima di quella linea, perché ciò fa uscire lo script

Se si desidera impostare tutto su una sola riga, è possibile innanzitutto eseguire la sintonizzazione automatica e quindi disabilitare un'impostazione con una linea aggiuntiva, ad esempio, se si desidera riattivare il dispositivo touchscreen (su USB 2-7 ), aggiungi questo prima di exit 0 :

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

Nota: su Linux con systemd , assicurati che /etc/rc.local venga eseguito all'avvio dal servizio di compatibilità

systemctl status rc-local.service
    
risposta data rubo77 01.07.2014 - 16:36
24

Ecco come puoi rendere permanenti le modifiche:

sudo powertop --html

Questo genererà un file powertop-xxxxxxxxxx-xxxxxx.html .

Ora aprilo nel browser e copia i comandi echo da "... in bisogno di Tuning" a /etc/rc.local .

Oppure estrai i comandi usando qualcosa di simile a questo:

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

Se rc.local contiene exit 0 devi assicurarti di inserire i comandi prima di questa riga.

    
risposta data pumpupthevolume 05.08.2012 - 13:14
14

Devi scaricarlo e compilarlo perché nessuno ha la versione più recente

Scarica powertop link

powertop-2.3.tar.gz & lt; & Lt; & Lt; Fai clic su & amp; Scarica me

Prima della compilazione è necessario installare le dipendenze

Installazione delle dipendenze (copia semplicemente incolla i seguenti comandi)

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

Installazione di Powertop

Per creare e installare PowerTOP digitare i seguenti comandi,

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

Puoi anche usare -j2 per quanti core vuoi usare in ./ make .Replace -j2 con qualsiasi numero di Core della CPU che si desidera utilizzare per il processo di compilazione. per esempio ho usato ./ make -j8

Powertop è installato, è possibile scollegare l'alimentazione CA e può essere eseguito

sudo powertop

Tuttavia, la maggior parte delle impostazioni non vengono salvate e vengono perse dopo un riavvio. Puoi, tuttavia, renderli permanenti, utilizzando i comandi forniti nel rapporto html PowerTOP. Per generare un report HTML, eseguire il seguente comando: webupd8.org

sudo powertop --html=powertop.html

Implementazione di suggerimenti Powertop sulla batteria e ritorno per massimizzare le prestazioni su Ac Power

Per questo è necessario creare uno script che esegua il suggerimento powertop sulla batteria e massimizzi le prestazioni con l'alimentazione CA

  

Mettilo in /etc/pm/power.d/ e dai i diritti di esecuzione

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

Copia incolla quanto segue nel file di alimentazione

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

Ora devi assegnare il permesso di esecuzione dello power script

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

Ora, quando Unplugged , il suggerimento di Powertop prenderà il controllo e massimizzerà la durata della batteria e amp; Hai collegato alimentazione CA con prestazioni massime.

Link utili

link link

Per l'opzione -j link

    
risposta data Qasim 22.03.2013 - 17:27
9

Non è la risposta che stai chiedendo, ma puoi provare a correre in laptop-mode . Per fare ciò:

  

apri un terminale e digita:

gksu gedit /etc/default/acpi-support
     

inserisci la password e poi vai in fondo e nella sezione dove si trova   parla della scrittura in modalità portatile vera invece del documento falso e chiuso   e, naturalmente, salva

     

Quindi inserisci:

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

questo file è un po 'più lungo, ma ecco come ho modificato il mio. Ho aggiunto #   prima della linea di default su quelle linee ho modificato, come questo:

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

il valore predefinito era 0 e l'ho trasformato in 1, modificando solo le righe I   modificata. Ci sono alcune opzioni qui che vorrai rivedere e   attivare o disattivare. Quando sei vicino e salva.

     

Dopo averlo fatto, dovrai digitare:

gksu gedit
     

ora nell'editor di testo fai clic su apri e vai in /etc/laptop-mode/conf.d/   cartella, ci sono vari file, probabilmente sei interessato a usb   autosuspend, hda audio, iwl intel wireless, intel sata e sched mc   risparmio energetico. Apri questi file uno a uno e leggili, sono   scritto in perfetto inglese standard e spiega tutto molto   bene. Saprai cosa fare, ricorda che 0 sta per spento e 1   per la maggior parte del tempo.

     

Quando hai terminato e salva ogni file.

     

Ora riavvia e ammira la modalità laptop in azione, quindi:

sudo powertop
     

ed esamina il consumo di energia, se hai fatto tutto correttamente   powertop non avrà alcun suggerimento aggiuntivo da fare perché lo hai   ottimizzato tutto quello che c'è da modificare (più o meno).

Fonte: link (di Axx83 )

    
risposta data rlemon 13.03.2012 - 21:21
5

Utilizza le regole di udev per i risparmi energetici permanenti, configura le impostazioni direttamente all'origine, invece di creare script o fare affidamento su possibili pacchetti non installati. Pertanto, non appena l'hardware viene aggiunto da udev , le tue impostazioni vengono applicate.

Una regola udev corretta rende le impostazioni non applicabili quando l'hardware non è presente, rendendo così la configurazione più portabile. E scopri di più sul funzionamento interno del tuo kernel Linux :-). La configurazione eseguita in questo modo, si applica anche quando non funziona a batteria.

Un esempio per sintonizzabile Enable SATA link power Managmenet for host0 . Il suggerimento è:

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

Questo ti dà già un'idea di dove si trova l'hardware: in / sys / class / scsi_host. Puoi verificarlo con:

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

Meglio non toccare le regole del sistema udev in /lib/udev/rules.d/ e creare il proprio file di regole udev all'incirca al livello 60 in /etc/udev/rules.d/. Ad esempio con l'editor nano:

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

Alcuni altri esempi scrivono regole come:

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

Direi di no e rendere la tua regola ancora migliore applicandola solo quando il criterio di risparmio energia del collegamento è impostato su max_performance. Dai un'occhiata alla piccola differenza (cerca il doppio segno di equazione):

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

Verifica la regola con 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

Non riesco a trovare un modo per applicare la regola, quindi in questo caso ho fatto un riavvio per applicare la regola udev appena creata.

    
risposta data Pro Backup 03.09.2014 - 18:57
2

Ho risolto questo creando uno script dash /root/power_save.sh :

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

Imposta come eseguibile:

sudo chmod u+x /root/power_save.sh

E aggiungilo a root crontab con sudo crontab -e :

@reboot /root/power_save.sh
    
risposta data Seppo Erviälä 22.06.2011 - 22:21
2

Questo link parla della stessa cosa sta parlando dello stesso problema:

link

Sono interessato alla soluzione da solo e proverò più tardi. Dimmi se riesci a implementare questa soluzione.

Non riuscivo a farlo funzionare poiché il sistema mi ha sempre detto di negare il permesso di eseguire il file eseguibile.

Tuttavia questo sembra funzionare:

link

Ho usato il comando breve ed eseguito con sudo.

Come soluzione semi-automatica ho creato un launcher:

lo script è il seguente:

C'è un modo per evitare di chiedere la mia password?

    
risposta data dago 22.06.2011 - 19:58
1

Oh bene ... systemd lo rende troppo 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

Salva il file unitario, kill -HUP 1 , systemctl enable powertop-autotune , fatto!

I

P.S. file di unità comprendono continuazione della linea ; Ad esempio, utilizza le barre rovesciate per aggiungere più righe:

#...
ExecStart=/usr/bin/powertop --auto-tune && \
          echo on > /sys/bus/usb/devices/2-7/power/control && \
          : ;
#...
    
risposta data ulidtko 03.10.2017 - 13:47
0

Ho avuto un problema simile e dopo aver letto una domanda su questo sito ho scoperto che il programma "powertop" è, apparentemente, più adatto agli sviluppatori.

Come installo powertop 1.13?

La versione, più utile, per gli utenti è "powertop-1.13" trovata nei repository. Mostra suggerimenti per il risparmio energetico e il comando che utilizza per eseguire il suggerimento.

Questo sito Red Hat Docs ha ulteriori istruzioni per rendendo permanenti queste modifiche.

In particolare:

  

Per aiutarti a rendere le modifiche permanenti, PowerTOP visualizza l'esatto   comando eseguito per eseguire questa ottimizzazione. Aggiungi il comando al tuo    /etc/rc.local file con il tuo editor di testo preferito in modo che ci vuole   effetto ogni volta che il computer si avvia.

Buona fortuna!

    
risposta data Neil 04.05.2012 - 14:41
0

Risposta di Per rubo77, sto eseguendo powertap --auto-tune in /etc/rc.local e poi annullo una modifica predefinita indesiderata.

Tuttavia, poiché il dispositivo per il quale desidero disabilitare il controllo automatico dell'alimentazione è un dispositivo USB esterno che potrebbe potenzialmente apparire con un diverso numero di dispositivo dell'albero /sys , ho eseguito un po 'più di script per identificarlo dinamicamente:

/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

dove VENDOR e PRODUCT sono impostati sul fornitore USB e sugli ID prodotto nell'esagono minuscolo.

Questi sono disponibili

  • che identifica il dispositivo nell'output lsusb (gli ID appaiono lì nel formato aaaa:bbbb ) o

  • osservando il comando che powertop viene eseguito quando si commuta l'impostazione di alimentazione, passando alla directory /sys/bus/usb/devices/* corrente del dispositivo e ottenendo i valori dai file idProduct e idVendor correnti.

risposta data rakslice 04.04.2017 - 06:40

Leggi altre domande sui tag