Notebook am Netzteil langsam

Aus Linupedia.org
Version vom 17. März 2007, 09:15 Uhr von DerMani (Diskussion | Beiträge) (YaST-Onlineupdate Patch hinzugefügt und einen Absatz nach Oben verschoben, damit man ne Einleitung hat :-))
Wechseln zu: Navigation, Suche

Einige Notebook-Modelle von Asus scheinen auf die aktuelle Version 10.2 der openSUSE allergisch zu reagieren. Im Akkubetrieb verhalten sie sich völlig normal, sobald man sie allerdings an eine Steckdose anschließt, war es das mit der Leistung. User beobachteten massive Geschwindigkeitseinbrüche. Nicht nur SUSE-User sind betroffen, auch die letzte Ubuntu-Version bereitete den Usern ähnliche Kopfschmerzen. Die Fehlerquelle ist schnell gefunden: SMP, das Modul zur Unterstützung von Multiprozessorsystemen, verträgt sich überhaupt nicht mit den Notebooks aus dem Hause Asus. Während die Ubuntu-Community auf einen "Ersatz"-Kernel zurückgreifen kann, müssen wir openSUSE-Anwender uns des Problemes vorerst selbst annehmen und das Kernel-Modul SMP 'rauswerfen', in dem wir einen eigenen Kernel kompilieren. Aber keine Angst: Das ist viel, viel einfacher, als es sich anhört!


Warnung
In diesem Tutorial wird eine Änderung am Kernel dokumentiert. Änderungen am Kernel können das System instabil werden lassen oder das System sogar komplett stilllegen. Lesen sie die Anleitung sorgfältig durch, nehmen sie sich die Zeit, sie einmal komplett von Anfang bis Ende durchzugehen und überprüfen sie, ob sie alles verstanden haben, bevor sie loslegen!


Vorbereitung

Benötigte Pakete

Bevor das Problem selbst behoben werden kann, muss sichergestellt werden, dass die nötigen Pakete vorliegen:

  • kernel-source

Ob die Pakete installiert sind, könnt ihr einfach mit YaST überprüfen. Fehlt etwas, lässt es sich ganz einfach nachinstallieren.


Umgebung

Nachdem das System hochgefahren ist (was im Netzteilbetrieb eine Weile dauern kann), melden wir uns mit Benutzernamen und -passwort an der grafischen Oberfläche (in der Regel KDE oder Gnome) an und öffnen die Konsole. (Im K-Menü unter System->Terminals->Terminal-Programm (Konsole)). Die in der Anleitung folgenden Kommandos und die Dateien, auf die zugegriffen werden soll, sind für normale User nicht zugänglich, also müssen wir uns Administratorrechte (root-Rechte) verschaffen. Dies geschieht durch Eingabe von

 su

Jetzt noch schnell das root-Passwort eingeben und bestätigen - fertig. Wir sind bereit, uns um das Kernel-Problem zu kümmern.

Einen neuen Kernel kompilieren

Abbild des aktuellen Kernels als Grundlage benutzen

Da wir hier keinen von Grundauf neuen Linux-Kernel konstruieren wollen, sondern nur ein einzelnes Kernelmodul 'rausschmeißen' wollen, benutzen wir den aktuellen, von openSUSE 10.2 verwendeten Kernel als Grundlage. Dazu wechseln wir in das Verzeichnis, in dem die Kernelquellen liegen und lesen die aktuelle Kernelkonfiguration aus.

 cd /usr/src/linux/
 make cloneconfig

Dann müssen die Kernel-Module vorbereitet werden.

 make modules_prepare


Kernelkonfiguration bearbeiten

Um an der Kernelkonfiguration die nötigen Änderungen vorzunehmen, sind keine großen Programmierkenntnisse erforderlich, denn eine hübsche grafische Benutzeroberfläche liefert die nötigen Funktionen. Mit

 make xconfig

starten wir den überschaubaren grafischen Kernel-Editor. Dort benutzen wir die Suche (Datei->Suchen bzw. File->Search) um das entsprechende Modul zu finden. Als Suchbegriff geben wir smp ein. Aus dem Suchergebnis (Symmetric multi-processing support) lässt sich der vorstehende Haken entfernen. Damit ist das Modul smp aus der Konfiguration entfernt. Die neue Konfiguration muss natürlich gespeichert werden, also schließen wir das Suchfenster und speichern die Konfiguration (Datei->Speichern bzw. File->Save) ab. Das Programm kann geschlossen werden.


Den Kernel kompilieren (RPM-Weg)

Aus der neuen Konfiguration muss jetzt ein entsprechender Kernel kompiliert werden. Erfahrenere User können hier direkt den Kernel kompilieren, für dieses Tutorial gehen wir allerdings den für SUSE typischen RPM-Weg. Durch Eingabe von

 make rpm

