Zarządzanie częstotliwością procesora w laptopie

Pomogło?

Nie
44
81%
Nie
10
19%
 
Liczba głosów: 54
EDzior
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 30 cze 2006, 00:29
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Kontakt:

Zarządzanie częstotliwością procesora w laptopie

Post autor: EDzior »

Poniższe How-To ma za zadanie ułatwić zarządzanie częstotliwością procesora na komputerach przenośnych. Domyślnie Ubuntu nie wykorzystuje maximum prędkości procesora, nawet podczas podłączenia do zasilania. Wiem, że problem był już poruszany, ale postanowiłem nieco bardziej szczegółowo opisać problem. Proponowane przeze mnie rozwiązanie oparte jest na wiadomościach zebranych na tym forum, forum ubuntuforums.org, wiadmościach znalezionych w sieci i odrobinie własnej inwencji ;) Jest to moje pierwsze How-To więc proszę o wyrozumiałość ;) Mam nadzieję, że komuś okaże się przydatne. Aha, jeżeli ktoś zdecyduje się skorzystać z podanych tu rozwiązań, robi to na własną odpowiedzialność :) Jeżeli komuś wybuchnie laptop, to ja umywam ręce ;)
Do rzeczy.

Rozwiązanie testowane było na:

Laptop: HP Compaq nx9105 z procesorem Mobile AMD Sempron 2800+
System: Ubuntu 6.10 Edgy Eft
Kernel: dystrybucyjny 2.6.17-10-generic

Wymagane pakiety: gnome-applets laptop-mode-tools acpi-support
Powyższe paczki powinny znajdować się w systemie po standardowej instalacji, jeżeli jednak ich nie posiadamy to oczywiście:

Kod: Zaznacz cały

sudo apt-get install gnome-applets laptop-mode-tools acpi-support
Na początek zajmiemy się modyfikacją pliku konfiguracyjnego /etc/laptop-mode/laptop-mode.conf , który informuje skrypt /etc/init.d/laptop-mode w jaki sposób zarządzać energią, procesorem itp. Możemy tam znaleźć mnogość opcji ale my zajmiemy się tymi dotyczącymi procesora.
Wcześniej jednak musimy się dowiedzieć jakie częstotliwości i zarządców obsługuje nasz procesor.
Aby sprawdzić obsługiwane częstotliwości wpisujemy w terminalu:

Kod: Zaznacz cały

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
W moim przypadku wynik był taki:

Kod: Zaznacz cały

1600000 800000
Aby sprawdzić obsługiwanych zarządców:

Kod: Zaznacz cały

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors
U mnie dało to:

Kod: Zaznacz cały

powersave userspace ondemand conservative performance
Oczywiście podane częstotliwości i zarządcy mogą się różnić w zależności od posiadanego procesora.

Teraz możemy przejść do modyfikacji pliku laptop-mode.conf korzystając z wartości podanych przez wypisane wyżej polecenia:

Kod: Zaznacz cały

sudo gedit /etc/laptop-mode/laptop-mode.conf
Proponowane przeze mnie modyfikacje (nie będę się rozpisywał czemu one służą, gdyż w pliku każda opcja jest opisana):

Kod: Zaznacz cały

# Enable laptop mode when on battery power.
ENABLE_LAPTOP_MODE_ON_BATTERY=1
jeżeli wartośc jest "0" zmieniamy na "1"

Kod: Zaznacz cały

# Enable laptop mode when on AC power.
ENABLE_LAPTOP_MODE_ON_AC=1
wartość "0" zmieniamy na "1"

Kod: Zaznacz cały

# Should laptop mode tools control the maximum CPU frequency?
CONTROL_CPU_FREQUENCY=1
wartość "0" zmieniamy na "1"

Poniższe opcje modyfikujemy wstawiając wartości podane nam wcześniej przez polecenia:

Kod: Zaznacz cały

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors
U mnie wygląda to tak:

Kod: Zaznacz cały

BATT_CPU_MAXFREQ=800000
BATT_CPU_MINFREQ=800000
BATT_CPU_GOVERNOR=powersave
LM_AC_CPU_MAXFREQ=1600000
LM_AC_CPU_MINFREQ=800000
LM_AC_CPU_GOVERNOR=userspace
NOLM_AC_CPU_MAXFREQ=1600000
NOLM_AC_CPU_MINFREQ=1600000
NOLM_AC_CPU_GOVERNOR=performance
I to w zasadzie wszystko w tym pliku. Ja dokonałem jeszcze kilka modyfikacji ale nie są one wymagane:

np.

Kod: Zaznacz cały

CONTROL_READAHEAD=0
CONTROL_HD_IDLE_TIMEOUT=0

Teraz sprawiamy by skrypt laptop-mode urochamiał się podczas bootowania systemu:

Kod: Zaznacz cały

sudo update-rc.d laptop-mode multiuser
To jednak nie wszystko. Laptop-mode nie będzie działało jeżeli nie powiadomimy o tym ACPI.

Kod: Zaznacz cały

sudo gedit /etc/default/acpi-support
i z "false" zmieniamy na "true":

Kod: Zaznacz cały

ENABLE_LAPTOP_MODE=true
Teraz uruchamiamy ponownie acpi-support:

Kod: Zaznacz cały

sudo /etc/init.d/acpi-support stop
sudo /etc/init.d/acpi-support start
Sprawdzamy czy laptop-mode działa:

Kod: Zaznacz cały

cat /proc/sys/vm/laptop_mode
Jeżeli dostajemy wartość inną niż "0" tzn. że jest uruchomione.
Jeżeli nie, proponuje po prostu zrestartować system.

Ok. Teraz aby móc monitorować na bieżąco i ręcznie ustawiać częstotliwość procka za pomocą apletu gnome wpisujemy:

Kod: Zaznacz cały

sudo dpkg-reconfigure gnome-applets
i dajemy odpowiedź "tak".

Potem już tylko:
prawy przycisk myszy na penelu->dodaj do panelu->monitor częstotliwości procesora
W preferencjach ustawiamy: wyświetlanie menu->zarządcy i częstotliwości

I w zasadzie to wszystko. Teraz przy podłączeniu do zasilania, GNOME pracuje, w moim przypadku, przy prędkości procka 1,6 GHz (max.prędkość) a przy korzystaniu z baterii 800 MHz. Oczywiście, automatycznie się przełączając, przy podłączaniu/odłączaniu zasilania.
Jest jeszcze jedna sprawa, która nie dawała mi spokoju. Przy takiej konfiguracji laptop-mode, podczas uruchomienia GNOME, procesor ustawiany jest na połowę "mocy" (800MHZ-nawet przy podłączonym zasilaniu). Oczywiście można to zmienić za pomocą apletu gnome, ale drażniło mnie to, że musiałem to robić przy każdym restarcie systemu. Aby to ominąć możemy stworzyć "mini-skrypt", który będzie ustawiał procesor na max prędkości, w końcowej fazie bootowania systemu.

Kod: Zaznacz cały

sudo gedit /etc/init.d/cpufreq.sh
o zawartości:

Kod: Zaznacz cały

#!/bin/sh
/usr/bin/cpufreq-selector -g performance $@
zapisujemy.
Nadajemy mu prawa do wykonywania:

Kod: Zaznacz cały

sudo chmod +x /etc/init.d/cpufreq.sh
i sprawiamy by uruchamiał się przy bootowaniu systemu:

Kod: Zaznacz cały

sudo update-rc.d cpufreq.sh start 90 2 3 4 5 . stop 90 0 1 6 .
Teraz przy starcie GNOME procek pracuje z max. prędkością, przy podłączonym zasilaniu. Możemy ją obniżyć, gdy zechcemy, korzystając z apletu gnome.

I to chyba wszystko. Może komuś się to przyda. Oczywiście jestem otwarty na wszelkie uwagi i poprawki.
Pozdrawiam.
ODPOWIEDZ

Wróć do „Instalacja i konfiguracja systemu”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 69 gości