Laptop-mode, jak wydluzyc prace laptopa na bateriach pod Ubuntu

Zrodlo informacji: http://ubuntu.pl/forum/viewtopic.php?p=123273
poniewaz czesto nie moge takich spraw odnalesc skopiowalem to do siebie.

Ponizsza procedura sprawdziła sie na IBM ThinkPad T40p.

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:
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:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies

W moim przypadku wynik był taki:

Kod:
1500000 1400000 1200000 1000000 800000 600000

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

Kod:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_governors

U mnie dało to:

Kod:
conservative powersave userspace ondemand 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:
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:
# Enable laptop mode when on battery power.
ENABLE_LAPTOP_MODE_ON_BATTERY=1

jeżeli wartośc jest “0” zmieniamy na “1”

Kod:
# Enable laptop mode when on AC power.
ENABLE_LAPTOP_MODE_ON_AC=1

wartość “0” zmieniamy na “1”

Kod:
# 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:
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:
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

Ja dokonałem jeszcze kilka modyfikacji ale nie są one wymagane:

np.

Kod:
CONTROL_READAHEAD=0
CONTROL_HD_IDLE_TIMEOUT=0

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

Kod:
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:
sudo gedit /etc/default/acpi-support

i z “false” zmieniamy na “true”:

Kod:
ENABLE_LAPTOP_MODE=true

Teraz uruchamiamy ponownie acpi-support:

Kod:
sudo /etc/init.d/acpi-support stop
sudo /etc/init.d/acpi-support start

Sprawdzamy czy laptop-mode działa:

Kod:
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:
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:
sudo gedit /etc/init.d/cpufreq.sh

o zawartości:

Kod:
#!/bin/sh
/usr/bin/cpufreq-selector -g performance $@

zapisujemy.
Nadajemy mu prawa do wykonywania:

Kod:
sudo chmod +x /etc/init.d/cpufreq.sh

i sprawiamy by uruchamiał się przy bootowaniu systemu:

Kod:
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.

3 thoughts on “Laptop-mode, jak wydluzyc prace laptopa na bateriach pod Ubuntu”

  1. Mysle ze tak, a jezeli nie zadziala to mozesz w odrotnej kolejnosci usunac calosc.
    Z tego co slyszalem Vaio nie sa zbyt przyjazne dla Linux’a.
    Musze powiedziec ze u mnie dziala bardzo bobrze z mozliwoscia suspend, niestety tylko hibernacji nie moge uruchomic ale to prawdopodobnie wina Beryl.
    Daj znac czy na Vaio sie kreci.

    Pozdrawiam Darek

Leave a Reply