Powertop değişikliklerini nasıl kalıcı hale getirebilirim?

63

Bir Compaq 615'deyim ve hayranı çok yüksek. Bu konuda yapabileceğiniz pek bir şey yok ama CPU / GPU'yu olabildiğince soğuk tutmaya çalışıyorum. Bu Powertop'un söylemesi gereken şey:

Hepsini tümünü "iyi" olarak değiştirirsem, değişiklikler yeniden başlatılmıyor.

Çizgiyi burada önerildi olarak ekledim. / p>

Powertop'un "Tünelleri" önerisinde kalıcı olmasını nasıl sağlayabilirim?

    
sordu H3R3T1K 13.03.2012 21:12

10 cevap

49

Eğer hepsini iyice değiştirirseniz, sadece

komutunu kullanabilirsiniz.
sudo powertop --auto-tune

Powertop'u önyükleme zamanında otomatik olarak otomatik olarak ayarla

1.

Başlangıç ​​yöneticisi olarak systemd kullanan sistemlerde (Ubuntu gibi) bir hizmet olarak kurun:

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 kullanmayan sistemlerde veya /etc/rc.local dosyasıyla eski stili kullanmak isterseniz, bu satırı sonuna /etc/rc.local :

ekleyin.

powertop --auto-tune
exit 0

Not: komut dosyası zaten exit 0 içeriyorsa, tüm komutları bu satırdan önce yerleştirdiğinizden emin olun, bu da komut dosyasından çıkar.

