Linux und Ich

Blog über Ubuntu, Linux, Android und IT

Lizenziert unter CC by-sa von William Hook auf Flickr

PPA für Jaunty mit gepatchtem Kernel zum Undervolten

| 19 Kommentare

Mein kleines, aber feines Fujitsu-Siemens Lifebook S6120 hat nun schon mehrere Jahre auf dem Buckel, doch durch ein bisschen Rücksicht und Pflege reicht mir das Notebook immer noch als ordentliche Schreibmaschine mit vielen Extras locker aus.

Das Notebook funktionierte schon immer mit Ubuntu wunderbar, doch seit Jaunty gibts (jetzt gab es) es ein Problem, das mich doch wurmte. Da der Lüfter des Notebooks sofort hochdreht, wenn die CPU auch nur ein bisschen hochtaktet, ist es in stillen Umgebungen recht unangenehm mit dem Notebook zu arbeiten. Deshalb habe ich bisher immer ein Kernelmodul angepasst, um die Prozessorspannung absenken zu können. Ein netter Nebeneffekt ist natürlich, dass dadurch der Akku etwas länger hält…

In Jaunty haben die Entwickler jedoch beschlossen diese Module fest in den Kernel zu integrieren. Dies hat zur Folge dass man – wenn man die CPU mit einer geringeren Spannung betreiben möchte – den gesamten Kernel kompilieren müsste. Das bedeutet, dass man einigen Aufwand betreiben muss, um das – was bisher in Minuten zu erledigen war – zu erreichen.

PHC-Kernel installieren

Nun gibt es seit kurzem jedoch eine Paketquelle, aus der man den aktuellen Kernel von Jaunty inklusive dem Patch zum Absenken der CPU-Spannung installieren kann. So kann man ohne große Schwierigkeiten diesen angepassten Kernel installieren. Dazu bearbeitet man – wie so oft – die sources.list über beispielsweise

$ sudo gedit /etc/apt/sources.list

und fügt die zuvor genannte Paketquelle über die Zeilen

deb http://ppa.launchpad.net/linux-phc/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/linux-phc/ppa/ubuntu jaunty main

ein. Die Pakete in der Quelle sind signiert, so dass die Paketverwaltung bei der Installation von Paketen aus dieser Quelle meckern würde. Damit dies nicht geschieht, fügt man über

$ sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 4D950ED1

den Schlüssel der Quelle zum eigenen System hinzu. Nun kann man über

$ sudo apt-get update && sudo apt-get dist-upgrade

die Paketquellen neu einlesen lassen und gleich ein Upgrade ausführen. Einen Hinweis muss hier hierzu geben. Beim Upgrade wird der “original” Kernel überschrieben. D.h. hat man nur einen Kernel im System installiert, so hat man keinen von Canonical veröffentlichten Kernel mehr installiert! Nach dem Upgrade muss man das System neu starten… Nach dem Neustart kann man den Erfolg der Aktion über

$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls 
16:49 14:45 12:36 10:29 8:21 6:16 

prüfen. Erscheint diese – oder eine ähnliche Ausgabe – so wurde der gepatchte Kernel installiert und man kann sich daran machen die CPU-Spannung abzusenken. Ausführliche Informationen hierzu findet man beispielsweise im Wiki von ubuntuusers.de unter Prozessorspannung absenken.

Spannung absenken

Ich möchte hier eigentlich nur auf das Fujitsu-Siemens Lifebook S6120 eingehen. Ich persönlich installiere über

$ wget http://media.ubuntuusers.de/wiki/attachments/02/28/undervolt_
$ sudo cp undervolt_ /etc/init.d/undervolt
$ sudo chmod +x /etc/init.d/undervolt
$ sudo update-rc.d undervolt defaults 

ein kleines init-Skript, das die Anpassung der CPU-Spannung beim Booten übernimmt. Das Skript alleine reicht noch nicht aus, es braucht eine Konfigurationsdatei. Über

$ sudo mkdir /etc/phc-config
$ sudo gedit /etc/phc-config/undervolt

kann man diese erstellen. Für ein Fujitsu-Siemens Lifebook S6120 empfehle ich diese Einstellungen.

# CONFIG_FILE FOR UNDERVOLTAGING#

# Path to the voltage table sysfs interface file
VTABLE_PATH="/sys/devices/system/cpu/cpu0/cpufreq/phc_vids"

