C3/C4 fiepen beim Lenovo Thinkpad T400s & Ubuntu 9.04/9.10 64 Bit deaktivieren

Das sogenannte C3- bzw. C4-Fiepen (Ton im Hohen Frequenzbereich, welcher von vielen Menschen garnicht wahrgenommen wird ;)) tritt durch thermische Verformung von Bauteilen, hervorgerufen durch den ständig ändernden Stromverbrauch (dieser wiederum verursacht durch die Stromsparmodi C3 bzw. C4 der CPU), auf.

In diese Modi schaltet die CPU nur, wenn diese (nahezu) keine Last hat. Um zu verhindern, dass die CPU in diese Modi herunterfährt, kann man diese durch das hinzufügen der Option „processor.max_cstate=2“ zum verwendeten Kernel im Grub (/boot/grub/menu.lst) deaktivieren.

Dies kann dann z.B wie gefolgt aussehen:

kernel          /boot/vmlinuz-2.6.28-15-generic root=/dev/sda1 ro quiet splash processor.max_cstate=2

Diese Modi sind übrigens genau wegen dem beschriebenen Problem bei verschiedenen Herstellern von Haus aus schon deaktiviert.

Um zu überprüfen, ob die Modi nun auch wirklich abgeschaltet wurden, schauen wir uns noch den Inhalt der Datei „/proc/acpi/processor/CPU1/power“ an:

root@t400s:/# cat /proc/acpi/processor/CPU1/power | grep max_cstate
max_cstate:              C2

Mein T400s ist nun (dank SSD) wieder komplett lautlos – so muss es sein ;)

Kleiner Nachteil: das Notebook benötigt je nach CPU 2-4 Watt mehr, aber lieber eine um 5 Minuten verkürzte Akkulaufzeit als ein nerviges fiepen!