Tümü iyi ama tek bir çizgiye ayarlamak isterseniz, önce otomatik olarak ayarlayabilir ve bir ayarı ekstra bir çizgi ile devre dışı bırakabilirsiniz; örneğin, dokunmatik ekran cihazını yeniden etkinleştirmek isterseniz (usb 2-7'de) ), bunu exit 0 'den önce ekleyin:

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

Not: systemd ile Linux'ta, /etc/rc.local'ın başlangıçta uyumluluk hizmeti tarafından çalıştırıldığından emin olun

systemctl status rc-local.service
    
verilen cevap rubo77 01.07.2014 16:36
24

Değişiklikleri kalıcı olarak nasıl yapabilirsiniz:

sudo powertop --html

Bu, powertop-xxxxxxxxxx-xxxxxx.html dosyası oluşturacak.

Şimdi bunu tarayıcıda açın ve echo komutlarını "... 'a ihtiyaç duyan" ... "dan /etc/rc.local ' ye kopyalayın.

Veya aşağıdaki gibi bir şey kullanarak komutları ayıklayın:

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

rc.local exit 0 içeriyorsa, komutları bu satırdan önce koyduğunuzdan emin olmalısınız.

    
verilen cevap pumpupthevolume 05.08.2012 13:14
14

Hiç kimse en son sürüme sahip olmadığı için indirmeli ve derlemelisiniz

Powertop'u indirin İşte

powertop-2.3.tar.gz & lt; & Lt; & Lt; & Amp; Beni İndir

Derlemeden önce bağımlılık yüklemeniz gerekir

Bağımlılıkları Yükleme (Sadece aşağıdaki komutları yapıştırın)

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

Powertop'u Kurma

PowerTOP türünü kurmak ve kurmak için aşağıdaki komutları,

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

./ make içinde kullanmak istediğiniz kaç çekirdek için -j2 'yi de kullanabilirsiniz. Herhangi bir sayıya sahip olmak için -j2 . Derleme işlemi için kullanmak istediğiniz CPU çekirdeği. örneğin ./ make -j8 'i kullandım

Powertop takılıyken AC gücü kesilebilir ve çalıştırabilirsiniz

sudo powertop

Ancak, ayarların çoğu kaydedilmez ve yeniden başlatıldıktan sonra kaybolur. Ancak, PowerTOP html raporunda sağlanan komutları kullanarak bunları kalıcı hale getirebilirsiniz. Bir HTML raporu oluşturmak için aşağıdaki komutu çalıştırın: webupd8.org

sudo powertop --html=powertop.html

Akü Üzerinde Powertop Öneri ve Akü Üzerinde Performansı En Üst Düzeye Çıkarmak İçin Uygulanması

Bunun için, aküde powertop önerisini çalıştıran ve ac gücündeki performansı en üst düzeye çıkaracak bir komut dosyası oluşturmanız gerekir

  

Bunu /etc/pm/power.d/ adresine yerleştirin ve yürütme haklarını verin

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

Aşağıdakileri yapıştırıp aşağıdakileri yapıştırın

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

Artık güç komut dosyasının yürütme iznini atamanız gerekiyor

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

Artık Unplugged 'ı kullandığınızda, Powertop önerisi pil ömrünü ele geçirecek ve en üst düzeye çıkaracaktır. AC gücü 'de takıldıysanız Maks. Performansa sahip olursunuz.

Yardım Linkleri

İşte İşte

-j Seçenek için İşte

    
verilen cevap Qasim 22.03.2013 17:27
9

İstediğiniz cevap bu değil, ancak laptop-mode 'da çalışmayı deneyebilirsiniz. Bunu yapmak için:

  

bir terminali açın ve şunu yazın:

gksu gedit /etc/default/acpi-support
     

şifreyi girin ve ardından aşağıya ve bölümün bulunduğu yere gidin.   dizüstü bilgisayar modu hakkında yanlış yazmak yerine doğru yazıyor, yakın belge   ve elbette kurtarın

     

Ardından şunu girin:

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

Bu dosya biraz daha uzun, ama benim de nasıl düzenledim. Ekledim #   Bu satırı değiştirdiğim satırdaki varsayılan satırdan önce:

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

varsayılan değer 0'dı ve 1'e dönüştürdüm, sadece satırları değiştirdim   değiştirilmiş. Burada gözden geçirmek isteyeceğiniz birkaç seçenek var ve   uygun gördüğünüz şekilde geçiş yapın. Kapat ve sakladığın zaman.

     

Bu yapıldıktan sonra şunu yazmak isteyeceksiniz:

gksu gedit
     

şimdi metin düzenleyicide 'yi tıklayın ve /etc/laptop-mode/conf.d/ adresine gidin.   klasör, çeşitli dosyalar var, muhtemelen usb ile ilgileniyorsunuz   autosuspend, hda ses, iwl intel kablosuz, intel sata ve zamanlama mc   güç tasarrufu. Bu dosyaları birer birer açın ve okuyun.   mükemmel bir standart ingilizce yazılı ve her şeyi çok açıklamak   iyi. Ne yapacağını bileceksiniz, unutmayın ki 0 kapalı ve 1   çoğu zaman için.

     

Bittiğinde ve her dosyayı kaydettiğinizde.

     

Şimdi yeniden başla ve dizüstü bilgisayar modunu harekete geçir, sonra:

sudo powertop
     

ve her şeyi doğru bir şekilde yaptıysanız, güç tüketimini inceleyin   powertop yapmak için herhangi bir ek öneri yok çünkü   her şeyi çimdiklemek (daha fazla veya daha az).

Kaynak: İşte ( Axx83 )

    
verilen cevap rlemon 13.03.2012 21:21
5

Kalıcı güç tasarrufu için udev kurallarını, komut dosyaları oluşturmak veya kurulu olmayan paketlere güvenmek yerine, doğrudan kaynağında yapılandırın. Böylece donanım udev eklenince, ayarlarınız uygulanır.

Doğru udev kuralı, donanım orada olmadığında ayarların yapılmadığından yapılandırmayı daha taşınabilir hale getirir. Ve Linux çekirdeğinizin iç işleyişi hakkında daha çok şey öğreniyorsunuz :-). Bu şekilde yapılan yapılandırma, pille çalışmadığında da geçerlidir.

% Co_de% tunable için bir örnek. Öneri şudur:

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

Bu size zaten donanımın nerede olduğu hakkında bir fikir veriyor: in / sys / class / scsi_host. Bunu şununla doğrulayabilirsiniz:

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

/lib/udev/rules.d/ dosyasındaki sistem udev kurallarına dokunmayın ve /etc/udev/rules.d/ dosyasında 60 düzeyinde kabaca kendi udev kural dosyanızı oluşturun. Örneğin, nano editör ile:

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

Diğer bazı örnekler aşağıdaki gibi kuralları yazıyor:

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

