Fujitsu / Siemens Celsius Mobile H

Einrichtung unter Linux

Entwicklung durch den Lehrstuhl Technische Informatik der Martin-Luther-Universität Halle

(English eng )


Vorwort: Die hier beschriebene Anleitung zur Installation des Laptops "Fujitsu/Siemens Celsius Mobile H" wurde unter SuSE Linux 7.3 durchgeführt, sollte aber prinzipiell auch unter anderen Linux-Distributionen möglich sein.
Speziell auf diese SuSE-Distribution ausgerichtete Einstellungen werden durch das Symbol 7.3 markiert.

Einige technische Daten des Gerätes (betrifft nur Hardware, die getesterweise von mir unter Linux funktioniert):
  • Intel Mobile Pentium III (Tualatin 1.13GHz mit SpeedStep) auf
  • Board mit Intel 830EM Chipsatz bis 1GB RAM
  • nVIDIA Quadro2 Go, 4xAGP - Grafikchip mit
  • 64MB DDR-Videospeicher für
  • 15" UXGA LCD_TFT, Auflösung 1600x1200x32 und
  • externer DVI-Ausgang mit Adapter für VGA
  • ESS Allegro-Soundcard
  • IrDA 1.1 FIR Infrarot link (4 MB/s)
  • 2xTyp2 bzw. 1xTyp3 PC-Card-Plätze
  • 2xUSB, 1xseriell, 1xparallel Port(s)

Zu weiteren technischen Daten des Gerätes sei an dieser Stelle auf die zugehörige Webseite des Herstellers verwiesen.
Basisinstallation: Das Notebook wird ausgeliefert mit einer Dualinstallation von Windows 2000 oder NT. Nachdem sich der Nutzer entschieden hat (für Win2000 :-) ) erfolgt eine Installation des Systems auf einer primären Partition (ca. 4GB) der eingebauten Platte (30GB im Testgerät).
Somit bleibt noch genügend freier Platz auf dem Rest der Platte für den Pinguin.

Nach dem Booten von der Linux-DVD/CD (F12 beim Bootvorgang drücken und dann den DVD-Schacht auswählen) sollte die Linuxgrundinstallation im Prinzip problemlos möglich sein, wenn man folgendes beachtet:
Der mitgelieferte Kernel (7.3 2.4.10) hat Probleme bei der Erkennung der Funktastatur als USB-HID. Man sollte das bei der gewählten Distribution testen. Wie man die Tastatur nachträglich zum Laufen bringt, wird mit der Installation des Kernels (2.4.18) beschrieben. Für die Installation ist sicherlich der Anschluß einer externen PS/2-Tastatur (und Maus über das mitgelieferte Splitkabel) oder das Verbindungskabel der Funktastatur zum PS/2-Port erforderlich. Es hat sich auch herausgestellt, daß es Probleme bei der Installation und aktivierter APM-Unterstützung des Kernels gibt. Insofern empfehle ich für die Installation folgende Einstellungen (bei lilo hinter dem Kernel in der Befehlszeile angeben):
         lilo: linux apm=off disableapic
       
Sicherheitshalber wurde für die Installation auch noch APIC ausgeschaltet. Die Auswahl linux ist natürlich von der Distribution abhängig. Unter 7.3 7.3 ist hierzu der Punkt:
  Installation - Safe Settings 
auszuwählen. Eine Auflösung von 1024x768 bei der Installation ist möglich!

Hinweis: Sollte bei der Hardwareerkennung oder Abfrage der USB-Geräte bei der Installation diese hängen bleiben, so lag das sicherlich daran, daß man das Touchpad auf der Funktastatur berührt hat. Dieser Fehler tritt unter bestimmten Bedingungen auch bei dem neuen Kernel auf. Deswegen sollte man nach dem Booten Funk-Tastatur und -Touchpad erst wieder nach dem Starten des USB-Managers benutzen.