wird ein RPM-Paket erzeugt, dass sich später via YaST installieren lässt. Achtung. Dieser Vorgang kann eine ganze Weile dauern. (Bei mir dauerte es etwas über eine Stunde, aber ich war auch darauf angewiesen, dass Notebook im langsamen Netzteilbetrieb zu benutzen.) Den kryptischen Zeichen, die dabei in der Konsole angezeigt werden, brauchen wir hier keine große Beachtung zu schenken. (Stattdessen lässt sich die Zeit nutzen, um ein heißes Bad zu nehmen oder endlich mal wieder die Küche aufzuräumen!) Ist das RPM-Paket fertig kompiliert, wechseln wir in das Ausgabeverzeichnis für kompilierte RPM-Pakete und überprüfen den Verzeichnisinhalt:

 cd /usr/src/packages/RPMS/i386
 dir

Wenn alles geklappt hat, finden wir dort eine Datei vor, die (ungefähr, kann von Version zu Version natürlich abweichen!) folgenden Namen hat:

 kernel-default-2.6.18.234-6.i386.rpm


Den Kernel installieren

Bevor man den neuen Kernel installieren kann, muss der alte natürlich deinstalliert werden. Damit wir wissen, was genau überhaupt deinstalliert werden muss, lassen wir uns die installierte Kernelversion anzeigen.

 rpm -qa | grep kernel-default

Die Ausgabe (z.B. kernel-default-2.6.18.234-6) zeigt das installierte Kernelpaket, dass wir deinstallieren müssen. Dies geschieht mit

 rpm -e --nodeps kernel-default-2.6.18.234-6

wobei der Name des Pakets natürlich von Version zu Version abweichen kann. Nach dieser Eingabe ist der Linux-Kernel deinstalliert und wir können endlich unsere nachgebesserte Kernelversion installieren. Auch dies geschieht mit dem rpm-Befehl. Als Quelldatei geben wir das selbstkompilierte RPM-Paket an.

 rpm -i kernel-default-2.6.18.234-6.i386.rpm

Der Kernel ist installiert! Allerdings müssen wir jetzt noch sicherstellen, dass der neue Kernel auch gestartet werden kann. Dazu wechseln wir in das Verzeichnis boot und führen einen weiteren Konsolenbefehl aus:

 mkinitrd -k vmlinuz-2.6.18.234-6-default -i initrd-2.6.18.234-6-default

Sollte dieser Aufruf fehlschlagen und nach einer fehlenden Datei System.map verlangen, ist

 mkinitrd -k vmlinuz-2.6.18.234-6-default -i initrd-2.6.18.234-6-default -M System.map-2.6.18.234-6-default

die richtige Alternative. Nun starten wir den grafischen YaST durch Eingabe von

 yast2

und wählen System->Konfiguration des Bootloaders. Dort stellen wir sicher, dass Kernel image (vmlinuz) und Initial RAM disk (initrd) korrekt gesetzt sind, in unserem Beispiel:

Kernel image: /boot/vmlinuz-2.6.18.234-6-default Initial RAM disk: /boot/initrd-2.6.18.234-6-default


Herzlichen Glückwunsch! Der neue Kernel wurde erfolgreich installiert. Beim nächsten Neustart des Systems wird jetzt der neue Kernel gestartet. Das Notebook sollte jetzt auch im Netzteilbetrieb die volle Leistung erbringen können.


Hinweis für Benutzer von ATI-Grafikchips

Noch ein letzter Hinweis: Die User, die mit einem ATI-Grafikchip in ihrem Notebook gestraft sind und den fglrx-Treiber verwenden, werden mit dem neuen Kernel höchstwahrscheinlich zunächst ein schwarzes, langsames oder fehlerhaftes Bild zu sehen bekommen. Keine Angst! Mit dem Kernel ist alles in Ordnung, nur sollte das fglrx-Kernel-Modul nochmal angepasst werden. Mit der Tastenkombination Strg-Alt-Backspace (Backspace ist die große breite Taste über Enter / Eingabe) lässt sich die grafische Oberfläche jederzeit terminieren und in den Textmodus zurückkehren. Dort meldet man sich kurz als root an und generiert das Kernel-Modul neu, in dem man

 fglrx-kernel-build.sh

eingibt. Jetzt sollte, nach einem weiteren Neustart, alles wieder funktionieren. Viel Spaß!


YaST-Online-Update Kernel: 2.6.18.8-0.1

Mit der Kernelversion 2.6.18.8-0.1 scheint das Performanceproblem der Asuslaptops behoben zu sein. Nach einem [Online Update mit YOU (YaST Online Update)| YaST-Online-Update] und Einspielen dieser Kernelversion, sollte der Laptop wieder mit voller Performance funktionieren.

Quellen und weiterführende Links


Editorentabelle

Autoren: Chrizzo


Ergänzungsautoren: blubber, SuseFan15


Lektor:


Designer:


Fotograf:


Dank an: blubber und SuseFan15 für den korrekten Lösungsweg für dieses Problem!!


Wenn Du möchtest, dass Deine Arbeit wie die des Ursprungsautoren gewürdigt wird, trage Dich in dieser Tabelle entsprechend ein.


Zurück zu Notebooks