Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Dziwna sprawa z tym podświetleniem. Pokaż;
cat /sys/class/backlight/*/brightness
shevchenko1987 napisał(-a):
Po wyłączeniu Skype i Kadu zużycie spada nawet do 5.5 W :)
bo każda taka aplikacja generuje dodatkowe przerwania procesora. Bawiłem się tym kiedyś, wyłączyłem wszystko co się dało w openboxie i na koniec małe Parcellite (menadżer schowka) tworzyło różnicę w powertop. Myślę, że na tym sprzęcie mógłbyś zejść jeszcze niżej; nowszy kernel, wyłączyć całkowicie nVidię i może ograniczyć taktowanie procesora na baterii;
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq
następnie tą wartość wpisujesz do skryptu
#!/bin/bash for i in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do echo 1800000 > $i done
i bash skrypt z roota. Mam skrypt do tego na Core i7 i przy zwykłym użytkowaniu na baterii zdecydowanie opłaca mi się ten zabieg, ale nie wiem jak to jest w przypadku słabszego procesora (musiałbyś w praktyce sobie przetestować).
Dodatkowo (Windows8 usypia kartę dźwiękową nawet na zasilaczu.) np.
cat /etc/modprobe.d/inne.conf #Usypianie karty dźwiękowej options snd_hda_intel power_save=1
Opcji jest multum, ale możliwe, że większość masz już standardowo w Debianie zrobione.
Offline
Nie pamiętam teraz dokładnie, ale większość była w standardzie już poustawiana w Debianie.
Reszta to na podstawie powertop w kilku dodatkowych skryptach.
Nie wiem czy zamiast ustawień via /…/cpufreq/scaling_min_freq dla intel_pstate nie będą lepsze te w lokalizacji /sys/devices/system/cpu/intel_pstate/
Albo ich używać razem.
Trzeba by poeksperymentować dłużej ;)
Offline
yosarian - mam tam tylko;
ls /sys/devices/system/cpu/intel_pstate/ max_perf_pct min_perf_pct no_turbo
no_turbo ciekawe, ale jeszcze się nie bawiłem
Offline
Bo tym się to powinno ustawiać.
intel_pstate nie działa już tylko na samych częstotliwościach:
In the ten year old, single core, no hyperthreading world, things were relatively simple. You could basically map a P state to some "frequency" that you'd get, and as the marketing folks told us, a higher frequency means more performance.
Today, things are much more complex in several key ways.
First of all, and this is important and different from 10 years ago... no matter which P state you ask for, when a logical processor is idle (C state), its frequency is typically 0. The exception to this "typically" is the lightest of the C states (C1), where the frequency is the lowest frequency the CPU supports, and not zero. (but going into C1 is pretty rare, and very short lived, so for this posting, I'm going to ignore C1).
A second important aspect is that of "coordination". For practical reasons, on current Intel processors, all the cores in a package share the same voltage. And because running at a lower frequency than possible at a certain voltage is inefficient, all the cores will also share the same clock frequency at any one time. Of course, except the cores that are idle, because their frequency is zero!
Because the OS will ask each individual logical processor for a separate P state, some reconciliation is needed between the different cores. This reconciliation is actually very simple, at any point in time, the frequency of all the cores is the maximum of what each of the individual cores wants. Of course, minus the idle cores. Their frequency is zero, and the maximum of "something" and "zero" is "something".
https://plus.google.com/114657443111661859546/posts/dLn9T4ehywL
I w tych plikach masz zakres działania, który sobie możesz po swojemu ustawić:
echo 100 > /sys/devices/system/cpu/intel_pstate/max_perf_pct cpufreq-info |grep current current policy: frequency should be within 800 MHz and 2.90 GHz. current CPU frequency is 2.88 GHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 2.90 GHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 2.19 GHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 2.21 GHz (asserted by call to hardware).
echo 10 > /sys/devices/system/cpu/intel_pstate/max_perf_pct cpufreq-info |grep current current policy: frequency should be within 800 MHz and 2.90 GHz. current CPU frequency is 782 MHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 782 MHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 782 MHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 782 MHz (asserted by call to hardware).
current policy: frequency should be within 2.90 GHz and 2.90 GHz.
Jeszcze nie dostrzegam w tym logiki, ale pewnie jakiś w tym sens jest ;)
Po ustawieniu min na 0 a max na 100 mam takie:
cpufreq-info |grep current current policy: frequency should be within 800 MHz and 2.90 GHz. current CPU frequency is 1.15 GHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 1.27 GHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 1.15 GHz (asserted by call to hardware). current policy: frequency should be within 2.90 GHz and 2.90 GHz. current CPU frequency is 1.29 GHz (asserted by call to hardware).
Offline
o yossarian dzięki za info to jest ważna wiadomość dla mnie. Będę musiał się tym pobawić i może dopisze do wiki Archa.
Offline
1.
shevchenko1987@VAIO:~$ cat /sys/class/backlight/*/brightness 1025
2. Nvidia wyłączona poprzez bumblebee.
3.
shevchenko1987@VAIO:~$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq 800000 800000 800000 800000
4.
shevchenko1987@VAIO:~$ cpufreq-info |grep current current policy: frequency should be within 800 MHz and 2.70 GHz. current policy: frequency should be within 800 MHz and 2.70 GHz. current policy: frequency should be within 800 MHz and 2.70 GHz. current policy: frequency should be within 800 MHz and 2.70 GHz.
Ostatnio edytowany przez shevchenko1987 (2013-09-10 20:12:40)
Offline
Jeszcze takie info:
New sysfs files for controlling P state selection have been added to /sys/devices/system/cpu/intel_pstate/
max_perf_pct: limits the maximum P state that will be requested by the driver stated as a percentage of the avail performance.
min_perf_pct: limits the minimum P state that will be requested by the driver stated as a percentage of the avail performance.
no_turbo: limits the driver to selecting P states below the turbo frequency range.
The units for these for these files are purposely abstract and stated in terms of available performance and not frequency. In idea that frequency can be set to a single frequency is a fiction for Intel Core processors. Even if the scaling driver selects a single P state the actual frequency the processor will run at is selected by the processor.
Offline
Trochę po czasie, ale chcę się zapytać- jakim poleceniem otrzymałeś
The battery reports a discharge rate of 6.29 W The estimated remaining time is 397 minutes
?
Offline
powertop
Offline
Co zrobić by urządzenia same wchodziły w tryb pracy na baterii, chodzi mi konkretnie o automatyczną zmianę parametru "Bad" na "Good" w PowerTop.
---
Dobra, poradziłem sobie tym skryptem:
#!/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
Ostatnio edytowany przez shevchenko1987 (2013-09-16 10:15:44)
Offline
Wprowadza urządzenia w tryb idle podczas pracy na baterii oraz wybudza je podczas podpięcia kabla AC :)
Offline
Ja mam u siebie skrypty w takiej postaci:
cat /etc/pm/power.d/pci_devices #!/bin/sh # # This script adjusts the power control of a set of PCI devices that # prove beneficial to enable power savings # PCI_DEVICES_PM_ENABLE="${PCI_DEVICES_PM_ENABLE:-true}" buslist="pci spi i2c" set_pci_device() { for dev in /sys/bus/pci/devices/* ; do if [ -e $dev/class -a -e $dev/power/control ]; then id=`basename $dev` case `cat $dev/class` in 0x020000) # ethernet echo "Setting Ethernet device $id to $1" echo $1 > $dev/power/control ;; 0x028000) # wireless echo "Setting Wireless device $id to $1" echo $1 > $dev/power/control ;; 0x040300) # audio echo "Setting Audio device $id to $1" echo $1 > $dev/power/control ;; 0x060000) # host bridge echo "Setting Host Bridge $id to $1" echo $1 > $dev/power/control ;; 0x080500) # SD card reader echo "Setting SD card reader device $id to $1" echo $1 > $dev/power/control ;; 0x088000|0x088001) # card reader echo "Setting card reader device $id to $1" echo $1 > $dev/power/control ;; 0x0c0000|0x0c0010) # firewire echo "Setting FireWire device $id to $1" echo $1 > $dev/power/control ;; esac fi done } case "$1" in true) # powersaving on [ "$PCI_DEVICES_PM_ENABLE" = true ] && set_pci_device "auto" for bus in $buslist; do for i in /sys/bus/$bus/devices/*/power/control; do echo auto > $i done done ;; false) # powersaving off [ "$PCI_DEVICES_PM_ENABLE" = true ] && set_pci_device "on" for bus in $buslist; do for i in /sys/bus/$bus/devices/*/power/control; do echo on > $i done done ;; *) exit 254 ;; esac exit 0
Każdy skrypt osobno dla odpowiedniej grupy urządzeń.
@shevchenko1987:
Sprawdź u siebie wartości ze swojego skryptu czy są takie same jakie masz w tym swoim skrypcie.
Niektóre ustawienia mogą się dublować ze standardowymi skryptami pm-utils Debiana.
Offline
Przepraszam, że odkopuje, ale mam problem odnośnie zarządzania procesorem. Zainstalowane cpufrequtils, kernel 3.11.3 aptosida, parametry dla i915 (w /etc/modprobe.d/i915.conf)- rc6=7 downlock=1 enable_fbc=1, na pamięć już to znam...
Do rzeczy, przy jednej karcie w chromie i oknie terminala procesor ma na wszystkich rdzeniach 1,8-2,4Ghz (sprawdzane w cpufreq-info, governor powersave, intel_pstate) i wydziela zauważalnie więcej ciepła niż trochę bardziej obciążony Windows.
Mam Jessie z openboxem, minimalna instalacja.
PS. Jak sprawdzić z jakimi parametrami zostały uruchomione moduły?
Pozdrawiam!
EDIT: Te parametry odnoszę się do karty graficznej zatem nie wiem po co o nich pisałem o.0
Ostatnio edytowany przez miszasty93 (2013-10-05 22:46:13)
Offline
skoro jedzie tak wysoko daj wyniki
cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_min_freq
cat /sys/devices/system/cpu/intel_pstate/*perf*
a na szybko drastycznie;
#!/bin/bash for i in /sys/devices/system/cpu/cpu*/cpufreq/; do echo "$(cat $i/cpuinfo_min_freq)" > "$i/scaling_max_freq" done
to obniża taktowanie do minimum i tak zostaje
oprócz tego czy masz w tym laptopie technologię nVidia Optimus? Też korzystam z intel_pstate i o ile porównując do wcześniejszego acpi_cpufreq (który też idealny nie był) średnio mi się podoba to przy Windows temperatury są znacznie lepsze. Podejrzewam po prostu, że może ta karta tak Ci temperaturę zawyża?
Ostatnio edytowany przez dominbik (2013-10-05 22:57:21)
Offline
cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_min_freq
1200000 1200000 1200000 1200000
cat /sys/devices/system/cpu/intel_pstate/*perf*
100 38
Hmmm, ten skrypt bardzo fajny, mam teraz 1,2Ghz na rdzeniu :) Co do Optimusa, wyłączyłem go na samym początku bbswitchem (na stronie Crunchbanga znalazłem ładny poradnik, wszystko gładko poszło) i temperatury powędrowały w dół.
PS. Pisząc tego posta, 3-4 minuty po odpaleniu skryptu temperatury spadły (wystarczy przyłożyć dłoń do wentylatora przy laptopie). A co do działania P State, na Windowsie na każdym z rdzeniu jest max 1,4Ghz, zaś na pingwinie MIN 1,8 (praktycznie). Boli to jednak trochę, mam wrażenie, że gdy autorzy zobaczyli, że sterownik "spełnia swoją rolę"- wypuścili go, szczegół, że robi to po macoszemu... śledzę trochę ten temat i od dawna w tej kwestii nic poważnego się nie stało.
Offline
a daj wynik dla pewności
dmesg | grep -i bbswitch
Offline
[ 18.838337] bbswitch: version 0.7 [ 18.838343] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0 [ 18.838348] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.PEGP [ 18.838412] bbswitch: detected an Optimus _DSM function [ 18.838453] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on [ 18.840933] bbswitch: disabling discrete graphics
Tamten skrypt do obniżania taktowania działa tylko do restartu laptopa, mogę go dodać do autostartu czy jest jakiś inny sposób by ustawić 1,2Ghz już zupełnie na stałe?
Offline
http://forum.dug.net.pl/viewtopic.php?id=24126
i tam też możesz dopisać;
min_freq="1200MHz" max_freq="1200MHz"
Offline
Hmm, utworzyłem /etc/default/cpufrequtils, wygląda tak:
GOVERNOR="powersave" max_freq="1200MHz" min_freq="1200MHz"
Jednak nie działa :/ Potem nadałem jeszcze temu prawa do czytania, pomysł?
Offline
a /etc/conf.d/cpufreq próbowałeś?
Offline
:/ Spróbowałem (nie mialem w ogóle katalogu conf.d), nie jest to przypadkiem jakiś Archowy sposób? Ja mam Jessie ;) Szukałem na internecie rozwiązań i nie znalazłem nic działającego...
Offline
no to dopisz do /etc/rc.local:
for i in /sys/devices/system/cpu/cpu*/cpufreq/; do echo "$(cat $i/cpuinfo_min_freq)" > "$i/scaling_max_freq"; done
Offline