Die Installation kann nun problemlos erst mal weiter durchschritten werden:
Beispiel 7.3 7.3 mit Yast2: Tastaturbelegung (Deutsch), Zeitzone (hier muß man noch festlegen, ob die BIOS-Uhr mit Ortszeit oder GMT-Zeit läuft.), Neuinstallation, Festplatte partitionieren. Hier habe ich nicht die vorgeschlagenen Werte genommen, sondern eine 17GB-FAT32 Partition angelegt, über die ich dann Daten mit Windows austauschen kann, womit sich folgende Einteilung ergibt:
/dev/hda1 4GB HPFS/NTFS
/dev/hda2   Erweitert
/dev/hda5 512 MB SWAP
/dev/hda6 6 GB Linux z.B. Reiser-FS
/dev/hda7 ca. 17 GB FAT 32
Bei der Paketauswahl sollte man darauf achten, daß für die spätere Installation des Kernels der Compiler benötigt wird, also Pakete der Serie dev. LILO kann ruhig in den MBR installiert werden, als zusätzliche Bootparameter sind dann enableapic vga=0x0317 apm=off zu wählen. Über APM und APIC wird noch später in einem extra Abschnitt berichtet.

Die Konfiguration des X-Servers sollte man an dieser Stelle noch nicht durchführen, da die Module für den X-Server von nVidia nicht auf dem Installationsmedium vorhanden sind.

Hardwarekonfiguration bei Abschluß der Installation (wird bei SuSE autromatisch erkannt):
Netzwerkkarte: Realtek RTL-8139 Modul: 8139too Siehe Abschnitt:
Netzwerk
Soundkarte: ESS1988 Allegro-1 Über ALSA-Modul: maestro3 Siehe Abschnitt:
Soundkonfiguration
Diese Konfiguaration wird bei der Installation in /etc/modules.conf eingetragen und bleibt somit auch nach dem Übersetzen von Kernel und Soundkarten-Treiber erhalten.

Somit ist der erste Teil der Installation durchlaufen, das System kann erst mal gestartet werden und als nächstes wäre ein neuer Kernel zu übersetzen. Für alle die über LAN mit dem Internet verbunden sind, bietet es sich an, den aktuellen Kernel auch von dort zu besorgen,. Vorher muß natürlich das Netzwerk konfiguriert werden. Als Alternative ginge natürlich auch Kernel von CD u.a.
Netzwerkkonfiguration: Diese Einstellung ist distributionsabhängig. Meist funktioniert es, wenn man in /etc/modules.conf einträgt:
    alias eth0 8139too

Dann besorgt man sich z.B. per dhcpcd vom DHCP-Server, eine IP-Nummer :
    depmod -a
    ifconfig eth0
    /sbin/dhpcd eth0

oder man vergibt eine feste IP-Nummer mit dem Konfigprogramm der Distribution.

Nun kann man sich den Kernel, z.B. mittels eines WebBrowsers für die Konsole, falls w3m installiert ist:
    w3m www.kernel.org
herunterladen.
 
Kernel übersetzen: Getestet wude die Installation mit dem Kernel 2.4.18. Dazu Datei linux-2.4.18.tar.bz2 von kernel.org oder einem Mirror laden und in das Verzeichnis /usr/src durch Aufruf von:
    cd /usr/src
    mv linux linux.old
    tar xjf $DOWNLOADPATH/linux-2.4.18.tar.bz2

entpacken. Außerdem empfehle ich noch folgende Schritte:
    mv linux linux-2.4.18
    ln -s linux-2.4.18 linux

Anschließend in das Verzeichnis linux wechseln und durch Aufruf von:
    make menuconfig
den Kernel konfigurieren. Wer der hier angegebenen Konfigurationsdatei vertraut, kann diese einfach laden und anschließend:
    make dep; make clean;
    make bzImage; make modules; make modules_install

aufrufen. Natürlich kann man auch die einzelnen Punkte der Konfiguaration selber vornehmen, wichtig ist aber folgende Auswahl:
  • Input Core Support [M]
    • Keyboard support [M]
    • Mouse support [M]
    • Event Interface Support [M]
  • Character Devices -->
    • /dev/agpgart (AGP Support) [ ] AUS
  • Console Driver [M]
    • Frame-buffer support --->
      • nVidia Riva support [ ] AUS
  • Support for USB [M]
    • UCHI (Intel PIIX4,...) [M]
    • USB Human Interface Device (full HID) support [M]
    • USB HIDBP Keyboard [ ] AUS
    • USB HIDBP Mouse [ ] AUS
Der Kernel-Sound-Support ist in Kernel 2.4.18 für die enthaltene Soundkarte noch EXPERIMENTELL, deswegen empfehle ich die ALSA-Treiber (siehe unten).
Weiterhin sollte der "nVidia Riva Frame-buffer support" höchstens als Modul, aber keinesfalls direkt in den Kernel compiliert werden, da erste Tests zeigten, daß beim Booten ein Modus aktiviert wird, den das Display nicht darstellen kann (Bild kippt).

Die AGP-Unterstützung wurde ebenfalls deaktiviert. Zwar ist die AGP-Ansteuerung ab Kernel 2.4.18 für diesen Chipsatz möglich (im Gegensatz zu 2.4.17, wo sie sich nicht laden lies) aber im laufenden Betrieb blieb unter X das System oftmals hängen. Nach Löschen des Moduls lief das System stabil und die Geschwindigkeit ist wohl ausreichend schnell. Mit einer neueren Kernel-Version ist dieses Problem vielleicht behoben. Ob der X-Server die AGP-Unterstützung nutzt, kann man nach dem Start des X-Servers aus der /var/log/XFree86.0.log erfahren. Die Zeile
  (WW) NVIDIA(0): Failed to verify AGP usage
zeigt, dass hier die Untestützung nicht genutzt wird. Ist sie aktiviert und der Rechner friert unter X oftmals ein, so sollte der Kernel, wie oben erwähnt, ohne "/dev/agpgart (AGP Support)" nochmals übersetzt werden.

Nach dem Übersetzen findet man im Unterverzeichnis "arch/i386/boot" den neuen Kernel bzImage, der wie die Datei System.map aus dem Linux-Quellverzeichnis nach /boot gehört.

Nun noch /etc/lilo.conf editieren (hier ein Beispiel), anschließend aufrufen:
    lilo
und neu booten.

Nun sollte auch die Funktastatur benutzt werden können. Falls nicht, so ist zu überprüfen, ob der "UHCI Alternate Driver" statt "UHCI" verwendet wird, also das Modul "uhci" und nicht "usb-uhci" geladen wurde: modprobe | grep uhci
(7.37.3 Unter der Datei /etc/rc.config.d/hotplug.rc.config wird die Reihenfolge in der HOTPLUG_USB_HOSTCONTROLLER_LIST vorgegeben. Hier sollte man das Modul "uhci" an die vorderste Position stellen)

Mit dem Modul "usb-uhci" habe ich momentan noch Probleme, da zwar die externern USB-Anschlüsse und daran angeschlossene USB-konforme Geräte problemlos funktionieren, jedoch die als USB-Gerät angesprochene Funktastatur nicht. Wer das Modul totzdem braucht (z.B. für vmware-3.0) sollte sich mit mir in Verbindung setzen, da ich an einer gepatchten "usb-uhci"-Variante arbeite.

Hardware,wie PC-CARD(PCMCIA)-Controller, serielle und parallele Schnittstellen, sollten jedoch jetzt problemlos funktionieren.
Das jetzt der Sound nicht mehr geht, liegt daran, daß die ALSA-Module nicht zum Kernel passen und neu compiliert werden müssen. Doch dazu später mehr, erst folgt die Grafik:
XFree86 4.xx: Die Installation von XFree86 wurde mit den neuen Paketen XFree86-4.2.0 von SuSE durchgeführt, sollte aber prinzipiell auch mit Version 4.0.3 und 4.1.0 funktionieren. Diese Pakete sollten entweder durch die Grundinstallation oder der nachträgliches Einspielen der Pakete mittels "rpm" auf dem System vorhanden sein:
  • xdevel-4.2.0-x.i386.rpm
  • xf86tools-0.1-x.i386.rpm
  • xloader-4.2.0-x.i386.rpm
  • xshared-4.2.0-x.i386.rpm
  • [ xextra-4.2.0-x.i386.rpm ]
  • [ xfnt100-4.2.0-x.i386.rpm ]
  • xman-4.2.0-x.i386.rpm
  • [ xxprt-4.2.0-x.i386.rpm ]
  • xf86-4.2.0-2.x386.rpm
  • xfntscl-4.2.0-x.i386.rpm
  • xmodules-4.2.0-x.i386.rpm
  • XFree86-compat-libs-4.2.0-x.i386.rpm
[...] nur bei Bedarf

Für die Installation eines beschleunigten X-Servers werden unbedingt die nur bei nVIDIA verfügbaren Pakete NVIDIA_KERNEL und NVIDIA_GLX benötigt.

Wichtig: Die bei nVidia vorhandenen binären Pakete für spezielle Distributionen sind auf die Kernelversion abgestimmt, die bei dieser Distribution verwendet wird. Für den selbst installierten Kernel benötigen man aber unbedingt die Quellpakete.

Deshalb empfehle ich den Download von:
    NVIDIA_GLX-1.0-x.tar.gz
    NVIDIA_kernel-1.0-x.tar.gz


Zum Zeitpunkt der Erstellung $Date: 2003/03/04 12:21:49 $ dieses Dokuments waren folgende Versionen verfügbar:
  NVIDIA_kernel-1.0-2802.tar.gz
  NVIDIA_GLX-1.0-2802.tar.gz

Anschließend sind die Pakete zu entpacken und zu installieren:
    tar xzf NVIDIA_kernel-1.0.x.tar.gz
    cd NVIDIA_kernel-1.0.x
    make
    cd ..
   
    tar xzf NVIDIA_GLX-1.0-x
    cd NVIDIA_GLX-1.0-x
    make


Zur Konfiguration muß das File /etc/X11/XF86Config angepaßt werden. (7.3 sax2 kann leider nicht zur Konfiguration herangezogen werden; Probleme mit framebuffer-mode)

Deswegen findet man hier eine angepaßte Konfigurationsdatei. Diese also nach /etc/X11/XF86Config kopieren und ggf. die Einstellungen für außen angeschlossenen Monitor, zusätzliche Maus, Grafiktabletts, etc. einfügen. Weitere Konfigurationen für den nVidia-Treiber (z.B. TwinView) findet man in der mitgelieferten Dokumentation (README im Unterverzeichnis usr/share/doc des Paketes NVIDIA_GLX-1.0-x.tar.gz) oder als PDF-File bei nVidia. (das PDF-File ist zur Version 1.0-2313, trifft aber auch für die hier verwendete Version 1.0-2802 zu)

Nun muß noch der X-Server gewählt werden. Unter 7.37.3 erfolgt dies durch Anlegen eines symbolischen Links auf den X-Server. Für andere Distributionen gibt es ähnlich Lösungen:
    cd /var/X11R6/bin
    ln -s /usr/X11R6/bin/XFree86 X

Anschließend kann der erste Servertest durch Aufruf von startx erfolgen. Über mögliche Probleme unterrichtet das Logfile /var/log/XFree86.0.log.

Zum ersten Test der OpenGL-Beschleunigung durch nVidia_GLX nehme man das Programm "gears". Beispielwert: bei voller Bildschirmauflösung 1600x1200x16 eine Rate von 102fps. Nicht schlecht für einen Laptop!

Touchpad: Wer das soweit probiert hat, wird sicherlich merken, daß das Touchpad nicht wie gewünscht funktioniert! Dies liegt nicht etwa daran, daß ein falscher Treiber gewählt wurde, sondern daran, daß es ein Synchronisationsproblem zwischen dem Touchpad und dem HID-Treiber gibt.

Zur ersten Abhilfe reicht es, wenn man die Funk-Tastatur kurzzeitig ausschaltet.
Hierzu existiert ein kleiner Schalter an der Unterseite der Tastatur! Also kurz Aus- und wieder Einschalten und schon klappts auch mit dem Touchpad!
Das ist natürlich nicht die eleganteste Variante und deshalb hier noch eine Möglichkeit ohne den Schalter zu betätigen. Durch mehrfaches erneutes Laden der USB-Module läßt sich eine Synchronisation herbeiführen. Hierzu ist zuerst mittels rmmod hid das Modul zu enladen. Anschließend sollte noch "uhci" und "usbcore" entladen werden und dann wieder neu geladen werden. (7.37.3: rchotplug restart) Zum Schluß ist dann noch das Modul "hid" zu laden. Klappt es nicht beim ersten Mal, so ist dies wiederholt durchzuführen. Bei dem mir zur Verfügung stehenden Laptop sind zwei Durchläufe notwendig. Wer das automatisieren möchte, hier ein Startscript, welches in /etc/rc.d/rc[2,3,5].d/ möglichst als letztes eingebunden werden sollte.
(7.37.3: Das File nach /etc/rc.d kopieren und die Rechte mittels
  chmod 744 /etc/rc.d/celsiusHFix
ändern und anschließend
  insserv -d /etc/rc.d/celsiusHFix aufrufen.)
Sound einrichten: Hierzu benötigt man die ALSA-Treiber. Getestet wurde es mit alsa-driver-0.5.12a.tar.bz2 von www.alsa-project.org.

Nun sind folgende Schritte durchzuführen:
    tar xjf alsa-driver-0.5.12a.tar.bz2
    cd alsa-driver-0.5.12a
    export CFLAGS=-O2
    ./configure --with-cards=maestro3
    make
    make install
("export CFLAGS=" falls bash, unter tcsh "setenv CFLAGS ")

Sollte das Konfigurationsprogramm der Distribution (7.3 Konfiguration über yast(2) möglich) nicht zur Konfiguration der ALSA_Treiber genutzt werden können, so ist alsaconf aufzurufen und die erkannte "maestro3"-Karte auszuwählen. Die Konfiguration wird dann in /etc/modules.conf gespeichert.
Infrarot und IrDA:
Die Infrarot-Schnittstelle funktioniert als SIR-Gerät, wenn im BIOS des Rechners die Interstützung für IrDA auf SIR eingestellt wurde. In der momantanen Kernelversion 2.4.18 wird die Schnittstelle nur im SIR-Mode unterstützt.

In der Datei /etc/modules.conf folgendes einstellen:
  # IrDA
  alias char-major-161 ircomm-tty
  alias tty-ldisc-11 irtty


Unter läßt sich dann Infrarot aktivieren mittels der Einträge
  START_IRDA="yes"
  IRDA_PORT="/dev/ttyS1"
in der Datei /etc/rc.config. Hier wurde der IrDA-Port auf ttyS1 eingestellt, es sind natürlich andere Einstellungen möglich. Unter anderen Systemen ist der IrDA-Port mittels des Befehls
/usr/sbin/irattach /dev/ttyS1 -s
zu starten.
Modem: Mit dem eingebauten Winmodem gab es wenig Erfolg zu verzeichnen. Zwar lies sich eine Verbindung aufbauen, diese war jedoch weder stabil noch schnell. Wer ein Modem unter Linux auf diesem Laptop benutzen möchte, der wird leider nicht auf die Anschaffung eines zusätzlichen PCMCIA-Modems verzichten können. Das eingebaute Winmodem macht seinem Namen Ehre und läuft nur unter Windows und auch dort nur langsam...
APM und APIC,
Bioseinstellungen::
Hier benötigt es noch einiger Tests....
to be continued ....
$Id: fs_c_h_7_3.php,v 1.2 2003/03/04 12:21:49 wefel Exp $