# Switch back to DEFAULT_VTABLE if undervoltage is stopped? [yes/no]
SWITCH_BACK="yes"

# Default voltages that will be restored at shutdown if SWITCH_BACK=yes
# DEFAULT_VTABLE="15 14 13 11 10 7"

DEFAULT_VTABLE="49 45 36 29 21 16"

# Custom voltages that will be applied at boot time
# CUSTOM_VTABLE="8 6 4 2 1 0"

CUSTOM_VTABLE="33 33 20 14 6 4"

# Set the following to "yes" when the all the settings are configured
# This is a safety to disable setting the voltages with the default
# values of this file that are probably wrong for your CPU 

IS_CONFIGURED="yes"

Andere Notebooks brauchen mit SICHERHEIT andere Werte – Daher eine Bitte liebe Leser: Übernehmt nicht blind diese Einstellungen!

Hat man die Datei gespeichert, so kann man das Absenken der CPU-Spannung sofort starten. Dazu führt man das zuvor erstellte init-Skript aus.

$ sudo /etc/init.d/undervolt start
change CPU Voltage Table
Current table:     49 45 36 29 21 16
Configured table:  33 33 20 14 6 4
Applied table:     33 33 20 14 6 4

Ab jetzt läuft die CPU gerade bei niedrigen Taktraten mit einer deutlich niedrigeren Spannung. Die von mir empfohlenen Werte benutze ich nun schon seit Jahren, ohne dass ich Probleme feststellen konnte. Beim Absenken der CPU-Spannung sollte man jedoch vorsichtig vorgehen. Zwar kann man nichts kaputt machen, doch senkt man die Spannung zu weit ab, so kommt es früher oder später zu Abstürzen.

Autor: Christoph

Hallo, ich bin Christoph -- Linux-User, Blogger und pragmatischer Fan freier Software. Wie Ihr ohne Zweifel bemerkt haben solltet schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen, sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Google+ oder Twitter oder natürlich dem Blog folgen.

