SuSE 10.2 auf HP Compaq nx6325

Erstellt am 28.03.2007

Einleitung

Das hier ist der "zweite" Teil meines HowTos. Nachdem jetzt endlich SuSE10.2 raus ist musste das natürlich sofort aufs Notebook drauf, weil der neue Kernel ja vielleicht endlich ACPI besser unterstützt.

So wie es aussieht tut er es nicht :-( denn ich durfte wieder die DSDT in die initrd stricken.
Positiv ist mir aufgefallen, dass die Soundtasten (Lauter, Leiser, Mute) sofort richtig funktionieren. Die Sondertasten Info und Präsentation lassen sich auch einfach über die

kcmshell khotkeys

einrichten. Dazu einfach auf "Neue Aktion" klicken, einen passenden Aktionsnamen eingeben (vielleicht auch noch eine Beschreibung), danach beim Aktionstyp von Generisch auf Tastenkürzel umstellen. In der nun erscheinenden Registerkarte "Tastenkürzel" auf den keine-Button klicken und einmal auf die gewünschte Sondertaste drücken. Jetzt kann man unter Befehl/Adresse-Einstellungen den gewünschten Befehl der Taste zuordnen (also z.B. /usr/bin/ooimpress für die Präsentationstaste).

khotkeys
An dieser Stelle vielen Dank an P!et, der mich darauf aufmerksam gemacht hat!

Ein weiteres Merkmal ist, dass der Fingerprintsensor als Scanner? erkannt wurde.

Ansonsten ist alles beim alten geblieben: WLAN funktioniert nur über ndiswrapper und inzwischen ist sogar ein neuer Treiber von ATI draußen, der mit Xorg7.2 läuft. Danach funktioniert, aber wie vorher auch schon die Helligkeitsregelung nicht mehr.

Abweichungen

Um jetzt nochmal genau die Unterschiede hervor zu heben, hier eine kleine Übersicht:

Soundkarte Die Soundkarte wird jetzt von Anfang an richtig erkannt und eingestellt. Es ist also keine weitere Bastelei im Yast mehr nötig.
WLAN Nachdem es immer noch keine Treiber gibt und auch die Projektseite (Web-Archiv: http://bcm43xx.berlios.de/?go=devices) den Chipsatz noch nichtmal kennt, muss ndiswrapper wieder herhalten. Dazu siehe mein erstes HowTo.
ACPI und Fan Auch hier hat sich nichts getan. Ich muss nach wie vor eine eigene DSDT erstellen und diese dem Kernel in der initrd beim booten übergeben. Hierzu siehe ebenfalls mein erstes HowTo. Außerdem muss auch wieder der Cronjob angelegt werden (den Kernelparameter mit dem acpi_os_name hab ich bisher noch nicht wieder eingetragen - es scheint auch so zu funktionieren).
Multimediatasten Die Multimediatasten (also Lauter, Leiser und Mute) funktionieren jetzt auf Anhieb und man erhält ein schönes grafisches Fenster, was einem die aktuelle Lautstärke anzeigt - eigentlich genauso schön gelöst, wie unter Windows.

Die Präsentations- und Infotaste funktionieren, wie oben ja schon ausführlich erklärt auch wunderbar inzwischen (nur der WLAN-Knopf mag noch nicht).
Grafikkarte Die Grafikkarte nebst Screen wird wie vorher auch schon einwandfrei erkannt und läuft auch anstandslos. Wie oben schon erwähnt hat ATI es in rekordverdächtiger Zeit geschafft einen neuen TreiberBLOB rauszubringen, der jetzt auch Xorg7.2 unterstützt (sonst hat das ja bei ATI immer länger gedauert, aber vielleicht bringt jetzt AMD mal etwas frischen Wind in den Laden ^_^). Leider funktioniert aber dadurch wie unter 10.1 auch schon die Helligkeitssteuerung unter X nicht mehr (man muss auf ne Konsole umschalten und dort die Helligkeit einstellen).
Fingerprintsensor Der Sensor wird jetzt erstmalig als Scanner erkannt, Sane bietet aber noch keine Module dafür an. Mit meinem HowTo zum Fingerprintsensor sollte er aber einwandfrei funktionieren.
Cardreader Ein weiterer Tip von Thomas (schon wieder ein mächtig großes Dankeschön!!!), wie man den Kartenleser zum Leben erweckt:
In ein init-Script (also z.B. in die /etc/init.d/boot.local) die folgende Code-Zeile einfügen:
setpci -s 02:04.2 4c=0x22
Danach werden bei ihm und auch bei mir die SD-Karten erkannt. Eine SM-Karte wurde jedoch bei mir nicht erkannt.

Update: Früher stand hier, dass das Touchpad nicht mehr funktioniert, wenn man den Befehl in die boot.local schreibt. Das scheint an der BIOS-Version gelegen zu haben. Seit 30.1.2007 ist auf der Homepage von HP die BIOS-Version F.06 erhältlich. Damit kann ich jetzt einfach den setpci-Befehl in die boot.local stecken und sowohl das Touchpad funktioniert, als auch die Karten werden sofort erkannt *freu*
Dazu hab ich herausgefunden, dass sich durch diesen Befehl auch die Sensoren für Prozessor- und Mainboardtemperaturen auslesen lassen: dazu einfach als root, wie gewohnt, sensors-detect ausführen und das ganze Prozedere absegnen. Die eine Zeile in die /etc/modprobe.conf stecken und die ganzen modprobe-Befehle ebenfalls unten in die /etc/init.d/boot.local stecken (sollte jetzt ungefähr so aussehen):
#!/bin/sh
# setpci ausfuehren, admit der Kartenleser und die Sensoren funktionieren.

/sbin/setpci -s 02:04.2 4c=0x22

#I2C adapter drivers
modprobe ...
...
#modprobe k8temp
# sleep 2 # optional
/usr/bin/sensors -s # recommended
Wichtig ist, dass es das Modul k8temp nicht gibt, weswegen ich es erstmal auskommentiert habe. Wenn ich das richtig verstanden habe, ist das schon im Kernel, aber damit müsste ich mich nochmal genauer beschäftigen.

So, damit kann man sich nun mit dem Befehl sensors die Temperatur von Prozessor und Mainboard anzeigen lassen - wenn auch leider keine Spannungen oder Lüfterdrehzahlen, wie ich es von meinem Desktop-PC gewohnt bin.

Es hat sich also ein klein wenig getan, aber leider sind die wesentlichen Dinge immer noch ein Gemurxe. Hoffen wir mal, dass die nächste SuSE-Version weitere Verbesserungen bringt ;-)

Da fällt mir noch ein: Auf der ersten Konsole hab ich das Phänomen, dass ich dort eigentlich nichts richtig tippen kann, weil der Cursor immer an den rechten rand springt und man dann seine Eingaben nicht mehr richtig sieht - vielleicht ist das ja bei euch auch so, oder ihr habt ne Lösung dafür?

Kommentare

Zum Schluss natürlich wieder die Kommentare und Berichtigungen.
Anlass für diesen zweiten Teil war nämlich eigentlich eine Mail von MaikB. Er hat sich sehr ausgiebig mit dem Thema ACPI beschäftigt. Seine Lösung ist mit Kernelkompilieren verbunden, nachdem anscheinend das Kernelmodul für die PS/2-Maus die Probleme hervorruft (wenn ich das recht verstanden habe ^_^ ).
Ich hab das bisher noch nicht ausprobiert, das ganze klingt aber nicht uninteressant:

Hallo!

Ich habe das nx6325 seit etwa einem Monat und hatte nun erstmals Gelegenheit, mich etwas näher mit den ACPI-Problemen zu beschäftigen. Da kam mir deine Seite als Hilfestellung sehr entgegen.
Zum WLAN-Modul muss ich die Hoffnung auf native Unterstützung durch das bcm43xx-Modul leider für den Moment begraben, da dem bcm43xx-Projekt noch nichtmal der Chipsatz bekannt zu sein scheint: Web-Archiv: http://bcm43xx.berlios.de/?go=devices

(bei mir gibt lspci und auch der ndiswrapper einen UART 4310 aus, also habe ich auch Ubuntu 7.04alpha aufgrund der Hoffnungslosigkeit bzw. des WLAN nicht getestet).

Die ACPI-Problematik habe ich nun folgendermaßen gelöst:

Das Problem ist bei Novell im Bugzilla zu opensuse 10.2 bekannt:
http://bugzilla.novell.com/show_bug.cgi?id=197561
Da alle bisherigen Versuche (mit DSDT usw.) mehr oder weniger fehlgeschlagen sind, habe ich mich also an das psmouse-Modul begeben. Tatsächlich laufen alle ACPI-Feinheiten jetzt völlig problemlos bei mir: Das Einstecken und Abziehen des Netzkabels wird erkannt, die Lüfter springen bei vernünftigen Temperaturen an und gehen auch entsprechend sinnvoll wieder aus (und wieder an und wieder aus usw. ...)

Hier eine kleine Auflistung der Dinge, die zum Funktionieren beigetragen haben. Das Ganze habe ich unter opensuse 10.2 gemacht. Da dieses SuSE mit xorg 7.2 arbeitet und ATI noch keine Treiber anbietet, kann man nur unter größeren Umständen die 3D-Beschleunigung aktivieren (Downgrade zu xorg 7.1, siehe http://en.opensuse.org/ATI_Driver_HOWTO).

Aber zurück zu den Schritten für ein funktionierendes ACPI (sehr ausführlich, falls jemand noch nie einen eigenen Kernel gabaut hat):

Da die Konfiguration einen längeren Compilerlauf enthält, kann es sinnvoll sein, den Rechner mit dem Kernel-Parameter "acpi=off" zu starten um möglichen spontanen ACPI-Fehlern aus dem Weg zu gehen.

Pakete installieren:

  • kernel-sources
  • qt-devel (oder ncurses-devel, wenn man mit make menuconfig anstatt make xconfig arbeiten will, siehe unten)

als superuser (root) auf eine Konsole gehen
In das Verzeichnis /usr/src/linux wechseln
make xconfig (oder make menuconfig, s.o.)
Nun die Option "PS/2 mouse" auf "M" (für Modul) umstellen. Im xconfig ist das sehr einfach: Über File --> Search nach "mouse" suchen. In der Ergebnisliste auf "PS/2 mouse" klicken und dann auf der Tastatur "m" drücken. Das Symbol links von "PS/2 mouse" müsste sich daraufhin von einem Häkchen in einen Punkt verwandeln. Wer Lust hat, kann unter der Option "processor family" den Kernel auch gleich für seinen Athlon64 optimieren. Das habe ich aber erstmal nicht gemacht, um mir nicht neue Probleme zu schaffen. Über File-->Save muss dann noch die geänderte Konfiguration als .config-Datei gespeichert werden.

Zurück auf der Konsole "make" aufrufen. Der anschließende Compiler-Lauf kann schon mal locker 30 Minuten oder länger dauern. Warnungen sind dabei egal, hauptsache es kommen keine Fehlermeldungen.

Danach "make modules_install" aufrufen
Und nun noch "make install".
Irgendeiner der drei letzten make-Schritte schloss bei mir mit einer ungewöhnlichen "if ..." Bedingung ab. Hat aber trotzdem prima funktioniert ...

Nun muss noch der Bootloader (grub) neu installiert werden. Dabei kann man gleich die Kernel-Parameter überprüfen (Yast --> System --> Konf. des Bootloaders). Ich habe die Kernelparameter acpi_pool_size=10 acpi_os_name="Microsoft Windows NT" genommen. Yast installiert dann beim Beenden der "Konfiguration des Bootloaders" automatisch grub neu, wenn man irgendwas geändert hat. Nun hat man also einen neuen Kernel kompiliert, der die Unterstützung für "psmouse" nicht mehr fest eingebaut sondern als Modul ausgelagert hat.

Beim nächsten Neustart (ich habe einfach mal den Netzstecker und die Batterie wie bei Novell empfohlen entfernt) funktionierte dann die graphische Oberfläche nicht mehr, da der X-Server das Synaptics-Touchpad nicht mehr ansprechen konnte. Um man muss per Skript dafür sorgen, dass das Modul "psmouse" beim Start geladen wird und beim Beenden auch auf jeden Fall wieder entladen wird. Dazu:

In der Datei /etc/init.d/boot.local die Zeile modprobe psmouse hinzufügen und in der Datei /etc/init.d/halt.local die Zeile rmmod psmouse hinzufügen.

Also auch wenn das nx6325 keinen PS/2-Anschluss hat, braucht man trotzdem das Modul psmouse um das Synaptics-Touchpad benutzen zu können.
Anschließend funktionierte bei mir auf jeden Fall das Touchpad und die externe USB-Maus wieder. Vielleicht muss man per sax2 aber auch nochmal das Touchpad auswählen.

Und vor allem funktioniert jetzt ACPI.

(getestet auf HP Compaq nx6325 mit Turion64X2 TL-60 und BIOS-Version F.04).

Viel Erfolg mit eventuellen Eigenversuchen!
P.S.: Habe grade festgestellt, dass ich den minütlichen acpi-Aufruf noch in der crontab habe. Ob der immernoch notwendig ist, weiss ich nicht ... aber er scheint auf jeden Fall nicht hinderlich zu sein.

Hier nochmal vielen Dank - ich denke, dass das einigen weiterhelfen wird!

Seitenanfang