Diyelim ki, sadece bağlantı güç yönetimi ilkesi max_performance olarak ayarlandığında bunu uygulayarak kuralınızı daha da iyileştirmeyin. Küçük farka bir bakın (çift denklem işaretini arayın):

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

Sınamanızı Enable SATA link power Managmenet for host0 ile yönetmeyi test edin:

# 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

Kuralı uygulamak için bir yol bulamıyorum, bu nedenle yeni oluşturulan udev kuralını uygulamak için yeniden başlattım.

    
verilen cevap Pro Backup 03.09.2014 18:57
2

Bunu /root/power_save.sh dash komut dosyası oluşturarak çözdüm:

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

Yürütülebilir olarak ayarlayın:

sudo chmod u+x /root/power_save.sh

Ve sudo crontab -e ile root crontab dosyasına ekleyin:

@reboot /root/power_save.sh
    
verilen cevap Seppo Erviälä 22.06.2011 22:21
2

Aynı bağlantı hakkında aynı bağlantıdan bahsediyor:

İşte

Çözüme kendimle ilgileniyorum ve daha sonra deneyeceğim. Bu çözümü uygulamayı başarabileceğinizi söyleyin.

Sistemin, her zaman çalıştırılabilir dosyayı çalıştırmak için izin verilmediğini söylemiş olduğu için çalışmıyordum.

Ancak bu işe yarıyor:

İşte

Kısa komutu kullandım ve sudo ile çalıştırdım.

Yarı otomatik bir çözüm olarak bir başlatıcı oluşturdum:

komut dosyası şöyledir:

Şifremi sormamın bir yolu var mı?

    
verilen cevap dago 22.06.2011 19:58
1

Oh iyi ... systemd bunu çok kolaylaştırıyor:

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

Birim dosyasını kaydedin, kill -HUP 1 , systemctl enable powertop-autotune , bitti!

P.S. birim dosyaları satır devamlılığını anlıyor ; Daha fazla satır eklemek için ters eğik çizgi kullanın:

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

Benzer bir sorunla karşılaştım ve bu sitedeki bir soruyu okuduktan sonra programın "powertop" unun geliştiriciler için daha uygun olduğunu öğrendim.

Powertop 1.13'ü nasıl yüklerim?

Kullanıcılar için daha kullanışlı olan sürüm, depolarda bulunan "powertop-1.13". Güç tasarrufu önerilerini ve öneriyi gerçekleştirmek için kullandığı komutu gösterir.

Bu Red Hat Dokümanları sitesinde, bu değişiklikleri kalıcı hale getirmek.

Özellikle:

  

Değişiklikleri kalıcı hale getirmenize yardımcı olmak için, PowerTOP tam olarak görüntülenir.   Komut bu optimizasyonu gerçekleştirmek için çalışır. Komutu ekle   Tercih edilen metin düzenleyicinizle /etc/rc.local dosyası alır.   Bilgisayar her başlatıldığında etki.

İyi şanslar!

    
verilen cevap Neil 04.05.2012 14:41
0

rubo77'nin cevabı uyarınca, powertap --auto-tune 'si /etc/rc.local ' de çalıştırıyorum ve sonra istenmeyen bir varsayılan değişikliği geri alıyorum.

Ancak, otomatik güç denetimini devre dışı bırakmak istediğim cihaz, potansiyel olarak farklı bir /sys ağaç cihaz numarasıyla görünebilen harici bir USB cihaz olduğundan, dinamik olarak tanımlamak için biraz daha fazla komut dosyası yaptım:

/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 ve PRODUCT , küçük harf hex'te USB satıcısına ve ürün kimliğine ayarlandı.

Bunlar

tarafından kullanılabilir
  • cihazın lsusb çıktısında tanımlanması (Kimlikler aaaa:bbbb biçiminde görünür) veya

  • Güç ayarını değiştirdiğinizde, aygıtın mevcut /sys/bus/usb/devices/* dizinine giderek ve geçerli idProduct ve idVendor dosyalarından değerleri aldığınızda,

    komutunun çalıştığını denetler.

verilen cevap rakslice 04.04.2017 06:40

Etiketlerdeki diğer soruları oku