19 Kommentare

  1. Der neue Kernel ist nicht nur in dieser Hinsicht nicht gelungen. Neben diesen Modul haben sie auch das IPV6-Modul fest integriert. Das hat zur Folge, dass man es nicht mehr so einfach deaktivieren kann und man Verbindungsabbrüche hat. Lösungen aus den Internet halfen auch nicht, so dass ich bei meinen Netbook ein “downgrade” gemacht habe.

    Vielleicht wird ja mit 9.10 wieder alles besser.

  2. @Thomas
    Ich kann nicht beurteilen, was die Entwickler dazu veranlasst hat diese Kernelmodule fest einzucompilieren. Nervig ist es natürlich, wenn man hier Anpassungen vornehmen will. Obs weitere Vor- oder Nachteile gibt kann ich nicht beurteilen.

    @Dudley
    Ja, die 1.4 Ghz CPU hat andere Taktstufen. Die Werte sehen OK aus, ob sie auch OK sind, das wirst du selber merken. Ich teste das meist indem ich die Taktrate fest setze und dann mit

    md5sum /dev/urandom
    

    ein paar Minuten viel Last erzeuge. Bleibt der Rechner stabil, so könntest du die Spannung noch etwas absenken. Gibt auch Skripte, die das automatisiert austesten. Ich kann aber mit meinen Werten ganz gut leben, daher investiere ich da keine weitere Zeit rein.

  3. Danke für die ausführliche Anleitung.

    Ein bisschen knobeln musste ich dennoch, hab nämlich das 6120 mit der 1,4 Ghz CPU (nicht wie du die 1,6er). Daher kam es bei mir nach Aufruf des Undervolt Start-Scripts zu einem totalen Freeze des Systems. Problem waren die Werte für die einzelnen Taktstufen, derer es bei mir nur 5 gibt nicht 6. Bei sieht’s jetzt so aus:

    Current table:     49 46 38 30 16
    Configured table:  33 33 20 14 4
    Applied table:     33 33 20 14 4
    

    War mir nicht ganz schlüssig, was sagst du zu den Werten?

  4. Soo, also eine Woche später und mich echt bedanken. So selten habe mich meinen Lüfter wohl noch nie gehört, und das Notebook läuft quasi täglich mehrere Stunden. Auch bei CPU Last verhält es sich mit den gewählten Werten absolut stabil.

    Nun hoffe ich bloß, dass das PPA Repo auch ordentlich gepflegt wird, wäre ja ein bisschen mehr-Arbeit wenn man den Kernel nicht so einfach fertig vorgesetzt bekommt. Ich fauler Sack ich ;-) – schönen Sonntag noch…

  5. Dudley, gern geschehen. Abwarten, mit dem PPA habe ich keine große Erfahrung gemacht, allerdings gibts ja nicht sooooo oft einen neuen Kernel. Von daher mache ich mir da keine großen Sorgen.

  6. Hallo Dave, läuft denn der richtige Kernel? Wenn du

    $ uname -ar
    Linux stein 2.6.28-11-generic #43~undervolt1-Ubuntu SMP Fri Apr 17 18:32:02 UTC 2009 i686 GNU/Linux
    

    eingibst muss etwas von “undervolt” ausgegeben werden…

  7. Ja das kann ich bestätigen.

    Die Ausgabe gleicht deiner Version in allen Belangen.

  8. Dann läuft der richtige Kernel. Von da ab werde ich dir leider nicht helfen können. Die größte Chance auf Hilfe hast du wohl beim linux-PHC Projekt selber. Die betreiben ein Forum unter http://www.linux-phc.org/forum/viewforum.php?f=8 Vielleicht kann man dir da helfen.

  9. Danke für deine Mühe.

    Melde mich wieder wenn ich eine Lösung gefunden habe.

  10. Hallo,

    Ich hab ein neuen Ubuntu installiert und wollte, da auch mein Laptop (FS Amilo 1425m) ohne Vmod nicht zu ertragen ist, über dein Tutorial entsprechende Anpassungen vornehmen.

    Ich kann den ganzen Prozess durchlaufen aber wenn ich nach dem reboot den Befehl

    cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
    

    ausführe bekomme ich

    No such file or directory
    

    Bräuchte einen Tritt in die richtige Richtung oder die schlaue Frage die ich mir noch nicht gestellt habe.

    TIA

  11. Hab noch vergessen zu erwähnen:

    lsmod | grep acpi
    lsmod | grep speed
    

    liefern beide kein Ergebnis zurück

  12. PROBLEM SOLVED:

    Die Lösung: “Load Optimized Defaults” im BIOS durchführen.

    Die FS Jungs haben echt verstanden wie man sich Freunde macht.

    Dein Tutorial ist TOP! Danke dafür.

  13. Freut mich dass es geklappt hat. Bei solchen Sachen ist es sicher nie schlecht mal einen Blick in das BIOS zu werfen. Manchmal ists besser die default-Werte zu laden, manchmal muss man ein paar Einstellungen ändern. Aber gut dass es geklappt hat :)

  14. Ah, ich hab wohl schon ins BIOS geguckt als auch ein Update des Selbigen gefahren. Das BIOS des Amilo M1425 ist aber so spartanisch wie nur irgend geht, dass man garnicht auf die Idee kommt das es damit etwas zu tun haben könnte.

    Ich kann dort z.B. Speedstep nicht selbst einstellen, was ja dann durch laden der “optimized defaults” aktiviert wurde.

  15. Gibt es diesen Patch auch irgendwo ohne, dass der Kernel dranhängt zum Download?

  16. Entschuldigung für diese Doppelantwort, NoScript hat mal wieder zugeschlagen ;-)

  17. Die Patche findest du hier http://www.linux-phc.org/forum/viewtopic.php?f=13&t=2 Allerdings muss unter Jaunty der Kernel in jedem Fall entweder selber kompiliert, oder über das PPA ersetzt werden.

  18. Wollte mal fragen, was den die Werte zu bedeuten habe, und an welchen Werten ich mich orientieren muss? Also wo bekomme ich erstmal die Default-Werte hier.

    Ich habe hier einen Vostro 1520 mit einer 2.2 GHz CPU und folgendes zeigt er mir an:

    xzise@fabian-m:~$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
    75:39 11:35 8:25 6:1

    Ich benutze Ubuntu 9.10 mit dem -19 phc Kernel

    MfG
    xZise

  19. Die Default-Werte hast du ja schon…

    $ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
    75:39 11:35 8:25 6:1
    

    Also “39 35 25 1″, von diesen Werten aus, kannst du dich langsam nach unten arbeiten.

Hinterlasse eine Antwort

Auf Linux und Ich darf anonym kommentiert werden. Die Felder für Name und E-Mail-Adresse dürfen beim Eintragen eures Kommentars leer bleiben. Ich freue mich aber über jeden Kommentar, zu dem der Autor mit seinem Namen steht.