Debian GNU/Linux Etch und das HP Compaq nx6125 Laptop

Statusbericht

Stand 08.02.2007
ACPI Kernelpatch
Chipsatz OK
USB OK
Sound OK
Modem Ungetestet
Firewire Ungetestet
PCMCIA Manuell
Express Card Ungetestet
Cardreader Kerneloption
Sensor Manuell
Fingerprint Sensor Unbekannt
LAN OK
WLAN Manuell
VGA (FOSS) OK
3D (FOSS) OK
TV-Out (FOSS) Ungetestet
VGA (proprietär) OK
3D (proprietär) Manuell
TV-Out (proprietär) Auflösung stimmt nicht.
Touchpad OK
Suspend/Hibernate OK
CPUfreq OK
Docking Station Manuell

Legende Statusbericht
Funktioniert out-of-the-box.
Funktioniert mit Handarbeit
Modul lädt, ansonsten ungetestet.
Funktioniert nicht.
Ungetestet.

Inhalt

  1. Warnung
  2. Haftung
  3. Einleitung
  4. Ausstattung
  5. Basisinstallation
  6. ACPI
  7. Kernel kompilieren
  8. Chipsatz und Controller
  9. Netzwerk
  10. Grafik
  11. Eingabegeräte
  12. Powermanagement
  13. Docking Station
  14. Bootloader anpassen
  15. Anhang: Kerneloptionen
  16. Anhang: Proprietäre ATI-Treiber V8.29.8
  17. Anhang: Links
  18. Anhang: to-do-Liste

Achtung! Achtung!

  1. Dem Laptop droht ohne den weiter unten beschriebenen Kernelpatch der schnelle Hitzetod. Kümmern Sie sich darum zuerst um ACPI!
  2. Dieses Dokument ist noch nicht in seiner endgültigen Fassung.
  3. Ich nutze dieses Seiten, um mich ein wenig mit dem Screem WebSite Editor, PHP, MySQL etc. vertraut zu machen. Es kann also zu lustigen Verwirrungen kommen.

Haftungsausschluß

Natürlich übernehme ich keine Verantwortung für irgendetwas, das Sie tun. Die hier niedergeschriebene Vorgehensweise hat für mich funktioniert, mehr behaupte ich nicht. Sie und ich, wir sind beide erwachsen und wir wissen, daß Informationen von einer mehr oder weniger anonymen Webseite mit Vorsicht zu genießen sind. Sollten Sie nicht erwachsen sein, dann reden Sie vorher mit Ihrem Erziehungsberechtigten darüber, ob und was Sie mit einem unter Umständen mehr als 1000€ teuren Gerät anstellen. Mich geht das nichts an.

Einleitung

Auf dieser Seite dokumentiere ich meine Vorgehensweise bei der Installation und Konfiguration von Debian Etch in der 32 Bit Version auf einem HP Compaq nx6125 Notebook. Das Modell wird mittlerweile nicht mehr hergestellt, aber HP bietet die Specs noch als PDF zum Download an. Über das Nachfolgemodell HP nx6325 kann ich nicht viel sagen, aber ich denke mir, daß es im wesentlichen genauso funktionieren wird, inkl. des ACPI Fehlers.
HP rühmt sich damit, daß das nx6125 mit modernster, plattformübergreifend kompatibler Hardware ausgestattet ist. Leider kann ich das nicht bestätigen, der ATI XPress 200M ist zwar ein passabler Chipsatz, es existieren jedoch noch einige gravierende Probleme und die integrierte Grafiklösung ist lahm und macht nur Zicken. Die nebenstehende Tabelle zeigte ursprünglich mehr Probleme als funktionstüchtige Elemente. Wer immer diesen Werbemüll geschrieben hat, sollte das nächste Mal vorher mit seiner Technik-Abteilung plaudern. Gelegentlich mußte ich mir einfach an den Kopf greifen. Darum gibt es hin und wieder auch etwas Geschimpfe, so markiert:

Arghh, Soapbox!

Glücklicherweise ist es den ambitionierten und talentierten FOSS Entwicklern mittlerweile gelungen, viele der anfänglichen Probleme zu beheben, wobei man anmerken muß, daß HP wenig bis nichts dazu beigetragen hat.

Jetzt mal was nettes: Das Laptop ist wirklich sehr gut verarbeitet und die allgemeine Systemleistung kann überzeugen. Für einen Einstiegspreis von knapp 500€ gibt es in dieser Beziehung wirklich nichts zu meckern.

Ich gehe während des Niederschreibens davon aus, daß Sie mit GNU/Linux im allgemeinen und mit Debian im besonderen einigermaßen vertraut sind, insbesondere wissen Sie, wie man einen Kernel kompiliert. Wir werden einige Zeit ausschließlich auf virtuellen Terminals (a.k.a tty, VT oder Konsole) verbringen und Befehle zur Navigation etc. werden nicht gesondert erläutert. Falls eine Eingabe in einem VT erforderlich ist, so wird diese folgendermaßen kenntlich gemacht:

apt-get moo

Ausgaben, die keine weitere Handlung Ihrerseits erfordern sehen so aus:

Do 26. Okt 16:47:55 CEST 2006

Die Installation erfordert zwar nicht durchgängig root-Rechte, jedoch meistens. Da das System während der Installation kaum als produktiv bezeichnet werden kann, sollte das nichts ausmachen. Wem das nicht geheuer ist, der kann stattdessen ja mit sudo arbeiten. Im Weiteren gehe ich davon aus, daß man root-Rechte hat.

Ausstattung und Laufzeit

