Das HP/Compaq nx5000 wird fast vollständig von Linux unterstützt, einige manuelle Anpassungen sind hierfür jedoch erforderlich. Die nachfolgenden Informationen beziehen auf den Betrieb unter openSUSE 10.2 (und sollten zumindest auch für 10.1 weitgehend Gültigkeit haben) mit der Desktop-Umgebung KDE. Ein Teil der Informationen bezieht sich noch auf ältere Versionen von Suse und ist inzwischen evtl. obsolet. Hierbei geht es um seltener benutze Funktionen. An den entsprechenden Stellen findet sich ein Hinweis. Nicht erwähnte Hardware sollte out-of-the-box gut funktionieren. HP/Compaq hat eine umfangreiche Übersicht zur verbauten Hardware ins Internet gestellt. Siehe zusätzlich auch LinuxHardware/NoteBooks/Compaq/nx5000/lspci. Einen optische Eindruck vom nx5000 gewinnt man am besten in dieser Flash-Präsentation.
Inhaltsverzeichnis
Software
In den USA wurde das nx5000 offiziell von HP/Compaq zusammen mit SuSE Linux 9.1 angeboten. In Deutschland muss man Windows XP leider mitkaufen. Das ist u.a. deswegen schade, weil die US-Version die kommerzielle Software LinDVD enthält. Auf der HP-Treiberdownloadseite für das nx5000 gibt es bislang lediglich eine aktualisierte Version des Bios zum downloaden. Dieses neue BIOS sollte unbedingt jeder einspielen, der Wert auf volle Stromsparfunktionen des Prozessors legt. Die alte BIOS Version unterstützte kein Throttling.
Sondertasten
Alle Sondertasten lassen sich unter Linux nutzen, dies setzt jedoch einige manuelle Anpassungen voraus. Zunächst muss man im KDE-Kontrollzentrum unter
Regionaleinstellungen -> Tastaturlayout
als Tastaturtyp Compaq Internet Keyboard (13keys) auswählen. Dieser Tastaturtyp beinhaltet die meisten, jedoch nicht alle Tasten der NX5000-Tastatur. Es fehlt noch die Unterstützung für die drei Sondertasten neben der Powertaste (Screenlock, WLAN, Präsentation) sowie für fn+f8 (Batterie-Symbol). Außerdem reicht es nicht aus, dass die Sondertasten erkannt werden, man muss ihnen auch noch Funktionen zuweisen.
Einrichtung der noch fehlenden Sondertasten
Damit die drei Sondertasten neben der Powertaste sowie fn+f8 unterstützt werden, muss man ihnen erst Keycodes zuweisen.
Hierzu muss das folgende Bash-Script als root ausgeführt werden:
#! /bin/bash setkeycodes e00a 200 setkeycodes e057 201 setkeycodes e008 202 setkeycodes e009 203
Anmerkung: Diese Befehle kann man durch ein init-Script auch beim Booten ausführen lassen. Die früher hier dokumentierte Methode für Suse 9.1 funktioniert aber nicht länger. Lösungsmöglichkeiten bitte hier ergänzen!
Zusätzlich muss noch das folgende Skript beim Start von KDE ausgeführt werden:
#! /bin/bash xmodmap -e "keycode 168=F21" xmodmap -e "keycode 169=F22" xmodmap -e "keycode 171=F23" xmodmap -e "keycode 172=F24"
Man kann es z.B. unter
~/.kde/Autostart
abspeichern.
Nun sollten alle Sondertasten zur Verfügung stehen.
Belegungsvorschläge
Im KDE-Kontrollzentrum kann man unter
Regionaleinstellungen & Zugangshilfen -> Tastenkombinationen
den Sondertasten die gewünschten Funktionen zuweisen.
Audio
Unter KDE 3.3.2 oder neuer läuft der KDE-Dienst KMilo im Hintergrund, der dafür sorgt, dass die Audiotasten ohne zusätzliche Konfiguration die Lautstärke über das Programm kmix einstellen. Ob KMilo läuft kann man im KDE-Kontrollzentrum unter
KDE-Komponenten -> Diensteverwaltung -> KDE-Dienste beim Start
nachprüfen. KMilo unterstützt allerdings nicht das rote LED hinter der Mute-Taste. Um das rote LED zu aktivieren gibt es folgenden Workaround:
1. Im Ordner Autostart muss ein Script angelegt werden, welches die Mute-Taste umbenennt, damit KMilo sie nicht weiter automatisch belegt:
# xmodmap -e "keysym XF86AudioMute = F25"
2. Nach einem Neustart kann man nun dem Mute-Knopf unter 'Tastenkombinationen' (s.o) das folgende Script zuordnen:
MUTE=`dcop kmix Mixer0 masterMute` if $MUTE -eq "true" ; then dcop kmix Mixer0 setMasterMute off dcop kmix Mixer0 setMute 21 off else dcop kmix Mixer0 setMasterMute on dcop kmix Mixer0 setMute 21 on fi
Screenlock
# Die folgende Zeile sperrt den Bildschirm. Ggf. weglassen. kdesktop_lock --forcelock # Die folgende Zeile schaltet den Bildschirm zum Stromsparen aus. Ggf. weglassen. xset dpms force suspend sleep 1
fn+f3 (Standby)
Kann mit KPowersave konfiguriert werden.
WLAN-Taste
Wird automatisch belegt. Kann daneben aber zusätzlich auch beliebigen Befehlen zugeordnet werden,
Energiesparfunktionen
Damit Throttling (Stromsparfunktionen des Prozessors) funktioniert, muss ein neues Bios installiert werden,
Suspend to RAM
Suspend to Ram funktioniert mit dem Befehl
s2ram -f -a 2
out of the box. Mit KPowersave funktioniert es erst, nachdem unter
/etc/pm/config
die Zeile
S2RAM_OPTS=""
in
S2RAM_OPTS="-f -a 2"
abgeändert wird.
Festplatte
Wenn man die Festplatte im laptop-mode betreibt, kann man evtl. ebenfalls Strom sparen. Dies setzt jedoch eine umfangreiche manuelle Konfiguration voraus. Näheres steht in der Datei
/usr/src/linux/Documentation/laptop-mode.txt
die Teil des Pakets kernel-source ist.
SD-Card-Reader (Informationen beziehen sich auf openSUSE 10.3)
Als der nx5000 mit Suse 9.1 auf dem Markt kam, war dies die einzige wichtige Komponente ohne Linuxunterstützung. Zumindest mit openSUSE 10.3 funktioniert der Reader jetzt aber out-of-the-box.
Modem (Informationen beziehen sich auf Suse 9.2)
Softmodem. Wird bei der Installation erkannt und sollte funktionieren. Siehe den Kommentar zum Linux JournalTestbericht hierzu. Selber nicht ausprobiert.
IRDA (Informationen beziehen sich auf Suse 9.2 bzw. 10.1)
IRDA funktioniert sowohl im SIR als auch im FIR Modus. Getestet wurde die Funktion mit Palm Vx, Siemens S55 und Polar S720i. Im Regelfall sollte für das Übertragen von Dateien der FIR Modus ausreichen. Einige Clients (z.B. Polar Pulsuhr S720i) kommunizieren allerdings nur über SIR. Um IRDA vollständig zum Funktionieren zu bringen, müssen einige manuelle Eingriffe durchgeführt werden. Ich habe deshalb das Initscript
/etc/init.d/irda
etwas modifiziert, damit der jeweilige Modus reibungslos gestartet und beendet werden kann:
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany. # # Author: Christian Zoz <zoz@suse.de> # # 27/03/2005: modified by Guenther M. Erhard <guenther dot erhard at gmx dot de> # to match HP Compaq nx5000 hardware. New options swapmode and swapattach created # to ease the switching between FIR and SIR or starting and stopping of irattach # in scripts. # # chkconfig: 2345 45 96 # # /etc/init.d/irda # # and it's symbolic link # # /usr/sbin/rcirda # ### BEGIN INIT INFO # Provides: irda # Required-Start: $remote_fs $syslog # X-UnitedLinux-Should-Start: setserial # Required-Stop: $remote_fs $syslog # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: attaches /dev/ircomm to the IrDA port and starts detection ### END INIT INFO . /etc/rc.status . /etc/sysconfig/irda # Shell functions sourced from /etc/rc.status: # rc_check check and set local and overall rc status # rc_status check and set local and overall rc status # rc_status -v ditto but be verbose in local rc status # rc_status -v -r ditto and clear the local rc status # rc_failed set local and overall rc status to failed # rc_reset clear local rc status (overall remains) # rc_exit exit appropriate to overall rc status # First reset status of this service rc_reset if [ "$2" != "" ] ; then IRDA_MODE="$2" fi case "$1" in start) if [ "$IRDA_MODE" = "FIR" ] ; then echo -n "Starting service IrDA in FIR mode" /bin/setserial /dev/ttyS2 uart none /sbin/modprobe smsc-ircc2 else echo -n "Starting service IrDA in SIR mode" /bin/setserial /dev/ttyS2 uart 16550A port 0x03e8 irq 3 /sbin/modprobe actisys-sir fi /sbin/modprobe ircomm /sbin/modprobe ircomm-tty /sbin/modprobe irtty-sir sleep 2 /bin/chmod 0666 /dev/ircomm0 /bin/ln -sf /dev/ircomm0 /dev/pilot echo 1 > /proc/sys/net/irda/max_tx_window echo 1000 > /proc/sys/net/irda/min_tx_turn_time echo 2000 > /proc/sys/net/irda/max_tx_data_size # Set the maximum baud rate if requested if [ -n "$IRDA_MAX_BAUD_RATE" -a "$IRDA_MAX_BAUD_RATE" -ne "0" ] ; then echo $IRDA_MAX_BAUD_RATE >/proc/sys/net/irda/max_baud_rate fi ## Start daemon with startproc(8). If this fails ## the echo return value is set appropriate. ## Sometimes irattach should not run to enable communication, e.g. Polar S720i needs this if [ "$IRATTACH" = "yes" ] ; then if [ "$IRDA_MODE" = "FIR" ] ; then startproc /usr/sbin/irattach ${IRDA_PORT_FIR} -s >/dev/null else startproc /usr/sbin/irattach ${IRDA_PORT_SIR} -d ${DONGLE} -s >/dev/null fi fi # Remember status and be verbose rc_status -v ;; stop) ## Stop daemon with killproc(8) and if this fails ## set echo the echo return value. if [ "$IRDA_MODE" = "FIR" ] ; then echo -n "Shutting down service IrDA in FIR mode" killproc -TERM /usr/sbin/irattach sleep 2 rmmod irtty-sir sir_dev ircomm_tty ircomm smsc_ircc2 irda > /dev/null else echo -n "Shutting down service IrDA in SIR mode" killproc -TERM /usr/sbin/irattach sleep 2 rmmod irtty-sir ircomm_tty actisys-sir sir_dev ircomm irda > /dev/null fi # Remember status and be verbose rc_status -v ;; try-restart) $0 status >/dev/null && $0 restart ;; restart|force-reload) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop $0 start # Remember status and be quiet rc_status ;; reload) ;; status) echo -n "Checking for service IrDA: " ## Check status with checkproc(8), if process is running ## checkproc will return with exit status 0. checkproc /usr/sbin/irattach # Remember status and be verbose rc_status -v ;; swapmode) ## To make it easier to switch between SIR and FIR ## this script determines the current mode and swaps ## to the opposite mode. if [ `lsmod | grep actisys | wc -l` -gt 0 ] ; then IRDA_MODE=SIR IRDA_MODE_NEW=FIR else IRDA_MODE=FIR IRDA_MODE_NEW=SIR fi $0 stop $IRDA_MODE $0 start $IRDA_MODE_NEW # Remember status and be quiet rc_status ;; swapattach) ## start or stops irattach depending on its current run state if [ `ps ax | grep irattach | wc -l` -gt 1 ] ; then echo -n "Stopping irattach: " killproc -TERM /usr/sbin/irattach else echo -n "Starting irattach: " if [ `lsmod | grep actisys | wc -l` -gt 0 ] ; then IRDA_MODE=SIR else IRDA_MODE=FIR fi if [ "$IRDA_MODE" = "FIR" ] ; then startproc /usr/sbin/irattach ${IRDA_PORT_FIR} -s >/dev/null else startproc /usr/sbin/irattach ${IRDA_PORT_SIR} -d ${DONGLE} -s >/dev/null fi fi # Remember status and be verbose rc_status -v ;; *) echo "Usage: $0 {start|stop|status|[try-]restart|[force-]reload|swapmode|swapattach}" exit 1 ;; esac rc_exit
Damit die Kernel-Module sauber geladen werden, sind in
/etc/modprobe.conf.local
noch folgende Einträge erforderlich:
alias irda0 smsc-ircc2 alias tty-ldisc-11 irtty-sir alias char-major-161 ircomm-tty alias char-major-10-187 irnet
Die Konfiguration erfolgt wie üblich über die IRDA sysconfig Datei
/etc/sysconfig/irda
mit von mir erweiterten Inhalt :
## Path: Hardware/IrDA ## Description: Settings for the infraread device ## Type: string("",/dev/ttyS1) ## Default: /dev/ttyS1 ## ServiceRestart: irda ## 26/03/2005: modified by Guenther M. Erhard to match HP Compaq nx5000 hardware # # IrDA is the infrared interface often found on laptops. # To activate permanently, call "insserv /etc/init.d/irda" # # Currently the UART (SIR) mode is supported in the normal configuration. The # variable IRDA_PORT sets the used serial port. Have a look at your BIOS-Setup, # to find out which is correct. # # If you have a supported FIR chipset, specify the name of the corresponding # kernel module in IRDA_PORT, e.g. IRDA_PORT="toshoboe". FIR must be enabled in # the BIOS setup first. Sometimes you additionally have to disable the serial # port, which would be used in SIR mode via 'setserial /dev/ttyS<x> uart none' # # Set the mode you want: FIR or SIR. Beware: stop IRDA service before change! IRDA_MODE=FIR # Ports for the different modi IRDA_PORT_FIR="irda0 ircc_irq=3 ircc_dma=3" IRDA_PORT_SIR=/dev/ttyS2 # Dongle for SIR mode DONGLE=actisys+ # Start irattach?: yes or no IRATTACH=yes # Start discovery of devices? yes or no DISCOVERY=no ## Description: Maximum baud rate ## Type: list(0,9600,19200,38400,57600,115200) ## Default: 0 # # Sets the maximum baud rate for the IrDA serial port. # Some devices (e.g. Nokia mobile phones) need this. # Setting to '0' will leave the setting untouched. # IRDA_MAX_BAUD_RATE="115200"
Diese Dateien in das eigene System kopieren bzw. die bestehenden entsprechend modifizieren. Nach Einstellen der gewünschten Parameter und aktivieren von IRDA in YAST sollte der Kommunikation nicht mehr im Wege stehen. Als erster Test kann z.B. der Aufruf (als root) von
irdadump
dienen. Wenn irattach im Hintergrund läuft, dann sollte sich eine ähnliche Ausgabe des gefundenen Clients ergeben:
kolibri:/etc/sysconfig # irdadump 22:30:59.197691 xid:cmd a07de381 > ffffffff S=6 s=4 (14) 22:30:59.287560 xid:cmd a07de381 > ffffffff S=6 s=5 (14) 22:30:59.377549 xid:cmd a07de381 > ffffffff S=6 s=* kolibri hint=0400 [ Computer ] (23) 22:31:01.837178 xid:cmd a07de381 > ffffffff S=6 s=0 (14) 22:31:01.927160 xid:cmd a07de381 > ffffffff S=6 s=1 (14) 22:31:02.012183 xid:rsp a07de381 < 000000cb S=6 s=1 SIEMENS S55 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (28) 22:31:02.017145 xid:cmd a07de381 > ffffffff S=6 s=2 (14) 22:31:02.107133 xid:cmd a07de381 > ffffffff S=6 s=3 (14) 22:31:02.197119 xid:cmd a07de381 > ffffffff S=6 s=4 (14) 22:31:02.287105 xid:cmd a07de381 > ffffffff S=6 s=5 (14) 22:31:02.377092 xid:cmd a07de381 > ffffffff S=6 s=* kolibri hint=0400 [ Computer ] (23)
Weitere Hinweise zur Kommunikation mit Handies: howto.
Bluetooth-Schnittstelle
Selber nicht ausprobiert. Einem Kommentar zum Linux JournalTestbericht zufolge funktioniert es.
Firewire
Selber nicht ausprobiert. Einem Kommentar zum Linux JournalTestbericht zufolge funktioniert es.
Graphik
Unter SuSE wird die Graphikkarte automatisch erkannt. Unter SuSE 9.1 soll es mit nx5000-Versionen mit 1400×1050-Bildschirmen seltene Stabilitätsprobleme gegeben haben. Siehe hierzu den Kommentar zum Bericht im Linux Journal. Ob dies auch derzeit noch gilt, ist mir nicht bekannt.
3D-Beschleunigung
- Die 3D-Beschleunigung muss in Yast2 manuell eingeschaltet werden.
Monitor out, S-Video out und Xinerama
Monitor out funktioniert ohne Probleme. Hiermit ist z.B. der Anschluss an einen Beamer möglich. Eine manuelle Konfiguration ist nicht erforderlich. Umgeschaltet wird mit fn+f4. Einem Kommentar zum Linux JournalTestbericht zufolge funktioniert S-Video out. Bei der Konfiguration ist der Artikel in der ct 17/2004 (teilweise online) möglicherweise hilfreich. Der Anschluss an einem Ferneher funktioniert, kann die Videoeinstellungen von Yast/Sax2durcheinanderbringen. In Folge lässt sich Sax bei mir derzeit nicht starten.
TouchPad
Wird out-of-the-box mit erweiterten Funktionen unterstützt. Mot Konsolenbefehlen ist eine Feinkonfiguration möglich. Siehe hierfür die Manuals für synaptics, synclient und syndaemon. Hier mein Script im Ordner Autostart, mit dem ich das Touchpad konfiguriere:
# # Sperrt die Maus für 0,2 Sek. nach dem Tippen: syndaemon -i 0.2 -d # Verhindert, dass ein Tippen mit einem Finger auf das Touchpad als einfacher Mausklick interpretiert wird: synclient TapButton1=0 # Verhindert, dass ein Tippen mit zwei Fingern auf das Touchpad als Doppelklick interpretiert wird: synclient TapButton2=0 # Interpretiert ein Tippen mit drei Fingern auf das Touchpad als Klick auf die mittlere Maustaste (=Einfügen) synclient TapButton3=2 # Verhindert, dass beim Schreiben die Handfläche die Maus verschiebt: synclient PalmDetect=1
Weblinks
This report is listed at TuxMobil - Linux on laptops, notebooks, PDAs and mobile phones.