Notebook am Netzteil langsam

Aus Linupedia.org
Version vom 17. Juli 2007, 07:18 Uhr von Griffin (Diskussion | Beiträge) (Kleinigkeiten)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Einige Notebook-Modelle von Asus sowie einige Sony VAIO Modelle scheinen auf die aktuelle Version 10.2 von openSUSE und auf Ubuntu/Kubuntu 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/Kubuntu-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 und den VAIO Modellen. 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!


Hinweis:

Bei openSUSE kann das Problem mittels eines normalen YaST-Online-Updates gelöst werden. Der über das Online Update angebotene Kernel 2.6.18.8-0.1 beseitigt das Problem bei vielen Systemen. Zur Vertiefung siehe hier (weiter unten in diesem Artikel). Bevor man sich daher nach dieser Anleitung einen neuen Kernel baut, sollte man zunächst den über das Update verfügbaren Kernel ausprobieren.


Hinweis:

Für Ubuntu und Kubuntu wird unten erklärt, wie man das Problem beheben kann.




Problemlösung unter openSUSE

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ß!


Problem gelöst mit 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 YaST-Online-Update und Einspielen dieser Kernelversion, sollte der Laptop wieder mit voller Performance funktionieren.


Problemlösung unter Ubuntu/Kubuntu

Auch unter Ubuntu/Kubuntu gibt es bei einigen Notebooks das Problem, dass das Notebook, wenn es am Netzteil hängt, sehr langsam und träge reagiert. Im Akkubetrieb dagegen läuft das Notebook völlig normal.

Das Problem wurde gehäuft bei Notebooks von Asus sowie bei einigen Sony VAIO Modellen beobachtet.


Die Ursache des Problems

Ursache des Problems ist ein Bug in dem Kernel, der standardmäßig von Ubuntu/Kubuntu verwendet wird. Es handelt sich hierbei um den Kernel mit dem Zusatz "Generic".


Die Lösung des Problems

Die Lösung des Problems ist unter Ubuntu/Kubuntu denkbar einfach. Es muss nur über die Paketverwaltung ein neuer Kernel installiert werden. Da glücklicherweise ein funktionierender Kernel in den Paketquellen von Ubuntu/Kubuntu angeboten wird, muss dieser lediglich über die Paketverwaltung nachinstalliert werden.

Hierzu sucht man in seinem Paketmanager nach diesem Paket:

linux-386

Anschließend markiert man das Paket zur Installation und installiert den Kernel.

Nachdem der neue Kernel installiert wurde, muss man das System neu starten. Im Bootloader Grub sollte der neue Kernel angeboten werden. Es handelt sich hierbei um den Eintrag ohne "Generic". Über diesen Eintrag ohne "Generic" bootet man nun Ubuntu/Kubuntu.

Das System sollte nun mit diesem Kernel sowohl im Netzteilbetrieb als auch im Akkubetrieb normal laufen.

Zur Kerneln und zur Installation eines anderen Kernels siehe auch hier, im Wiki von Ubuntuusers.


Quellen und weiterführende Links



Editorentabelle

Autoren: Chrizzo und andere


Ergänzungsautoren: blubber, SuseFan15 und andere


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