Mein Hp Compaq nx6125 ist wie im Datenblatt (s. o.) ausgestattet, allerdings verfügt es momentan über 768 MB RAM, von dem max. 128 MB für die Grafiklösung ATI 200M abgezweigt werden. Als CPU kommt ein Mobile Sempron 3100+ zum Einsatz. Eine 4200 RPM HD von Fujitsu dient als Massenspeicher. Mit dieser Ausstattung kommt mein Laptop bei normaler Last, d. h. Programmieren, Textverarbeitung, Internet mit dem mitgelieferten 4,8 Ah-Akku auf ca. 4h Laufzeit.

BIOS

Sie können das HP Compaq nx6125 in einer Ausführung mit FreeDOS erwerben. Wenn Sie nun ihr BIOS aktualisieren wollen, dann bietet HP Ihnen drei Möglichkeiten:

  1. Eine MS Windows Executable
  2. Eine MS WIndows Executable für den SSM
  3. Eine FreeDOS Bootdiskette
Schauen Sie sich Ihr Laptop an... nun haben Sie bereits mehr geleistet als die Supportabteilung von HP. DAS HP nx6125 HAT KEIN DISKETTENLAUFWERK! Als Besitzer eines FreeDOS HP Compaq nx6125 haben Sie somit exakt keine Möglichkeit ihr BIOS zu aktualisieren, ohne spezielle Klimmzüge zu unternehmen. Danke, HP!
Wenn Sie ein Laptop mit einem BIOS älter als F.0F haben, sollten Sie trotzdem ein Update in Betracht ziehen, aktuell ist momentan Version F.12.

Alexander Bertol war so freundlich, mir einen Methode zu erklären, die unter Benutzung von Wine die MS Windows Executable für GNU/Linux nutzbar macht. Meinen herzlichen Dank dafür an Alexander Bertol. Ich habe die Methode allerdings noch nicht ausprobiert, da bei mir alles mit der BIOS Version F.11 läuft. Und wenn der Schuh nicht drückt... ;)

Ohne weiteren Kommentar, aber mit Formatierung:

apt-get install wine wine-utils
cd
wineboot
mkdir floppy
dd if=/dev/zero of=floppy.img bs=1kcount=1440
/sbin/mkfs.vfat floppy.img
ln -s ~/floppy .wine/dosdevices/a:
mount floppy.img floppy -o loop
wget ftp://ftp.hp.com/pub/softpaq/sp34501-35000/sp34752.exe
wine sp34752.exe
umount floppy
mkisofs -o boot.iso -b floppy.imgfloppy.img
wodim boot.iso

Danach sollten Sie eine gebrannte, bootfähige CD mit dem BIOS Update, hier Version F.12, in Händen halten. Rebooten und Starten Sie von CD und wählen im Dialog update. Falls Sie die BIOS Datei lieber per Browser runterladen wollen, dann können Sie das hier tun. Vielen Dank nochmal an Alexander Bertol.

Basisinstallation

Starten Sie den Installationsvorgang wie gewohnt, geben Sie aber unbedingt folgende Optionen beim Booten an:

install noapic nolapic vga=773

install steht hierbei für Ihre bevorzugte Installationsoption, z. B. expert. Ohne die *apic-Optionen wird die Maschine kriechend langsam, da der interne Taktgeber des Laptops leider etwas zu schnell unterwegs ist. Die vga-Option schaltet auf eine Auflösung von 1024x768 Bildpunkten bei 16 Bit Farbtiefe.
Bei der Partitionierung empfehle ich das ext3 Dateisystem, da es sehr ausgereift ist und allgemein gut unterstützt wird. Außerdem macht es keine Schwierigkeiten bei der Installation von Bootloadern wie z. B. GRUB und ist anscheinend robuster beim Recovery von plötzlichen Stromausfällen. Das ist eine nützliche Eigenschaft für Laptops.
Wenn Sie Taskselect benutzen, dann wählen Sie kurz vor Ende der Installation nur das Standardpaket, weder das Laptop- noch andere Pakete werden im Moment gebraucht. Wählen Sie die Pakete manuell aus, so verzichten Sie bitte auf einen K7-optimierten Kernel, der Debian-K7-Kernel funktioniert auf dem nx6125 nicht richtig. Update 14.12.2006:Der 2.6.18-K7 funktioniert angeblich.
Booten Sie nun in Ihr nacktes Debian Etch und melden sich als root an. Installieren Sie folgende Pakete:

apt-get install bzip2 libncurses5-dev modconf build-essentials kernel-package

ACPI

ACPI erlaubt es, den Computer in verschiedene Betriebsmodi zu versetzen und verschiedene Hardwarekomponenten zu steuern. Dazu muß das Betriebsystem das BIOS-Interface bemühen und die DSDT (Gestaffelte Systembeschreibungstabelle) des Computers auslesen.

Leider sind viele Hersteller unfähig, die Vorgaben dieses Industrie-Standards zu erfüllen und liefern ihre Computer mit fehlerhaften BIOS-Interfaces aus. Und obwohl HP federführendes Mitglied des ACPI-Gremiums ist, schafft auch HP es nicht, diese Spezifikation fehlerfrei umzusetzen -- wie man am HP Compaq nx6125 nur zu gut sieht.

Die fehlerhafte DSDT des nx6125 erfordert besondere Boot-Optionen und einen Patch des Linux-Kernels. Der Patch genießt besondere Dringlichkeit, da von ihm die zumindest einigermaßen korrekte CPU Lüftersteuerung abhängt. Der Bugzilla des Linux-Kernels führt den Fehlerbericht #5534, in dem das Problem genauer beschrieben wird. Lesen Sie sich den Thread gründlich durch. Um die Lüftersteuerung in den Griff zu bekommen, benötigen wir einen Patch von den Alexey Starikosvkiy. Je nachdem, welche Linux-Kernelversion Sie benutzen, brauchen Sie verschiedene Patches. Für einen 2.6.19.x Kernel benutzen Sie den Patch aus Post #180. Für einen 2.6.20 Kernel benutzen Sie den Patch aus Post #186. Speichern Sie den Patch einfach mit Rechts-Klick ab.

Kernelquellen