27 Gedanken zu “C3/C4 fiepen beim Lenovo Thinkpad T400s & Ubuntu 9.04/9.10 64 Bit deaktivieren

  1. Hallo,

    ich habe seit 3 Tagen auch ein T400s und die ersten beiden Tage habe ich das Piepen nicht wahrgenommen bzw. war es nicht vorhanden.

    Leider ist seit gestern Abend dieses nervige Geräusch da und ich bekomme es einfach nicht weg. Über weitere Hilfe würde ich mich sehr freuen!

    Der CState ist bereits auf C2 abgewandelt, vorher stand hier C8.

    tow@lenovot400s:~$ cat /proc/acpi/processor/CPU1/power
    active state: C0
    max_cstate: C2
    bus master activity: 00000000
    maximum allowed latency: 2000000000 usec
    states:
    C1: type[C1] promotion[–] demotion[–] latency[001] usage[00000032] duration[00000000000000000000]
    C2: type[C2] promotion[–] demotion[–] latency[001] usage[00462706] duration[00000000003330900548]
    C3: type[C3] promotion[–] demotion[–] latency[057] usage[00000000] duration[00000000000000000000]
    tow@lenovot400s:~$

    Was könnte ich jetzt noch machen?

    Allerdings kann ich mir aktuell nicht vorstellen, dass es an der Prozessor-Last liegt. Denn auch wenn ich ein größeres Programm compiliere (hohe System-Last) ist das Piepen noch unverändert und deutlich wahrzunehmen.

    Ich verstehe aber auch nicht warum es in den ersten 2 Tagen nicht gepiepst hat.

    Danke im Voraus für hilfreiche Kommentare.

    Viele Grüße

  2. hallo nauni1977,
    das piepsen bei cstate 0-2 ist eigentlich untypisch.
    hat sich das piepsen durch veränderung des max_cstate auf c2 verändert?

    haben sie ein t400s mit festplatte oder ssd?
    dass es der lüfter oder evtl. (falls vorhanden) die festplatte ist, kann ausgeschlossen werden?

    grüße manu

  3. Hallo,

    danke für die Antwort! Das Laptop hat eine SSD-Platte und der Lüfter dreht auch nach wenigen Minuten bereits auf ca. 3700 rpm (das zweite große Problem).

    Dieses Geräusch ist jedoch auch da, wenn direkt nach dem Systemstart der Lüfter noch 0 rpm hat.

    FAZIT: Es kann also nicht der Lüfter sein und auch nicht die Festplatte.

    Zudem würde es mich sehr interessieren, mit welcher Geschwindigkeit der Lüfter in anderen T400s bewegt. Ich kann mir nicht vorstellen, dass die Geschwindigkeit von 3750 rpm normal ist. Kann das vielleicht auch mal jemand hier posten?

    Bei dem Fiepen bin ich wirklich für jeden weiteren Tipp dankbar!!!!

    Vielen Dank im Voraus und Grüße,

    Oli

  4. servus oli,

    welches linux distribution benutzt du?
    schau dir mal die ausgabe von /proc/acpi/ibm/fan an.
    welcher level ist da bei dir eingestellt? sollte auf auto sein.
    wenn ich level auf 3 setze, wäre ich bei 3300rpm – bei auto habe ich aktuell level 0 (lüfter aus).

    mein lüfter bewegt sich auch ab und zu in dem drehzahlbereich, aber nur nach längerem arbeiten bei höherer außentemperatur.

    alternativ kannst du auch tpfand installieren, eine gute lüftersteuerung speziell für thinkpads.
    da kannst du dann auch definieren, bei welcher temperatur der lüfter mit welcher umdrehung arbeiten soll.
    allerdings kannst du dann den lüfter über /proc/acpi/ibm/fan nicht mehr regeln.

    das fiepen ist äußerst seltsam, vor allem da die cpu ja minimal auf c2 herunterfährt.

    vllt ist es auch der display inverter? dieses problem hatte ich bei meinem selbstgebauten digitalen bilderrahmen, als ich eine zu lange zuleitung an den inverter lötete. aber auch das ist sehr unwahrscheinlich.

    grüße manu

  5. Hi Manu,

    sorry, dass ich erst jetzt antworte. Leider bin ich die letzten Wochen zweimal operiert worden und sitze daher erst jetzt wieder vor dem Laptop.

    Deine Tipps sind echt super gewesen!! Vielen Dank!

    Das Tool um den System-Fan zu steuern klappt wirklich prima und jetzt hat das System so ca. 45-50°C und ist flüsterleise. :-) Falls ich das System belaste dreht der Lüfter hoch, aber das ist ja auch so gewollt. :-) 50°C ist doch für einen Prozessor und die GPU i.d.R. kein Problem – oder was meinst Du? Wie warm wird Dein T400s nach einigen Stunden Laufzeit?

    Das setzen der Kernel-Option hat doch geholfen. Zur gleichen Zeit wie ich den neuen Laptop mit dem Fiep-Problem bekommen habe, hat mein externer Monitor angefangen zu Pfiepen (was ich zuerst nicht bemerkt hatte). Daher hat es für mich so gewirkt, als ob die Kerneloption den Pfiep-Ton geändert und nicht das Problem komplett behoben hätte. Der Monitor war noch in der Garantiezeit und ich habe ihn ausgetauscht bekommen. :-)

    Dank Deiner Hilfe habe ich jetzt das System, welches ich mir immer gewünscht habe! Flüsterleise und schnell. :-)

    Danke nochmal und viele Grüße

    Oli

  6. Servus Oli,

    ich hoffe du hast deine Operationen gut überstanden!

    Es freut mich, dass dein T400s jetzt endlich leise ist ;)
    Hier ein Screenshot aus tpfand nach 4h Laufzeit:

    tpfand t400s

    Ich habe also ebenfalls um die 50°C – was jedoch für diesen Prozessor ein völlig unkritischer Wert ist.

    Woraus ich noch nicht schlau wurde ist, welcher Sensor von 0-10 wo im T400s verbaut ist!
    Sensor 0 und Sensor 1 müssten auf jeden Fall CPU- sowie Chipsatztemperatur sein.

    Welche Distribution benutzt du auf deinem T400s?

    P.S: Läuft dein Fingerprint?

    Grüße Manu

  7. Hi Manu,

    danke der Nachfrage, die Operationen habe ich gut überstanden. Leider ist noch eine übrig. :-(

    Ich benutze Ubuntu 9.04 (32bit). Ja, heute würde ich auch versuchen, ob alles in der 64 bit-Version unterstützt wird. Aber aktuell läuft alles wichtige und ich werde nicht die Zeit haben alles nochmal zu installieren.

    Fingerprint-Reader
    =======================
    Der Fingerprint-Reader ist das einzige was bei mir aktuell wissentlich noch nicht funktioniert. Aus Deiner Frage schließe ich, dass Du diesen auch noch nicht erfolgreich aktivieren konntest. Oder?

    Zu den Temperaturen:
    =======================
    Ich habe ein Applet installiert, welches mir die Temperaturen und die Lüfterdrehzahl anzeigt. Dieses ist im Panel hinterlegt und lautet: „Hardware Sensor Monitor“. Hier werden die einzelnen Temperaturen/ Sensoren mit einem Namen versehen. Anhand der Temperatur würde ich folgende Mappings verwenden:

    Sensor 0 = CPU
    Sensor 1 = GPU (laut Applet „Mini-PCI“, IMHO sitzt dieser Sensor aber nahe oder direkt bei der internen GPU)

    Sensor 4 und 6 = Battery

    Sensor 5 wird in der Übersicht ausgeblendet und wird IMHO auf der verbauten externen Grafikkarte sitzen (falls vorhanden). Denn in dem Applet wird der Wert -128 °C angezeigt, was ich als deaktiviert betrachten würde … ganz so kalt ist es hier dann auch nicht. ;-)

    Sensor 10 und 2 hat bei mir die gleiche Temperatur (wie auch bei Dir). Diese Temperaturen stimmt mit dem Wert des Applets mit der Bezeichnung HDD überein. Vielleicht sitzen an der HDD ja auch zwei Sensoren … könnte ja sein. Ggf. ist auch die eine davon das DVD-Laufwerk bzw. der Ultra-Bay-Adapter und der andere Wert die 1,8″ HDD.

    Sensor 8 kann ich auch über das Applet nicht zuordnen und habe auch keine Idee.

    Sicher bin ich mir bei den Zuordnungen nicht, aber ich denke die die Mappings sind alle plausibel. Oder was meinst Du?

    Viele Grüße, Oli

  8. Servus Oli,

    mein Fingerprint funktioniert auch noch nicht, meines wissens gibt es für diesen noch keine Treiber, um ihn mit libfprint oder thinkfinger benutzen zu können.

    Habe soeben einen Blog-Eintrag erstellt, in dem in Zukunft dann Lösungen gepostet werden können.

    Temperaturen:
    ===========

    Danke für den Tipp mit dem Gnome-Applet, funktioniert super und man hat die Temperaturen immer im Auge!
    Musste lediglich die Bezeichnungen unter hddtemp ändern, diese waren standardmäßig zu lang und das Applet konnte die Konfiguration nicht speichern – ein kleiner Bug im Applet.

    Die Zuordnungen der einzelnen Sensoren sind plausibel! Sensor 10 und 2 haben bei mir auch öfters unterschiedliche Temperaturen, was jedoch auch realistisch ist, da die SSD/HDD ja nicht an jeder stelle die gleiche Temperatur haben muss.

    hast du die Sensoren von ibm-acpi oder libsensors eingebunden?

    Dort unter ibm-acpi gibt es auch einen Sensor mit der Bezeichnung GPU, welcher jedoch deaktiviert ist (vllt der Sensor 8?).

    Grüße Manu

  9. Hi Manu,

    freut mich, dass ich Dir auch weiterhelfen konnte. :-)

    Falls ich auf etwas stoße mit dem der Fingerprint-Reader aktiviert werden kann, dann werde ich Dir in dem von Dir erstellten „Blog-Eintrag“ Bescheid geben.

    Eingebunden habe ich beide, jedoch lasse ich nur die ibm-acpi-Werte anzeigen.

    Wie oben bereits geschrieben, der deaktivierte Sensor ist IMHO der Sensor der bei „ThinkPad Fan Control“ komplett ausgeblendet wird. Also der Sensor 5, denn ausblenden und einen unrealistischen Wert hinterlegen ist aus meiner Sicht eine identisch zu interpretierende Vorgehensweise. Wobei der Sensor 8 bei mir realistische Werte anzeigt. Ich kann mich jedoch natürlich auch irren, aber plausibel erscheint mir das von mir beschriebene Mapping.

    Viele Grüße

    Oli

  10. Servus Oli,

    ist richtig, Sensor 5 deaktiviert auf der GPU und Sensor 8 aktiviert. Wo dieser verbaut ist spielt nur sekundär eine Rolle, solange die Temperatur im grünen Bereich ist :-)

    Grüße Manu

  11. Hallo!

    Ich habe seit Donnerstag auch ein Lenovo Thinkpad T400s und habe das aktuelle Ubuntu (9-10, amd64) ausprobiert. Das Fiepen habe ich auch. Es verschwindet auch, wenn ich den C3 deaktiviere (processor.max_cstate=2).

    Nun meine Frage: Hast du dir mal ‚powertop‘ angeschaut?

    Ich habe das Notebook mit der CD gestartet und powertop installiert.
    Danach habe ich powertop als root ausgeführt.

    powertop gibt Tipps, womit man noch mehr Strom sparen kann.

    > Ein USB Gerät ist 100,0% der Zeit aktiv:
    > USB Gerät 2-4 : Ericsson F3507g Mobile Broadband Minicard Composite
    > Device (Ericsson)
    >
    > Vorschlag: Aktivieren Sie „USB autosuspend“ durch drücken der U-Taste
    > oder durch Anhängen der Bootoption „usbcore.autosuspend=1“ an die
    > Kernel- kommandozeile oder in der GRUB Konfiguration.

    Nun die GRUB-Bootoption hat nicht geholfen, aber wenn ich während der Einblendung des Tipps „U“ drücke ist das Fiepen weg.

    Hast du irgendwann mal weiter geforscht, oder hast du einfach den C3 deaktiviert?

    :)

  12. Hallo Pluvo,

    Der C3/C4 State-wurden zusammengefasst – das siehst du auch in Powertop.
    Wenn der C3/C4 nicht über den grub deaktiviert wurde, zeigt Powertop
    C1,C2 und C4 an. bei max_cstate=2 fällt der C4 dann weg (bei
    max_cstate=3 weg würde der C4 in powertop nicht wegfallen).

    Wie ich in meiner Statistik sehen konnte, verwendest du als primäres OS
    Debian auf dem T400s oder?

    Die Stromspartipps von powertop habe ich übrigens noch nicht angewendet.
    Aktuell habe ich ca 3,5h Akkulaufzeit unter Ubuntu 9.10. Welche Laufzeit
    erreichst du?

    Kann es sein dass durch das Drücken von ‚U‘ der Prozessor kurzzeitig
    nicht im C3/C4-Status war und deswegen das Fiepen weg war? Oder war es
    dann durchgehend weg?

  13. Hi!

    gutman schrieb:
    > Wie ich in meiner Statistik sehen konnte, verwendest du als primäres
    > OS Debian auf dem T400s oder?

    Nein. Bisher habe ich noch nichts auf dem Notebook installiert. Ich habe nur eine Ubuntu-CD ausprobiert. (Auf meinen normalen PC läuft Debian)

    Zur Laufzeit kann ich auch noch nichts sagen.

    gutman schrieb:
    > Kann es sein dass durch das Drücken von ‚U‘ der Prozessor kurzzeitig
    > nicht im C3/C4-Status war und deswegen das Fiepen weg war? Oder war es
    > dann durchgehend weg?

    Laut powertop ist er die meiste Zeit im C4.
    http://nopaste.debianforum.de/31732

    Nach dem „U“ ist das Fiepen weg. Es gibt zwar dann noch ein leises knistern, aber das ist viel leiser als das Fiepen und unregelmäßig. Ich würde schätzen, dass es irgendwie mit den USB-Geräten zusammenhängt.

    Hier gibt es einen Artikel, der dem Funkmodul die Schuld gibt:
    http://www.notebookcheck.com/Test-Lenovo-ThinkPad-T400s-Notebook.20960.0.html

  14. Hallo.

    die Meldung in powertop, dass das Ericsson F3507g zu 100% aktiv ist erhalte ich bei mir nicht. Getestet unter Ubuntu 9.10 64Bit (installiert und live CD).
    Jedoch erhalte ich ebenfalls die Empfehlung, USB autosuspend zu aktivieren. Nach dem aktivieren (live CD) konnten jedoch weder USB-Tastatur noch USB-Maus verwendet werden, das Fiepen war unverändert.

    Gegen das Fiepen hilft bei mir nach wie vor lediglich das deaktivieren des C3/C4-State. Die Störgeräusche stammen in meinem T400s also definitiv von der CPU.

    Bei aktivem C4 ist auch meine CPU die meiste Zeit (>91%) in diesem Status. Die CPU hat eindeutig zu wenig zu tun. ;-)
    In meinem T400s ist übrigens der P9600 mit 2,53GHz verbaut.
    Es wäre möglich dass es da Unterschiede zu deinem P9400 mit 2,4GHz gibt?

    Grüße Manu

  15. Hi,

    ich hab das Problem mit dem Fiepen in den Griff bekommen. Dazu musste ich im Ordner /etc/modprobe.d/ eine Datei *.conf anlegen(z.B. options.conf) mit der Zeile „options usbcore autosuspend=1“ (Ohne Anfuehrungszeichen). Danach war bei dem Reboot das Fiepen weg, USB Maus funktioniert weiterhin, Tastatur habe ich allerdings nich da zum testen. Ist deutlich praktischer als den C3/C4-State zu deaktivieren, weil man eben noch Strom sparen kann.

    Funkmodule ausschalten hat auch ein wenig geholfen, das Fiepen war allerdings nur sehr viel leiser aber noch vorhanden. Das autosuspend anschalten hat es ganz weggebracht.

  16. Hallo Jonny,
    welches Notebook, CPU und welche Distri benutzt du? USB-Autosuspend zu aktivieren hatte ich beim T400s schon getestet, das Fepen war jedoch nach wie vor vorhanden. Bis dato bringt bei mir unter Ubuntu 9.10/64Bit nur das Deaktivieren des C3/C4 Abhilfe.
    Grüße Manu

  17. Ich war da leider etwas voreilig. Das ganze funktioniert nur zuverlaessig, wenn ein USB Geraet angeschlossen ist und autosupsend an. Ab und zu klappt es aber auch ohne angeschlossenes USB Geraet?!? Ich hab das T400s(2808D9G) mit SP9400 und Debian/sid.

  18. Ich hab jetzt nochmal ein paar nachgeforscht und rausgefunden, dass durch deaktiveren von USB 1.1 Geraeten das ganze auch behoben werden kann. Bei mir tritt das fiepen nicht mehr auf, auch wenn USB Geraete nicht angeschlossen sind, wenn ich ein „sudo modprobe -r uhci_hcd“ ausfuehre. Die UMTS Karte und USB 2.0 Geraete funktionieren dann immernoch. Bluetooth und USB 1.1 Geraete allerdings nicht mehr. Warum das alles funktioniert ist mir allerdings schleierhaft, weil auch ein deaktiveren der C3/C4-States bei mir auch funktioniert. Funktioniert das abschalten von USB 1.1 Geraeten auch bei anderen? Dies scheint mir bisher die angenehmste Variante zu sein, weil USB 1.1 Geraete selten benutzt werden. Das fehlende Bluetooth ist aergerlich, aber wenn mans mal braucht kann man es ja auch auf nachfrage anschalten. Zudem verbrauchen die USB 1.1 Geraete zusaetzlichen Strom.

    Wie ist der Stromverbrauch bei anderen T400s? Ich komme leider nur so auf 9 Watt ohne WLAN und minimale Helligkeit, das scheint mir doch etwas viel, kann man das noch verbessern?

  19. Wird bei dir durch das aktivieren / deaktivieren von USB 1.1 der C-state verändert? Anders könnte ich mir das nicht erklären, da das Fiepen ja nur im C3/C4 state auftritt – so zumindest bei mir. Mein t400s verbraucht mit niedrigster Displayhelligkeit und deaktiviertem Wlan ebenfalls ca 10-11 Watt, jedoch werkelt bei mir eine geringfügig höher getaktete CPU – was den Unterschied zu deinen 9 Watt gerechtgertigen würde. Ich finde den Wert jedoch sehr gut!

  20. Nein die C-States werden nicht veraendert, der Prozessor befindet sich fast die ganze Zeit im C4-State (>95%). Jedoch hilft auch ein Abschalten der C-States bei mir. Funktioniert das abschalten der USB 1.1 Geraete bei dir? Leider scheint es nicht ein bestimmtes Device zu sein, es muessen alle abgeschaltet sein, bevor das Fiepen aufhoert. Aber wie gesagt sind USB 2.0 Devices davon nicht betroffen.

  21. Hallo Jonny, ich habe mich noch ein wenig mit dem Thema befasst. Ist es möglich, dass deine CPU vor dem deaktivieren von USB 1.1 nicht andauernd in C4 war?
    Das Modul uhci_hcd hindert die CPU anscheinden daran, dauerhaft im C4-State zu bleiben. Bei aktiviertem USB 1.1 scheint die CPU andauernd von C3 nach C4 zu wechseln, welches der Grund für das Fiepen sein kann.
    Unter Ubuntu 9.10/64Bit habe ich jedoch noch keine Möglichkeit gefunden, USB 1.1 zu deaktivieren, da uhci_hcd nicht als Modul vorhanden ist.

  22. Nein, die CPU war definitiv immer auch in dem C4-State. Hmm Ubuntu scheint wieder etwas umgebaut zu haben, evtl heisst es auch uhci-hcd(mit Bindestrich). Ansonsten kannst du versuchen usbcore auszuhaengen. Und so schaun ob bei die auch an den USB Geraeten liegt. Es wird sich dann sicherlich eine Loesungen finden die USB 1.1 Geraete explizit zu deaktivieren.

  23. Servus, danke für den Tipp mit dem C4-Modus. Kannst du bitte deine tpfand-Einstellungen zum oben geposteten Screenshot hochladen?

  24. Hallo Simon, tut mir leid, aktuell unter Ubuntu 9.10 nutze ich tpfand nicht.
    Du kannst jedoch die Schieberegler bei dir an den Screenshot angepasst entsprechend verschieben.
    Grüße Manu

  25. Hi,

    ich hab das Fiepen am T400s auch und bin sehr genervt davon.

    Kann mir jemand von euch sagen wie ich max_cstate unter Ubuntu 12.04 rausfinde? Wenn ich das eingebe „cat /proc/acpi/processor/CPU1/power“ kommt die Meldung dass die Datei bzw. das Verzeichnis nicht gefunden wurde. Erstaunlicherweise findet sich über Google dazu nichts.

    Danke.

  26. Ubuntu 12.04 (Intel) aufwärts: „GRUB_CMDLINE_LINUX_DEFAULT“ in „/etc/default/grub“ mit „intel_idle.max_cstate=2 processor.max_cstate=2 idle=poll“ und dem entsprechenden C-State ergänzen. Grub updaten („update-grub“) nicht vergessen.

  27. Hey,
    ich hab eine Möglichkeit gefunden. Soll ab Ubuntu 9.10 funktionieren (benutze Mint welches auf Ubuntu 12.10 aufbaut):

    Datei „grub“ öffnen mit:
    sudo pico /etc/default/grub

    Und die Zeile:
    GRUB_CMDLINE_LINUX=”“
    ändern zu:
    GRUB_CMDLINE_LINUX=”processor.max_cstate=2″
    speichern!
    Und nocheinmal updaten
    sudo update-grub

    Läuft super!
    (MacBookPro 2,1)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *