Mein kleines Notebook hier hat mit Linux leider ein kleines Problemchen. Bei jeder noch so kleinen Belastung der CPU, dreht der Lüfter sofort hoch. Selbst das Aufrufen einer Webseite mit Firefox sorgt somit für Lärm im Raum. Die Lösung dafür war schon immer das Absenken der CPU-Spannung durch das Patchen eines Kernel-Moduls. Dadurch läuft das Gerät praktisch geräuschlos.

Nun baut Ubuntu jedoch seit Jaunty die dafür nötigen Kernel-Module fest in den Kernel ein. Dadurch ist es nicht mehr möglich nur das eine Kernel-Module zu patchen, es muss leider der gesamte Kernel neu kompiliert werden… Vor einigen Monaten habe ich bereits über eine Paketquelle mit einem „PHC-Kernel“ geschrieben, in der Hoffnung dass mit der Quelle die Kernel-Kompiliererei ein Ende hat, doch bislang war ich vom linux-phc Team etwas enttäuscht. Das PPA hat meiner Erinnerung nach, während der bisherigen Lebenszeit von Jaunty gerade mal ein Update erfahren.

Mit Ubuntu Karmic ändert sich das Vorgehen mal wieder etwas. Das PPA enthält nun einen Kernel, der die SpeedStep-Module komplett fehlen, so kann man sich die Kernelmodule selber erzeugen…

PHC-Kernel installieren

Den Anfang macht die Installation des angepassten Kernels, man kann den Kernel sowie die nötigen Bibliotheken und Tools für das Kompilieren des Kernelmoduls via…

$ sudo add-apt-repository ppa:linux-phc/ppa
$ sudo apt-get install build-essential linux-generic-phc linux-headers-generic-phc

…herunterladen und installieren. Nach der Installation startet man am besten den Rechner neu. Beim Booten steht jetzt ein zusätzlicher Kernel, der mit -phc endet, zur Verfügung. Speed-Stepping sollte mit diesem Kernel erstmal nicht funktionieren, wundert Euch also nicht wenn die CPU vorerst immer mit maximaler Taktrate läuft.

Kernelmodule erzeugen

Nun könnt Ihr euch aus dem Forum von linux-phc.org bereits gepatchte Kernelmodule herunterladen. Es gibt zwei Varianten, einmal phc-k8*.tar.gz für AMD X2, AMD Turion64 und AMD Turion X2 Prozessoren und einmal phc-intel*.tar.gz für Intel Mobile Centrino, Atom (N2xx) und Intel Core/Core2 CPUs. Ihr müsst das passende Kernelmodul wählen.

Ich habe hier ein Gerät mit einem alten Intel Centrino, daher führe ich das am Beispiel des gerade aktuellen Moduls phc-intel-0.3.2-8.tar.gz durch… Habt Ihr das Modul heruntergeladen, so müsst Ihr es entpacken und in das entstandene Verzeichnis wechseln…

$ tar -xzf phc-intel*
$ cd phc-intel*

Nun könnt ihr das Modul erzeugen, kompilieren und installieren. Dies könnt Ihr via…

$ make prepare
$ make
$ sudo make install
$ sudo modprobe phc-intel

…durchführen. Solltet ihr Schwierigkeiten dabei haben, so liefert die im Archiv enthaltene README Datei weitere Informationen. Den Erfolg könnt Ihr wieder via…

$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
16:33 14:33 12:20 10:14 8:6 6:4 

…ausprobieren. Ist das Modul erfolgreich gebaut worden und habt Ihr es via modprobe geladen, dann zeigt die Ausgabe von cat etwas an, falls die Ausgabe nichts bringt, dann hakt es irgendwo. Damit das Kernelmodul von nun an automatisch geladen wird, steckt ihr es in die Datei /etc/modules. Öffnet dazu die Datei in einen Editor mit Root-Rechten…

$ sudo gedit /etc/modules

und fügt die Zeile…

phc-intel

…ein. Speichert die Datei abschließend. Ihr seid damit noch nicht fertig… Ihr müsst noch passende Spannungswerte ermitteln und die Einstellungen permanent in Eurem System verankern. Seit Jaunty hat sich das Vorgehen nicht verändert. Informationen dazu findet Ihr im älteren Artikel PPA für Jaunty mit gepatchtem Kernel zum Undervolten.

Governor ohne PolicyKit-Abfrage ändern

Abschließend noch ein kleiner Tipp, der mit dem Thema hier nicht direkt etwas zu tun hat. In den Kommentaren zu Ubuntu Karmic Koala 9.10 aus meiner Sicht hat Christoph Wickert Hinweise gegeben, wie man auch mit PolicyKit-1 von GNOME aus Karmic die Taktrate bzw. den Governor ohne Passwortabfrage ändern kann. Ich füge dazu alle Benutzer, die den Governor ändern können sollen, in die Gruppe „users“ ein…

$ sudo adduser $USER users

(Kleiner Hinweis: Ihr müsst euch einmal aus und wieder einloggen. Erst dann werden die Gruppenzugehörigkeiten neu eingelesen) Danach könnt Ihr via…

$ sudo gedit /var/lib/polkit-1/localauthority/50-local.d/gnome-cpufreq.pkla

…die nötige Konfigurationsdatei erstellen. Als Inhalt fügt Ihr…

[Allow users to set the CPU frequency]
Identity=unix-group:users
Action=org.gnome.cpufreqselector
ResultAny=no
ResultInactive=no
ResultActive=yes

…ein. Danach könnt Ihr die Taktrate ohne die Eingabe eines Passwortes ändern.

guest
33 Kommentare
Inline Feedbacks
Zeige alle Kommentare
cywhale

Vielen Dank für den PHC-Beitrag/Artikel (wie sagt man jetzt eigentlich?) – werde ich auf meinem Samsung NC10 ausprobieren – unter Arch Linux hat das zwar nicht wirklich etwas gebracht, aber wer weiss…
Auf einem alten 1,5Ghz Centgrino (FSC Amilo 1425 meiner Frau) kann ich seit Jahren damit den Lärmpegel deutlich reduzieren 🙂

jgesel

@cywhale
Bitte berichte über den Erfolg, hab auch ein NC10, aber mir is das doch etwas zu heikel für den Falls das es nix bringt. war mit dem Lüftergedrehe noch nie zufrieden, neben einem systemweiten EQ übrigens meine einzigen Kritikpunkte an Ubuntu(Karmic).
Schöner Artikel btw

cywhale

So – „Erfolg“ auf dem NC10 nur teilweise, intel-phc läuft wie hier beschrieben soweit problemlos, ebenso die Installation an sich. Leider nur ändert sich das Lüfterverhalten nicht merklich (phc_control von 32/?/?/15 runter auf 20/15/15/15, 15 ist Minimum) – kann man mit PHC bei einem ATOM überhaupt noch etwas rausholen?

MB

Hi Christoph,

nachdem ich schon unter Jaunty dank Deiner exzellenten Anleitung meine CPU runtertakten konnte, will ich nun dasselbe unter Karmic tun. Im von Dir verlinkten Thema im lphc-Forum steht allerdings nun an erster Stelle:

„phc-intel-0.3.2-9 offtree — Using this package you can build a patched module outside the kernel tree. (You do not need to patch your Kernel anymore)“

Ich nehme an, für diesen Patch ist Deine Anleitung nicht mehr gültig, oder?

MB

Ich konnte meine Frage inzwischen selbst beantworten. Christophs Anleitung ist auch für das aktuelle
phc-intel-0.3.2-9 offtree package zusammen mit dem 2.6.31-17-generic-phc Kernel unverändert anwendbar.

Djon

Muss man die Aktion nach jedem Kernel-Update eigentlich wiederholen?

MB

Nein.

Djon

Bei mir gab es nach dem Kernel-Upgrade die Datei „phc_vids“ nicht mehr, obwohl es wieder um den PHC-Kernel gehandelt hat. Werde bei dem nächsten Upgrade die Sache genau untersuchen.

pheidrias

Wenn man den 04-prerelease nimmt, geht

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

nicht, stattdessen sollte

$ cat /sys/devices/system/cpu/cpu0/cpufreq/phc_rawcontrols
den gewünschten Erfolg bringen!

Außerdem muß man (zumindest ich mit Karmic Koala frisch) vor dem modprobe den Rechner neu starten, sonst schreibt er eine „Gerät beschäftigt“-Meldung!

moony

hallo,
gibt es irgendwo AMD-K7 patches dazu? im forum sind keine.
ich habe undervolting mit dem K7 und dem 2.6.33 kernel mit patch zum laufen bekommen, der kernel hat jedoch seine nachteile, da sich weder nvidia treiber noch lirc compilieren lassen.

Odysse

Hallo,
habe veruscht deine Anleitung zu folgen. Leider stosse ich nach der installation und erfolgreichem bootens des neuen phc-kernels beim kompilieren des intel-phc paketes auf folgendes problem und kann es nciht beheben:

odysse@MSI:/usr/src/phc-intel-0.3.2-10$ sudo make prepare
FOUND AVAILABLE PATCHSET. PREPARING.
patching file phc-intel.c
odysse@MSI:/usr/src/phc-intel-0.3.2-10$ sudo make
make -C /lib/modules/`uname -r`/build SUBDIRS= modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.31-20-generic-phc'
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
make[2]: *** Keine Regel vorhanden, um das Target »kernel/bounds.c«, 
  benötigt von »kernel/bounds.s«, zu erstellen.  Schluss.
make[1]: *** [prepare0] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.31-20-generic-phc'
make: *** [phc-intel.ko] Fehler 2

Leider weiss ich hier nicht weiter…habe die headers installiert…habe einen intel core 2 duo t3200…
Ist das vll das problem? Kann es aber dneke mal nicht sein da ich ja noch beim compilieren bin.
Bin für jede Hilfe dankbar.

Odysse

Hat sich erledigt.
Das Problem lag darin dass ich es mit sudo compilieren wollte.
HAb es nun im user home verzeichnis entpackt und mit normalen rechten compiliert, was tadellos funktionierte. So jetz kanns weiter gehn 😀

nobi

Hallo, ich hab mir gedacht, ich sollte mal was machen gegen den nervigen Fan/Lüfter. Ich glaube auch, dass der meinem Akku ganz schön geschadet hat – na ja, wer weiß?

Leider bekomme ich eine Fehlermeldung:
~/Temp/phc-intel-0.3.2-10$ sudo modprobe phc-intel
FATAL: Error inserting phc_intel (/lib/modules/2.6.31-20-generic/extra/phc-intel.ko): Device or resource busy
Was läuft da falsch? Ich habe es auch extra bei CPU 2% Last probiert.

Wie schau ich mir denn nochmals die Prozessor-Daten an? Ich weiß nicht genau, was bei mir verbaut ist – gerade noch, dass es ein Intel ist.

Eduard

Hallo Jungs,

gestern gabs von Ubuntu ein Kernel-Update auf 2.6.32-22-generic.
Leider kam seiten PHC noch kein Update, oder ist es nur bei mir so?

sudo apt-get install linux-generic-phc linux-headers-generic-phc

linux-generic-phc is already the newest version.
linux-headers-generic-phc is already the newest version.

Grüße
Eduard

Eduard

Hi Christoph,

ja genau aus dieser Quelle 🙂
OK, dann trinken wir mal etwas Tee 🙂

Noch eine Frage habe, und zwar:
wenn im Ubuntu-Update ein neuer offizieller Kernel angeboten wird, sollte man den dann einfach nur rausnehmen und nur die restlichen Programme updaten?

Und einen Kernel-Update nur machen, wenn dieser von PHC angeboten wird?

Grüße
Eduard

cywhale

@nobi: Man muss vor dem Laden von phc-intel mit „sudo rmmod acpi-cpufreq“ selbiges Modul entladen da phc-intel acpi-cpufreq ersetzt.

@all: Keine Ahnung seit wann aber der 2.6.32.23 ist im PHC-PPA und die Anleitung funktioniert weiterhin einwandfrei, danke 🙂

woelffchen

Was passiert nach erfolgter phc-Installation, wenn ich den „normalen“ Ubuntu-Kernel starte?
Modul „phc-intel“ wird nicht mitgeladen, „acpi-cpufreq“ ist mit rmmod entfernt. Trotzdem scheint die Prozessortaktung zu funktionieren.
lg

Djon

Wie sieht es eigentlich mit PHC unter Ubuntu 10.10 aus? Ich habe versucht es zu installieren, doch leider kommt es bei dem 2.6.35er Kernel zu einer Fehlermeldung :-/

manuuu

Ubuntu 10.10 + PHC funktioniert.
Jedoch abhängig vom Kernel. Im ¨offizielen¨ offtree-Paket wird nur bis Kernel (2.6.34-xx) unterstützt.
Irgendwo im Forum dort wird ein Paket angeboten bis 2.6.36.
ODER:
http://openmindedbrain.info/26/10/2010/undervolting-in-ubuntu-10-10-maverick/

Andrej

Hallo, habe heute PHC installiert und es hat auch geklappt, aber wenn ich mir die Werte ausgeben lasse:

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

dann sieht es so aus:

12:19 10:21 8:23 0:30

Ist das in Ordnung?! Weil wie ich das verstehe, dass bei niedrigster Taktung die CPU mit höherer Spannung versorgt wird… Ich habe auch bisschen experimentiert und wenn ich die Zahl nach Doppelpunkt höher setze dann wird die Temperatur niedriger und umgekehrt, die Temperatur wird höher wenn die Zahl kleiner gesetzt wird.

Habe ich was falsch gemacht?

Andrej

Habe vergessen meine Notebookspezifikationen zu geben:

OS: Ubuntu 12.04 32-bit
CPU: AMD Turion 64 X2 TL-60