Auch mit Linux-Version 2.6.20 hat es der Patch noch nicht zur Aufnahme in den Mainline-Kernel geschafft, so müssen Sie immer noch selber Hand anlegen. Vermutlich funktioniert der Patch auch mit Debians Quellpaketen, ich habe aber die plain-vanilla Sourcen von kernel.org benutzt. Sie benötigen die aktuellen Quellen der 2.6.19er oder 2.6.20er Reihe.

Kernel patchen

Entpacken Sie den Kernel, verlinken linux, wechseln Sie dorthin und patchen den Kernel:

tar -xvjf linux-2.6.19.1.tar.bz2
ln -s linux-2.6.19.1 linux
cd linux
patch -p1 < /pfad/zum/patch/thermal.patch

Es sollten während des Patchens keine Fehler auftreten. Danach müssen Sie den Kernel kompilieren. Hinweis: Ich benutze Suspend2 für Suspend-to-RAM und Suspend-to-Disk. Um Suspend2 zu benutzen, müssen Sie einen weiteren Patch einspielen. Siehe Hibernate.

make menuconfig

Beachten Sie bitte die Hinweise in der Tabelle am Ende des Dokumentes. Sie finden dort nützliche Hinweise für die problemlose Einbindung der Hardware des Laptops, u. a. falls Sie die proprietären ATI-Treiber benutzen wollen.
Spätestens jetzt sollten Sie das Laptop ans Stromnetz anschließen, denn nun kompilieren Sie den Kernel nach Debian-Manier. Bevor Sie dies jedoch machen, schalten Sie unbedingt den Lüfter an, oder dieser wird während des Kompilierens gelegentlich ziemlich laut anspringen. Das liegt daran, daß der Prozessor eine Temperatur von ca. 80° C erreicht hat und der Überhitzungsschutz eingreift. Das ist nicht gut, außerdem ist es das Problem, das wir mit dem Patch beheben wollen.

echo 1 > /proc/acpi/fan/C255/state
make-kpkg kernel_image

Sollte Ihnen das nicht geheuer sein, kompilieren Sie den Kernel auf einer anderen Maschine und kopieren ihn anschließend auf das Laptop -- ich kann das nur empfehlen. Installieren Sie das Kernel-Paket mit dpkg und starten Sie das Laptop neu. Stellen Sie sicher, daß Sie Ihren neuen Kernel booten.

Bekannte Probleme

Mit dem Patch wird der Lüfter gemäß der Trip-Points in die Zustände D0 bis D3 versetzt. Meistens schaltet sich der Lüfter auch wieder aus (D3), manchmal jedoch nicht. Das ist zwar nervig, aber immer noch besser, als der vorherige Zustand, in dem der Lüfter erst bei 80° C durch den Überhitzungsschutz mit voller Kraft (D0) ansprang. Trotzdem können Sie die Situation etwas verbessern, wenn Sie im BIOS des Laptops die Option Always run fan when connected to power abschalten.

ATI XPress 200M Chipsatz

00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:04.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:05.0 PCI bridge: ATI Technologies Inc Unknown device 5a37
00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge

Wie man sieht, unterstützt Linux den ATI XPress 200M fast vollständig.

IDE

00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI

Das Modul BLK_DEV_ATIIXP stellt optimierte ATA-Funktionen zur Verfügung. Ob der ATI XPress 200M mit den neuen PATA-Treibern in 2.6.19 funktioniert, habe ich nicht ausprobiert.

USB

00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller

Der ATI SB400 USB Host-Controller ist standardkonform und wird dementsprechend direkt vom Kernel unterstützt.

Sound

00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)

Das HP nx6125 benutzt den weitverbreiteten Intel AC97 um die Sounderzeugung abzuwickeln. Linux und ALSA unterstützen ATIs Implementation mit dem SND_ATIIXP Modul.

Modem

00:14.6 Modem: ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 02)

Beim eingebauten Modem des HP nx6125 handelt es sich ebenfalls um ein AC97 Gerät. Es wird daher als Sounddevice unterstützt und das Modul nennt sich SND_ATIIXP_MODEM. Ob das Gerät funktioniert, weiß ich nicht.

Sensor

00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)

Das HP nx6125 benutzt den System Management Bus (SMBus), um Betriebsdaten auszulesen. Das Gerät wird ordentlich erkannt und funktioniert. Die Module i2c_ec, i2c-piix4, adm1021, eeprom und k8temp werden für lm-sensors benötigt. Die einfachste Lösung scheint mir, das Paket lm-sensors zu installieren und die automatische Erkennung zu benutzen

apt-get install lm-sensors
sensors-detect

Folgen Sie den Anweisungen auf dem Bildschirm. Sie können bedenkenlos allen Nachfragen zustimmen. Am Ende wird der Wizard die notwendigen Änderungen an der Datei /etc/modules vornehmen.

Andere Controller

Das HP nx6125 benutzt außer dem ATI XPress Chipsatz noch eine Reihe von Texas Instruments Controllern.

Firewire

04:04.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller

Der IEEE-1394 Host-Controller ist standardkonform und wird direkt vom Kernel unterstützt. Ob das wirklich funktioniert kann ich mangels Firewire-Gerät nicht bestätigen.

CardBus

04:04.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller

Im HP nx6125 ist der Texas Instruments PCIxx21/515 Cardbus-Controller für die Anbindung der PCMCIA und ExpressCard Schnittstelle zuständig. An sich wird dieser CardBus-Controller gut unterstützt, aber die Kernelentwickler weisen auf einige bekannte Probleme hin. Auch im HP Compaq nx6125 ist der Controller nicht direkt am PCI-Bus angeschlossen, so daß das beschriebene Problem mit nicht gefundenen PCMCIA-Karten auftreten kann. Abhilfe schafft der Kernel-Parameter

pci=assign-busses

