Notebook am Netzteil langsam: Unterschied zwischen den Versionen
K |
K (Schlechte Rechenleistung von Asus-Notebooks im Netzteilbetrieb mit openSUSE 10.2 wurde nach Notebook am Netzteil langsam verschoben: Kürzerer Titel, bessere Suchbegriffe, Problem nicht nur bei Suse (Ubuntu!)) |
(kein Unterschied)
|
Version vom 16. Juli 2007, 12:15 Uhr
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!
Problem wurde durch Kernelupate gelöst. Die hier aufgeführten Schritte sind nicht mehr notwendig sind aber weiterhin hier aufgeführt.:
Zur Problemlösung siehe: Problem gelöst mit YaST-Online-Update_Kernel: 2.6.18.8-0.1 |
|
Hinweis: |
Bei einigen Systemen 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. |
Inhaltsverzeichnis
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.
Quellen und weiterführende Links
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.