[HOWTO] Linux-PHC - undervolting dla procesorów Intel
: 12 sty 2009, 22:21
Zmniejszenie napięcia(ang. undervolting) dla procesorów Intel. Tą technikę stosujemy z trzech powodów:
Jeśli po wpisaniu polecenia nie wyświetli się lista podobna do powyższej how-to niestety nie jest przeznaczone dla Ciebie.
2. Musisz posiadać zmodyfikowaną wersję modułu <strong>acpi_cpufreq</strong> z wbudowanym PHC(processor hardware control). Jest kilka sposobów, żeby ją zdobyć:
a) Można ściągnąć patch ze <a href="http://phc.athousandnights.de/">tej strony</a> i skompilować moduł na własną rękę.
Mini-Howto kompilacji modułu (z wątku Ares'a Drake)
kopiujemy /boot/config-$(uname -r) to /home/"katalog-domowy"/"wersja-kernela?
kopiujemy pliki nagłówkowe:
Skompilowany moduł znajdziemy w katalogu /home/"katalog-domowy"/"wersja-kernala"/arch/x86/kernel/cpu/cpufreq
Kolejne kroki wykonujemy jak w przypadku ściągnięcia pre-kompilowanego modułu(patrz 2.c).
<strong>b)</strong>Ściągnij <strong>pre-kompilowany moduł</strong> z <a href="http://ubuntuforums.org/showthread.php?t=786402">tego wątku</a>. Musi być zgodny z wersją kernela.
<em>Krok drugi należy powtarzać za każdym razem, gdy instalujemy nową wersję kernela.</em>
<strong>3.</strong> Restartujemy system. Sprawdzamy czy wszystko działa wpisując:
W konsoli powinny się wyświetlić pary napięciowe jak poniżej:
<strong>4.</strong> Nadszedł czas na znalezienie najniższego bezpiecznego napięcia. W tym celu ściągamy <a href="http://www.s3pp.de/misc/linux-phc-optimize.bash">skrypt optymalizacji</a> i <a href="http://www.s3pp.de/misc/functions.bash">dodatkowe funkcje</a>. Dodajemy uprawnienia uruchamiania ('chmod u+x' plik) i w konsoli wpisujemy:
Powyższy skrypt wymaga <strong>cpuburn</strong>, który można zainstalować przez synaptic lub apt. Skrypt będzie krok po kroku obniżał napięcie, aż to zawieszenia systemu(w moim przypadku system nie padł). Skrypt należy uruchomić 4-6 razy w zależności od ilości dostępnych częstotliwości procesora.
<em>Skrypt może zawiesić system. To nie powinno spowodować uszkodzenia hardware, ale może uszkodzić system plików lub niektóre dane na dysku. Po restarcie warto odpalić fsck</em>
<em>W przypadku dwurdzeniowych procesorów należy odpalić skrypt w dwóch terminalach.</em>
W wyniku dostajemy w pliku tekstowym zoptymalizowane pary napięciowe.
<strong>5.</strong> Aby używać zoptymalizowanych wartości za każdym razem musimy je przekazać do /sys/devices/system/cpu/cpu0/cpufreq/phc_controls. Najłatwiejszym sposobem jest dopisanie poniższej komendy do pliku <strong>/etc/rc.local</strong>:
Należy pamiętać, żeby wpisać własne pary napięciowe.
<strong>6.</strong> Sprawdzenie czy wszystko działa:
Sprawdź czy po restarcie systemu dostajesz nowe pary napięciowe.
Strony z których korzystałem:
<a href="http://phc.athousandnights.de/">Oficjalna strona PHC</a>
<a href="http://ubuntuforums.org/showthread.php?t=786402">Ubuntu forum - wątek Ares'a Drake</a>
Mam nadzieję, że jest w miarę zrozumiałe i się komuś przyda:)
- Redukcja poboru prądu
- Redukcja wydzelanego ciepła
- Redukcja szumu wentylatora
Kod: Zaznacz cały
lsmod | grep acpi_cpufreq
Kod: Zaznacz cały
acpi_cpufreq 19468 1
freq_table 12672 3 acpi_cpufreq,cpufreq_stats,cpufreq_ondemand
processor 42156 4 acpi_cpufreq,thermal
2. Musisz posiadać zmodyfikowaną wersję modułu <strong>acpi_cpufreq</strong> z wbudowanym PHC(processor hardware control). Jest kilka sposobów, żeby ją zdobyć:
a) Można ściągnąć patch ze <a href="http://phc.athousandnights.de/">tej strony</a> i skompilować moduł na własną rękę.
Kod: Zaznacz cały
uname -r
Kod: Zaznacz cały
sudo apt-get install build-essential linux-source
Kod: Zaznacz cały
tar jxvf "wersja-kernela".tar.bz2
Kod: Zaznacz cały
cd /home/"katalog-domowy"/"wersja-kernela"
Kod: Zaznacz cały
cp /boot/config-$(uname -r) /home/"katalog-domowy"/"wersja-kernela?
Kod: Zaznacz cały
cp /usr/src/linux-headers-`uname -r`/Module.symvers /home/"katalog-domowy"/"wesja-kernela"
Kod: Zaznacz cały
patch -p1 < linux-phc*.patch
make oldconfig
make prepare
make scripts
make M=./arch/x86/kernel/cpu/cpufreq
Kolejne kroki wykonujemy jak w przypadku ściągnięcia pre-kompilowanego modułu(patrz 2.c).
<strong>b)</strong>Ściągnij <strong>pre-kompilowany moduł</strong> z <a href="http://ubuntuforums.org/showthread.php?t=786402">tego wątku</a>. Musi być zgodny z wersją kernela.
- Tworzymy kopię zapasową starego modułu:
</li>
Kod: Zaznacz cały
sudo cp /lib/modules/`uname -r`/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko /lib/modules/`uname -r`/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko.old
- Żeby sprawdzić wersję kernela w konsoli wpisujemy:
Kod: Zaznacz cały
uname -r
Kod: Zaznacz cały
sudo cp acpi-cpufreq.ko /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq
<strong>3.</strong> Restartujemy system. Sprawdzamy czy wszystko działa wpisując:
Kod: Zaznacz cały
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
Kod: Zaznacz cały
12:43 10:34 8:25 6:15
Kod: Zaznacz cały
sudo ./linux-phc-optimize.bash
<em>Skrypt może zawiesić system. To nie powinno spowodować uszkodzenia hardware, ale może uszkodzić system plików lub niektóre dane na dysku. Po restarcie warto odpalić fsck</em>
<em>W przypadku dwurdzeniowych procesorów należy odpalić skrypt w dwóch terminalach.</em>
W wyniku dostajemy w pliku tekstowym zoptymalizowane pary napięciowe.
<strong>5.</strong> Aby używać zoptymalizowanych wartości za każdym razem musimy je przekazać do /sys/devices/system/cpu/cpu0/cpufreq/phc_controls. Najłatwiejszym sposobem jest dopisanie poniższej komendy do pliku <strong>/etc/rc.local</strong>:
Kod: Zaznacz cały
echo "12:21 10:1 8:1 6:1" > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
<strong>6.</strong> Sprawdzenie czy wszystko działa:
Kod: Zaznacz cały
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
Strony z których korzystałem:
<a href="http://phc.athousandnights.de/">Oficjalna strona PHC</a>
<a href="http://ubuntuforums.org/showthread.php?t=786402">Ubuntu forum - wątek Ares'a Drake</a>
Mam nadzieję, że jest w miarę zrozumiałe i się komuś przyda:)