Machen Sie diese Option zu einer permanenten Kernel-Option. Siehe auch weiter unten, Bootloader anpassen.
Nach dem Eintrag des Bootparameters wurde eine Lucent WaveLan Silver PCMCIA-Karte zumindest problemlos erkannt, mangels WLAN konnte ich die Funktion nicht prüfen.

CardReader

04:04.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Der Multi-CardReader wird ebenso wie die CardBus-Geräte vom Texas Instruments PCIxx21/x515 Controller verwaltet. Das Gerät funktioniert nur, wenn Sie die benötigten Funktionen fest im Kernel einbauen, Module funktionieren nicht! Siehe Kerneloptionen. Ich habe die Funktion nur mit einer alten MMC Karte getestet, ich vermute aber, SD-Karten etc. funktionieren ebenfalls.

Fingerprint Sensor

04:04.4 Class 0805: Texas Instruments PCI6411, PCI6421, PCI6611, PCI6621, PCI7411, PCI7421, PCI7611, PCI7621 Secure Digital (SD) Controller

Das Gerät »Authentec Fingerprint Scanner« wird halbwegs erkannt. Ich habe noch keine Versuche unternommen, es in Betrieb zu nehmen, aber anscheinend läßt sich das Gerät als USB-Device ansprechen und funktioniert so lala. Da es anscheinend keine Software gibt, die einen Mittels dieses Reader anmelden kann, verzichte ich vorerst auf weitere Experimente.

Netzwerk

Das HP Compaq nx6125 verfügt über zwei Netzwerkadapter, einmal für das gute, alte Kabelnetz und einmal für das neumodische Funknetz. Beide Module werden automatisch geladen.

LAN

04:01.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03)

Der NIC wird von Linux durch das TIGON3-Modul (aka tg3) unterstützt und ist vollständig betriebsbereit.

WLAN

04:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)

Der WLAN NIC wird vom Modul BCM43XX unterstützt. Ich habe hier kein WLAN, daher kann ich es nicht testen, jedoch wird das Modul fehlerfrei geladen.

Philipp Schelkle war so freundlich, mich darauf hinzuweisen, daß der WLAN-Betrieb mit Hilfe des NDISWrapper problemlos möglich ist. Vielen Dank nochmal.

X-Server

Die proprietären ATI-Treiber verursachen zu viel Arbeit und liefern dafür auch noch zu schlechte Ergebnisse. Ich bin daher auf die freien und offenen radeon-Treiber von X.org umgestiegen. Diese unterstützen den ATI Xpress 200M Chipsatz offiziell nicht! Ich habe im Betrieb aber nur ein kleines Problem im Zusammenhang mit EXA feststellen können -- siehe weiter unten. Im Vergleich zur proprietären Krüppelware von ATI bieten diese:

Allerdings erleidet man auch einige Einschränkungen: Ich benötige kein DualHead-Betrieb und kann dementsprechend nichts dazu sagen.

Vorbereitungen

Zunächst installieren wir den X-Server. In Debian Etch ist dies X.org 7.1. Um einigen potentiellen Problemen aus dem Weg zu gehen installieren wir diesen in zwei getrennten Schritten.

  1. apt-get install x11-common
  2. apt-get install xorg
Dies installiert auch gleich die aktuellesten FOSS Treiber für ATI-Karten.

Einrichtung des X-Servers

Die Einrichtung des X-Servers erfolgt mit den normalen Debian-Tools; entweder direkt bei der Installation oder später mit:

dpkg-reconfigure xserver-xorg
Die automatische Erkennung funktioniert gut, jedoch sollten Sie darauf achten, die Bildschirmwiederholfrequenz ihres Monitors auf 60Hz festzulegen. Andere Werte kann zumindest das Panel meines nx6125 nicht ab -- auch nicht die oft verfügbaren 75Hz.

Sie können sich auch meine xorg.conf Datei runterladen. Sie müssen diese lediglich umbenennen. Spezielle Auflsösungen, z. B. 1400x1050, können Sie mit dem Parameter PanelSize und dem dazughörigen Eintrag in der Screen Section erzwingen, siehe auch Im Dock.

Probleme

Die Probleme wurden oben schon angedeutet. Es sind langsame 3D Darstellung, Darstellungsfehler im EXA Modus und eine eingeschränkte automatische Erkennung einer Docking Station. Ich habe diese Probleme wie folgt »gelöst:«

  1. Die langsame 3D Darstellung resuöltiert aus der fehlenden DRI (direct rendering) Untersützung für die ATI XPress 200M. Daher greift X auf eine Softwareemulation zurück und die ist halt lahm. Mich stört das nicht, da ich keine 3D Beschleunigung benötige. Sie können ja ATI bitten, entweder die Spezifikationen des XPress 200M oder gar den proprietären Treiber zu öffnen.
  2. Der Parameter EXA kann zu Fehlern in der Darstellung des Root-Windows (des "Hintergrunds") des X-Servers führen. Es entstehen dann unschöne Übermaleffekte. Lassen Sie ihren WM einfach ein Hintergrundbild anzeigen oder deaktivieren Sie EXA in der xorg.conf, um dieses Verhalten zu ändern. Beachten Sie allerdings, daß EXA wesentlich zu einem sehr flüssigen Bildaufbau beiträgt.
  3. Die eingeschränkte automatische Erkennung einer Docking Station bedeutet, daß das Laptop beim Betrieb im Dock externe Bildschirme nicht erkennt und dementsprechend keine angepasste (höhere) Auflösung anzeigt. Es spielt dabei keine Rolle, ob das Laptop im Dock gestartet wurde oder im laufenden Betrieb eingelegt wurde. Meine Lösung funktioniert nur beim Neustart des X-Servers. Ich habe ein Skript geschrieben, daß beim Starten des X-Servers überprüft, ob das Laptop angedockt ist oder nicht. Leider erzeugt das Eingelegt-sein keine besondere Reaktion (sprich, kein ACPI-Event) beim Laptop, so daß das Skript lediglich prüft, ob der USB-Hub der Docking Station vorhanden ist oder nicht. Je nachdem was der Fall ist, wird eine andere xorg.conf benutzt, die die richtige Auflösung erzwingt. Sie können das Skript hier runterladen. Sie müssen das Skript ausführbar machen und es entweder aus dem Init-Skript ihres Display-Managers oder unabhängig, aber vorher ausführen. Siehe dafür
    man update-rc.d
    Die beiden xorg.conf Dateien finden Sie hier (undocked) und hier (docked).

Proprietäre ATI-Treiber

Ich wurde gebeten, die Anleitung zur Einrichtung der proprietären Krüppelware wieder on-line zu stellen. Das habe ich nun getan, siehe den Anhang hier.

TV-Out

Das Laptop hat einen TV-Ausgang. Ich hatte Gelegenheit, daß Laptop an einem Beamer zu testen. Zu diesem Zeitpunkt benutzte ich den proprietären ATI-Treiber in Version 8.29.8. Das funktioniert im wesentlichen problemlos, allerdings wurde eine maximale Auflösung von 800x600 angezeigt, obwohl der Beamer eine höhere Auflösung darstellen konnte. Bisher hatte ich keine Gelegenheit den FOSS Treiber an einem Beamer oder TV zu testen -- ich habe nämlich keinen Fernseher.

Eingabegeräte

Das HP Compaq nx6125 hat die üblichen Eingabegeräte verbaut, d. h. eine normal-große Laptop-Tastatur mit 87 Tasten und ein Touchpad. Ein Trackpoint, wie er bei IBM oder den teureren HP Compaq Modellen zusätzlich vorhanden ist, fehlt leider. Weiterhin verfügt das HP Compaq nx6125 über 5 Sondertasten oberhalb der Tastatur und die üblichen Fn+x Kombinationen.

Tastatur

Die Tastatur funktioniert erwartungsgemäß.

Touchpad

Das Touchpad wird vom Kernel als Synaptics Touchpad erkannt, der X.org Synaptics Input-Driver funktioniert und das Touchpad lößt sich mit den Userspacetools g/ksynaptics ohne Probleme einstellen. Der rechtsseitig im Touchpad angedeutete Scrollbalken funktioniert ohne Einschränkungen.

Sollten sich wider Erwarten doch Probleme ergeben, prüfen Sie, ob das evdev Modul geladen ist und die Option "SHMConfig" "true" in der entsprechenden Sektion der xorg.conf eingetragen ist.

Sondertasten

Mit den freien radeon-Treibern funktionieren die Sondertasten, wenn Sie folgende Parameter setzen:

setxkbmap -model armada -layout de -variant deadgraveacute

Externe Eingabegeräte

Keine Überraschungen. Erwartungsgemäß funktionieren per USB angeschlossene Eingabegeräte. Beachten Sie jedoch, daß Sie für spezielle Geräte wie z. B. Zeichentablets weitere Module benötigen könnten.

Powermanagement

CPUFreq

CPUFreq steuert die aktuelle Taktrate des Prozessors je nach Bedarf. Dazu müssen, wie in den Kerneloptionen beschrieben, die CPUFreq-Optionen gesetzt werden. Konkret heißt das, wir brauchen den 'conservative' CPUFreq governor und wir müssen die Verwaltung dem Userspace überlassen. Dort benutzen wir den powernowd Dämonen, um die Taktung zu verwalten.

modprobe powernow-k8
modprobe cpufreq_conservative
apt-get install powernowd

Sind alle Module geladen, funktioniert die dynamische Taktung ohne weitere Eingriffe unsererseits.

ACPI States
S0 ON. Das System ist an und kann benutzt werden.
S1 Power ON Suspend.
S2 Standby.
S3 Suspend to RAM. "Standby".
S4 Suspend to Disk. "Hibernate".
S5 Soft-OFF. Gerät ist aus.

Legende ACPI-States
Wird unterstützt.
Funktioniert mit Handarbeit
Wird nicht unterstützt.

Suspend/Hibernate

Die hauptsächlichen Stromsparfunktionen unter Debian GNU/Linux sind Suspend to RAM (S3) und Suspend to Disk (S4). Diese werden häufig Standby oder Suspend und Hibernate genannt. Die Begriffe stammen aus der MS Windows-Welt. Das HP Compaq nx6125 unterstützt die Powerstates S0, S3, S4 und S5. Eine kleine Aufschlüsselung finden Sie in der Tabelle rechts.

Suspend2

Ich benutze Suspend2 und kann damit mein Laptop in Standby oder Hibernate versetzen. Um Suspend2 zu benutzen, müssen Sie den Kernel patchen. Laden Sie von der Suspend2 Homepage den aktuellen Patch für Ihre Kernelsourcen runter und patchen Sie wie gewohnt die Quellen. Sie können dann Suspend2 bei der Konfiguration auswählen. Siehe auch die Kerneloptionen

Suspend2 und Sound

Suspend2 verträgt sich nicht mit dem Modul für das WinModem, snd_atiixp_modem. Schreiben Sie dieses Modul in die Blacklist in /etc/hibernate/blacklistedmodules und tragen Sie ALSA bei den zu startenden und zu stoppenden Services in /etc/hibernate/common.conf ein. Die Funktion RestartService funktioniert nicht! Damit funktioniert auch der Sound nach dem Aufwachen.

Hibernate-Skript und schlafen legen

Installieren Sie das Hibernate-Skript:

apt-get install hibernate

Und fügen Sie folgenden Parameter als permanente Option hinzu:

resume2=swap:/dev/hdXY

hdXY ist dabei ihre Swappartition. Nun können Sie Ihr Laptop mit dem Befehl hibernate schlafen legen.

Alles automatisch

Setzen Sie die Datei /proc/acpi/sleep auf suid und jeder Laptop-Daemon (klaptop, gnome-power-manager) sollte das Laptop nach Ihren Wünschen schlafen legen können.

Suspend2 User Interface

Mit UserUI habe ich mich noch nicht befasst.

Docking Station

Mir steht nur die Basic Docking Station PA286A zur Verfügung. Alle Anschlüsse mit Ausnahme des DVI-Ausgangs funktionieren. Vermutlich liefert die 200M einfach kein DVI-Signal, so daß der Anschluß brach liegt.
Die komplexere PA287A bzw. die Docking Stationen mit eingebauter Powerprotection könnten jedoch Schwierigkeiten machen. Meine Erfahrungen beziehen sich hier auf ältere IBM Docking Stationen mit zusätzlichen Steckplätzen. Der in der Docking Station eingebaute Chipsatz wird entweder nicht oder als Chipsatz des Laptops erkannt und führt zu lustigen Fehlermeldungen. Oft hilft die Option:

irqpoll

Es kann auch notwendig sein, Laufwerke über ihre UUID statt die Geräte-Bezeichnung zu mounten. Leider kann ich nicht mehr dazu sagen, nur ziehen Sie es in Erwägung, falls Sie noch keine Docking Station besitzen aber eine anschaffen wollen.

Hot-Plugging

Hot-Plugging funktioniert halbwegs. Sie können das Laptop im laufenden Betrieb in das Dock einlegen und es wird erfolgreich auf die Dock-Peripherie umgeschaltet, allerdings wird die Auflösung des X-Servers nicht angepasst. Sie können das Laptop auch im laufenden Betrieb vom Dock nehmen, aber u. U. müssen Sie dann ein paar Mal den Deckel auf/zu Knopf (der kleine Gumminoppen oben links) drücken, bis der Bildschirm wieder aufwacht. Es scheint, als würde das Laptop keine ACPI-Events auslösen, wenn es ins Dock gelegt wird. Das kann nicht richtig sein, aber momentan habe ich die Suche eingestellt.

Bootloader anpassen

Ich gehe vom GRUB Bootloader aus, in LiLo funktioniert das Ganze aber ähnlich, benutzen Sie dort das append Attribut. Zurück zu GRUB: Öffnen Sie die Datei /boot/grub/menu.lst mit einem Editor Ihrer Wahl. Suche Sie diesen Block in der Datei:

## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/hda1 ro vga=773 noapic nolapic

Ändern Sie die letzte Zeile wie folgt:

# kopt=root=/dev/hda1 resume2=swap:dev/hdYZ ro vga=773 pci=assign-busses

Natürlich müssen Sie das root-Device an Ihre Konfiguration anpassen. Nun zu den Optionen: resume informiert den Kernel über den Speicherort des Speicherbildes, daß beim Übergang in den ACPI-State S4 angelegt wurde. vga=773 kennen Sie ja bereits. pci=assign-busses wird für den fehlerfreien Betrieb der CardBus-Steckplätze benötigt. Wenn Sie die Änderungen vorgenommen haben, aktualisieren Sie GRUB.

update-grub

Bei einem Neustart werden dann diese Parameter verwendet. So, das war's. Viel Spaß mit dem HP nx6125 und Debian Etch.





Kerneloptionen
Name Kerneloption Auswahl Hinweise
Loadable Module Support
Enable loadable module support MODULES=YES Damit später das ATI fglrx Modul geladen werden kann
Module Unloading CONFIG_MODULE_UNLOAD=YES Damit Module entladen werden können.
Automatic Kernel Module Loading KMOD=YES
Module Versioning Support MODVERSIONS=NO Ist diese Option an, läßt sich das fglrx Modul nicht laden.
Processor Type and features
Local APIC Support on Uniprocessors X86_UP_APIC=YES Wir schalten später den Local APIC wieder hinzu, daher hier ja.
MTRR Support MTRR=YES Das fglrx Modul benötigt Memory Type Range Register Support.
Power Management Options / ACPI
ACPI Support ACPI=YES Ohne geht garnix.
Sleep States ACPI_SLEEP=YES ACPI Throttling.
Software Suspend SOFTWARE_SUSPEND=YES Damit die Maschine auch schlafen gehen kann.
Suspend2 SUSPEND2=YES Alternatives Suspend.
Swap Allocator SUSPEND2_SWAP=YES Image wird im Swap abgelegt.
Replace swsusp SUSPEND2_REPLACE_SWSUSP=YES Suspend2 kann mit normalen Suspend Befehlen betrieben werden.
AC Adapter, Battery, Button, Video, Generic Hotkey, Fan, Processor und Thermal Zone alle als MODUL
APM komplett aus
CPU Frequency Scaling
CPU Frequency Scaling CPU_FREQ=YES
'conservative' CPUFreq Governor CPU_FREQ_GOV_CONSERVATIVE=MODUL Erlaubt die Nutzung von PowerNow!
AMD Opteron/Athlon64 PowerNow! X86_POWERNOW_K8=MODUL Sowohl der Mobile Sempron als auch die Turions sind 64Bit K8er.
Default CPUFreq Governor auf USERSPACE setzen.
Bus Options
PCI Express Support PCIEPORTBUS=YES Die Mobile X300 ist über diesen Bus angebunden.
Device Drivers / Character Devices
/dev/agpgart AGP=MODUL
ATI Chipset Support AGP_ATI=MODUL Das brauchen wir, weil das Notebook einen ATI Chipsatz hat, nicht wegen der Grafik.
Direct rendering Manager DRM=NO DRM steht in Konflikt mit ATIs fglrx Treibern. MODUL ist die beste Wahl.
ATI RADEON DRM_RADEON=NO Der RADEON-Treiber steht im Konflikt mit ATIs fglrx Treiber. Evtl. wollen Sie diese Option als MODUL markieren. Wenn Sie keinen externen Monitor und/oder keine 3D Beschleunigung benötigen, ist der RADEON Treiber eine gute Wahl.
Device Drivers / Graphics Support
ATI Radeon Display Support FB_RADEON=NO Steht in Konflikt mit ATIs fglrx Treibern. VESA FB hingegen geht.
Device Drivers / Networking Devices / Ethernet (1000 MBit)
Broadcom Tigon3 Support TIGON3=MODUL
Device Drivers / Networking Devices / Wireless LAN
Broadcom BCM43xx Support BCM43XX=MODUL Noch stark in der Entwicklung.
Device Drivers / Sound / ALSA
Alles auf MODUL.
Device Drivers / Sound / ALSA / PCI Devices
ATI IXP AC97 Controller SND_ATIIXP=MODUL
ATI IXP Modem SND_ATIIXP_MODEM=MODUL Anscheinend wird das Modem unterstützt. Ich habe es nicht getestet.
Device Drivers / ATA... Support
ATI IXP Chipset BLK_DEV_ATIIXP=YES Ultra-DMA für unsere Festplatten und DVD-LW.
File Systems / Misc. Filesystems
Compressed ROM FS (cramfs) CRAMFS=YES Der ATI fglrx Treiber benötigt diese Funktion für die 3D-Beschleunigung.
SD-Card Reader
MMC Support MMC=YES Der SD-Card Reader funktioniert ohne weitere Konfiguration, wenn man diese Optionen fest einkompiliert.
MMC Block Device MMC_Block=YES Der SD-Card Reader funktioniert ohne weitere Konfiguration, wenn man diese Optionen fest einkompiliert.
Secure Digital Host Controller Interface MMC_SDHCI=YES Der SD-Card Reader funktioniert ohne weitere Konfiguration, wenn man diese Optionen fest einkompiliert.

X-Server mit dem proprietären ATI-Treiber

Diese Sektion wird nicht länger gepflegt!

Der freie X.org Radeon X-Server leistet gute Dienste, so lange man keine höheren Auflösungen als 1024x768 anstrebt, kein Dual-Head benutzt oder auf 3D-Beschleunigung verzichten kann. Brauchen Sie all das nicht, so empfehle ich Ihnen dringend, den X.org eigenen Radeon Treiber zu benutzen -- Sie sparen sich einigen Ärger.

Benötigen Sie höhere Auflösungen, weil Sie z. B. an einer Docking Station arbeiten, an die ein Monitor mit höherer Auflösung angeschlossen ist oder Sie wollen die bescheidene 3D-Leistung des XPress 200M für Xgl benutzen, dann brauchen Sie leider den ATI Proprietary Linux Display Treiber, unter GNU/Linux auch als fglrx bekannt. Der restliche Abschnitt setzt sich mit der Einrichtung dieses Treibers auseinander.

Vorbereitungen

Sie benötigen weitere Software. Zunächst benötigen Sie eine veraltete C++ Standardbibliothek:

apt-get install libstdc++5

Dann laden Sie von der ATI Homepage den ATI Linux Display Treiber für Notebooks runter. Momentan ist das Version 8.32.5. Ich möchte jedoch darauf hinweisen, daß dieser Treiber nicht mit den Stromsparmodi des Laptops zusammen arbeitet. Der letzte propritäre ATI Treiber, der einigermaß brauchbar ist, ist der Treiber Version 8.29.6, welchen ich auch benutze.

Schließlich muß ein X-Server installiert sein. In Debian Etch ist dies X.org 7.1. Um einigen potentiellen Problemen aus dem Weg zu gehen installieren wir diesen in zwei getrennten Schritten.

  1. apt-get install x11-common
  2. apt-get install xorg

Ist das getan, schreiten wir zur Installation des ATI Treibers.

Installation

sh ati-driver-installer-8.29.6.run

Folgen Sie den Anweisungen auf dem Bildschirm. Die vorausgewählten Optionen sind OK. Nach Abschluß der Installation sollte das Skript ein Alles in Ordnung liefern. Ist das nicht der Fall, so schauen Sie sich das Fehlerlog an. Konnte nur das Modul nicht geladen werden, so steht Ihnen der fglrx Treiber trotzdem für die 2D-Beschleunigung zur Verfügung. Das Kernelmodul wird nur für die 3D-Beschleunigung gebraucht.

Einrichtung des X-Servers

ATI empfiehlt die Einrichtung des X-Servers über sein Tool aticonfig. Ein Rat, dem wir folgen werden.

aticonfig | less

Schauen Sie sich die Optionen an und bereiten Sie ihre /etc/X11/xorg.conf vor:

aticonfig --initial
aticonfig Optionen
--vrefesh=0,60-60 Legt die Bildwiederholrate des ersten Bildschirms auf 60 Hertz fest.
--hsync=0,35-65 Definiert die horizontale Ablenkfrequenz des ersten Bildschirms als 35 bis 65 KiloHertz.
--resolution=0,1280x1024 Fügt dem ersten Bildschirm die Auflösung 1280x1024 hinzu. ATI benutzt immer eine Farbtiefe von 24 Bit.

Per default wird eine Auflösung von 1024x768x24 eingestellt. Falls Sie keinen externen Monitor benutzen oder eines der seltenen Breitbild-nx6125 haben, dann passt das bereits. Weitere nützliche Optionen finden Sie in der Tabelle rechts. Danach sollte Ihr X-Server für 2D-Betrieb konfiguriert sein. Testen Sie das mit:

startx

Sofern Sie keinen speziellen WM installiert haben, sollte nun ein x-Term erscheinen. Verlassen Sie X, indem Sie die Maus auf das x-Term bewegen und dort STRG+D drücken. Installieren Sie einen WM bzw. eine DE Ihrer Wahl, Sie können nun mit X arbeiten.

Hinweis

Noch ist der ATI-Treiber nicht richtig zu Hause angekommen. Erst beim nächsten Start klappen Standardverfahren wie STRG+ALT+Backspace etc. Wickeln Sie folgende Sequenz ab oder starten Sie Ihr Laptop einfach neu.

init 1

Drücken Sie wie aufgefordert STRG+D und Debian startet in Runlevel 2.

3D-Beschleunigung

Die obige Prozedur erlaubt es Ihnen, den unfreien ATI-Treiber für 2D-Beschleunigung zu benutzen. Wollen Sie auch noch 3D-Beschleunigung, so müssen Sie das Kernelmodul laden und einen Symlink auf die fglrx-OpenGL-Bibliothek legen.

Kernelmodul laden

Laden Sie das Modul zunächst von Hand.

modprobe fglrx

Kann das Modul nicht geladen werden, dann

lsmod | grep radeon

Wird das radeon Modul gefunden, so entfernen Sie es und das drm-Modul.

rmmod radeon
rmmod drm

Versuchen Sie dann erneut, das Modul zu laden.

modprobe fglrx

Sie sollten dann eine ähnliche Meldung wie diese sehen:

fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
[fglrx] Maximum main memory to use for locked dma buffers: 555 MBytes.
[fglrx] module loaded - fglrx 8.28.8 [Aug 17 2006] on minor 0

Ist das nicht der Fall, dann überprüfen Sie, ob das Modul geladen wurde.

lsmod | grep fglrx

Ist das nicht der Fall, dann prüfen Sie, ob alle Vorbereitungen abgeschlossen sind und ob alle notwendigen Kerneloptionen an bzw. aus sind.
Ist das Modul geladen, dann fügen Sie das Modul in die Datei /etc/modules ein. Kommentieren Sie evtl. vorhandene Einträge für radeon oder drm aus. Nun wird beim Systemstart das Kernelmodul geladen.

OpenGL

Der ATI-Treiber legt seine OpenGL- und DRI-Bibliotheken nach /usr/lib/dri, X.org 7.1 erwartet diese Bibliotheken aber in /usr/lib/xorg/modules/dri. Legen Sie dementsprechend einen Symlink auf /usr/lib/xorg/modules/dri.

ln -s /usr/lib/dri /usr/lib/xorg/modules/dri

Starten Sie nun X und überprüfen Sie die Ergebnisse, indem Sie folgenden Befehl in ein x-Term eingeben:

fglrxinfo

Sie sollten eine Ausgabe ähnlich der folgenden Erhalten:

display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON XPRESS Series Generic
OpenGL version string: 2.0.6011 (8.28.8)

Steht dort etwas von MESA, dann haben Sie den Link nicht richtig gelegt. Wiederholen Sie die obigen Schritte.

Um auch mal ein wenig Bewegung in die Sache zu bringen, geben Sie folgenden Befehl in ein x-Term ein:

fgl_glxgears

Sie bekommen in einem Extrafenster einen Würfel mit Zahnrädern angezeigt. Das x-Term zeigt eine durchschnittliche FPS Zahl an, erwarten Sie für eine Mobility X300 Werte um die 110 bis 130 FPS.

Noch mehr Probleme

Die ATI-Krüppelware gilt als schwierig zu installieren. Tatsächlich ist sie nicht schwerer zu installieren als jede andere geschlossene, unfreie Krüppelware. Die Geheimniskrämerei der Hersteller erschwert die Fehlersuche, da man lediglich die Außenwand des Problems zu sehen bekommt. Versuchen Sie mal einen KFZ-Motor zu reparieren, wenn Sie die Motorhaube nicht aufmachen dü rfen -- schwierig. Das nennt ATI dann "kundenorientiert"...
Genug Seifenkiste, das Netz ist voll von Problemberichten und Lösungsvorschlägen bzgl. der ATI-Treiber. Ich kann und will hier nicht alle möglichen Fehler abhandeln, aber ich habe eine kleine Link-Sektion am Ende dieses Dokumentes eingerichtet. Bei den Links bzgl. ATI Troubleshooting finden Sie allerhand Ratschläge.

TV-Out

Das Laptop hat einen TV-Ausgang. Ich habe keinen Fernseher oder Beamer, somit kann ich den Ausgang nicht testen. Ich vermute, zumindest mit den ATI-Treibern wird der Ausgang funktionieren.

Links

Hier finden Sie ein paar Links, die ich nützlich fand:

Allgemein

http://home.telkomsa.net/richm/hp-nx6125.html
http://de.gentoo-wiki.com/Compaq_HP_nx6125
http://tuxmobil.de/hp_compaq.html
http://www.linux-on-laptops.com/hp.html
http://bugzilla.kernel.org/show_bug.cgi?id=5534
http://www.kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html#pcmciautils

Freie radeon-Treiber

man radeon

ATI Propritary Display Drivers

http://www2.ati.com/drivers/linux/linux_8.29.6-inst.html
http://wiki.debianforum.de/AtiGanzEinfach
http://wiki.debianforum.de/AtiTreiberInstallation
http://wiki.debianforum.de/AtiRamMTRR
http://www.stanchina.net/~flavio/debian/fglrx-installer.html

Suspend2

http://www.suspend2.net/
http://www.debianforum.de/forum/viewtopic.php?t=76446&highlight=
>

Authentec Fingerprint Reader

http://gentoo-wiki.com/HARDWARE_Gentoo_on_HP_Compaq_nx6325#Finger_Print_Sensor

Direkte Links zu Patches

Thermal Control Patch
Suspend2 Patch

to do

Wie oben in der Warnung bereits erwähnt ist diese Seite im Fluß. Ich probiere hier Dinge aus und werde häufiger Umstellungen vornehmen. Damit Sie ein wenig Einblick erhalten, hier eine kurze Liste, ohne besondere Prioritäten, meiner Pläne bzgl. der Seite: