  Deutsche Linux PCMCIA HOWTO
  David Hinds (dhinds@hyper.stanford.edu) und Dirk Geschke
  (geschke@physik.uni-kassel.de)
  v1.0, 5. September 1997

  Dieses Dokument beschreibt die Installation und den Gebrauch des PCM
  CIA Card Service  Pakets fr Linux.

  1.  Vorwort zur deutschen PCMCIA HOWTO

  Wenn man bedenkt, wieviele mgliche PCMCIA Karten es gibt, so
  erscheint es schon erstaunlich, da diese doch fast alle auch unter
  Linux funktionieren. Noch erstaunlicher ist die Einfachheit mit der
  solche Karten mit dem PCMCIA Card Service Paket erkannt und
  konfiguriert werden knnen. Ja sogar die Installation des Paketes
  erweist sich doch als beraus einfach. Allerdings kann es passieren,
  da das Paket den gegebenen Besonderheiten angepat werden mu bevor
  es richtig luft. Dazu dient dieses PCMCIA HOWTO. Das Originalpaket
  inklusive der englischsprachigen PCMCIA HOWTO stammt von David Hinds.

  Bei der bersetzung habe ich mich meist eng an die Vorlage gehalten.
  Daher klingt manches noch steif und zum Teil unverstndlich. Ich werde
  mich bemhen dieses in nchster Zeit (falls ich solche finden werde)
  zu verbessern. Anmerkungen, Anregungen, Verbesserungen oder gar ganzen
  neuen Kapiteln stehe ich daher sehr aufgeschlossen gegenber. Die
  jetzt hiermit vorliegende Version ist wirklich noch in einer
  Rohfassung und mu noch berarbeitet werden. Allerdings habe ich mir
  gedacht lieber eine solche Version bereitzustellen als gar keine.

  2.  Allgemeine Informationen und Hardwareanforderungen

  2.1.  Einfhrung

  PCMCIA Card Services realisiert ber ladbare Kernelmodule die volle
  Untersttzung von PCMCIA. Ein Kartenmanager-Dmon (cardmgr) berwacht
  die PCMCIA Slots auf Einschub oder Entfernung von Karten. Gleichzeitig
  werden die bentigten Treiber geladen oder wieder entfernt. Karten
  knnen daher jederzeit gewechselt werden.

  Diese Software ist immer noch in der Entwicklung. Sie enthlt daher
  wahrscheinlich noch Fehler und sollte daher mit Vorsicht verwendet
  werden.

  2.2.  Copyright

  Dieses Dokument ist urheberrechtlich geschtzt. Das Copyright fr die
  englische PCMCIA HOWTO, auf der dieses Dokument basiert, liegt bei
  David A. Hinds. Das Copyright fr die deutsche Version liegt bei Dirk
  Geschke.

  Das Dokument darf gem der GNU General Public License verbreitet
  werden. Insbesondere bedeutet dieses, da der Text sowohl ber
  elektronische wie auch physikalische Medien ohne die Zahlung von
  Lizenzgebhren verbreitet werden darf, solange dieser Copyright
  Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt
  und ausdrcklich erwnscht. Bei einer Publikation in Papierform ist
  das Deutsche Linux HOWTO Projekt hierber zu zu informieren.

  2.3.  Was ist die aktuelle Version und wo kann man sie bekommen?

  Die aktuelle major Version des Card Service Pakets ist die Version 2.9
  und die Aktualisierungs- und Fehlerbeseitigungsversionen (minor
  Versionen) sind mit den Nummern 2.9.1, 2.9.2 u.s.w. versehen.

  Der Quellcode der neuesten Version ist in dem Verzeichnis

       hyper.stanford.edu:/pub/pcmcia

  mit dem Namen pcmcia-cs-2.9.?.tar.gz erhltlich. Gewhnlich befinden
  sich hier mehrere Versionen. David behlt nur die neueste minor
  Version einer gegeben major Version. Er bewahrt ebenfalls die letzte
  Version der frheren major Version als Notanker auf, da neue major
  Versionen teilweise ungetesteten Code enthalten. Der aktuelle Notanker
  ist die Version 2.8.23. Es liegt an einem selber welche Version man
  verwendet. Die Datei CHANGES zeigt die wesentlichen Unterschiede der
  Versionen auf.

  hyper.stanford.edu wird auf folgendem Server gespiegelt:
  sunsite.unc.edu.  Neue Versionen sollten auch ber tsx-11.mit.edu
  verfgbar sein.

  Wenn man selber die PCMCIA Treiber nicht bersetzen will, so sind die
  Treiber bereits vorbersetzt in den meisten Linux Distributionen
  enthalten.

  2.4.  Welche Systeme werden untersttzt?

  Dieses Programmpaket sollte auf fast allen Linux-tauglichen Notebooks
  laufen. Alle gebruchlichen PCMCIA Controller, wie z.B. Intel, Cirrus,
  Vadem, VLSI, Ricoh und Databook Chipstze, werden untersttzt.
  Controller die blicherweise in Notebooks von IBM und Toshiba
  eingebaut sind werden auch unterstzt. PCMCIA Karteneinschbe fr
  Desktop-Computer die direkt an den ISA-Bus angeschlossen werden
  sollten eher funktionieren als SCSI-zu-PCMCIA oder IDE-zu-PCMCIA
  Adapter.

  Der Controller 6AHC05GA von Motorola, der in einigen Hyundai Notebooks
  Verwendung findet, wird nicht untersttzt. Das gleiche gilt fr den
  Controller der gewhnlich im HP Omnibook 600 verwendet wird. PCI zu
  CardBus bridge Controller (von SMC, Ricoh, Cirrus und TI) sind
  derzeitig nur im langsamen 16-Bit Modus verwendbar und dieser ist
  immernoch experimentell.

  2.5.  Welche PCMCIA Karten werden untersttzt?

  Die aktuelle Version enthlt Treiber fr eine Vielzahlt von
  Ethernetkarten, einen Treiber fr Modem- und serielle Port-Karten,
  verschiedene Treiber fr SCSI Adapter, einen Treiber fr ATA/IDE
  Laufwerkskarten und Speicherkartentreiber welche die meisten SRAM-
  Karten und einige flash-Karten untersttzen sollten.  Die
  SUPPORTED.CARDS Datei, die jedem Card Service Paket beiliegt, listet
  alle Karten auf, von denen bekannt ist, da sie mindestens in einem
  aktuellen System laufen.

  Die Wahrscheinlichkeit, da eine Karte die nicht auf der Liste steht
  funktioniert, hngt vom Typ der Karte ab. Im wesentlichen sollten alle
  Modems mit den mitgelieferten Treibern funktionieren. Einige
  Ethernetkarten knnen funktionieren, wenn sie OEM Versionen der
  untersttzten Karten sind. Andere Varianten von I/O-Karten (frame
  buffer, Soundkarten, etc) werden solange nicht funktionieren bis sich
  einer findet der einen geeigneten Treiber schreibt.

  2.6.  Wann wird meine neue Karte untersttzt?

  Unglcklicherweise wird gewhnlich kein Geld fr die Entwicklung von
  Treibern gezahlt. Daher mu man selber Hand anlegen wenn man einen
  Treiber fr seine bevorzugte Karte haben will. David Hunt arbeitet auf
  ein Modell wie dem Linux-Kernel zu, wo er fr die Entwicklung des
  Kern-PCMCIA Codes zustndig ist und andere zum Entwickeln und Pflegen
  von Treibern fr spezielle Karten zustndig sind. Die Datei
  SUPPORTED.CARDS erwhnt einige Karten fr welche die Entwicklung im
  Gange ist. David will dabei helfen wo es geht. Allerdings ist die
  Analyse und Entwicklung von Treibern  via email nicht besonders
  effektiv.

  2.7.  Mailing-Listen

  David bemht sich um den Erhalt einer Datenbank und Mailing-Liste von
  PCMCIA Anwendern. Aktuell unterhlt er eine Webseite mit einem Satz
  von Linux PCMCIA Berichten zur Installation und Konfiguration
  verschiedener Karten, und zur Programmmierung und Fehlersuche. Die
  Linux PCMCIA Informationsseite ist unter

       http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html

  zu finden.  Anwender knnen email Benachrichtigung zu Antworten auf
  besondere Fragen oder alle neuen Nachrichten zu speziellen Kategorien
  anfordern. David hofft, das dies eine brauchbare Sammlung an Informa
  tionen fr die Fragen wird, die auerhalb des Rahmens dieser HOWTO
  liegen.

  Es existiert eine Linux Mailing-Liste die dem Thema Notebook gewidmet
  ist: linux-laptop. Fr mehr Informationen mu man eine Nachricht die
  das Wort help enthlt an majordomo@vger.rutgers.edu senden. Zum
  Eintrag in die Mailing-Liste mu eine email mit dem Titel subscribe
  linux-laptop an diese Adresse geschickt werden. Die Mailing-Liste kann
  ein gutes Forum fr die Diskussion von PCMCIA Themen sein.

  Die Linux  Laptop Homepage enthlt zahlreiche Links zu Stellen die
  Informationen ber die Konfiguration spezieller Notebooks mit Linux
  enthalten. Dort ist ebenfalls eine durchsuchbare Datenbank spezieller
  Informationen einzelner Konfigurationen vorhanden.

  3.  Kompilierung, Intallierung und Konfiguration

  3.1.  Vorbemerkungen und Kernelkonfiguration

  Vor dem Beginn sollte man darber nachdenken, ob es wirklich
  erforderlich ist das PCMCIA Paket selber zu kompilieren. Die meisten
  Linux Distributionen werden mit einem vorkompilierten PCMCIA
  Treiberpaket ausgeliefert.  Allgemein mu das Paket nur kompiliert
  werden, wenn man neue Funktionen der aktuellen Treiber bentigt oder
  wenn der Kernel derart modifiziert wurde, da die in der Distribution
  mitgelieferten Treiber nicht mehr verwendbar sind. Das Kompilieren des
  PCMCIA Pakets ist technisch nicht schwierig, setzt allerdings eine
  gewisse Vertrautheit mit Linux voraus.

  Die folgenden Dinge mssen installiert sein bevor man mit der
  Installation des Paketes beginnt:

    Einer der folgenden Kernel: 1.2.8 bis 1.2.13, 1.3.30, 1.3.37,
     1.3.39 bis 1.3.99, 2.0.* oder 2.0.*.

    Einen aktuellen Satz an Modul Werkzeugen.

    (Optional) das Forms X11 Anwenderinterface Werkzeug.

     Die neueste Version verlangt einen Kernel der Version 1.2.18 oder
     hher, oder ein Entwickler-Kernel 1.3.30 oder neuer. 1.3.38
     funktioniert nicht und die Versionen 1.3.31 bis 1.3.36 sind nicht
     getestet worden. Es werden auch relativ neue Modulprogramme
     bentigt. Es gibt keine Kernel patches speziell fr PCMCIA.

  Man bentigt einen kompletten Linux Quellbaum des Kernels, ein
  fertiger Kernel allein gengt nicht. Das PCMCIA Modul enthlt einige
  Referenzen auf Kernel Quelltexte. Whrend man einen neuen Kernel
  bersetzen will um unntige Treiber zu entfernen, ist dies fr die
  Installation von PCMCIA nicht notwendig.

  Aktuelle stabile Kernelquellen und patches sind unter

       http://sunsite.unc.edu/pub/Linux/kernel/v2.0

  oder von

       http://tsx-11.mit.edu/pub/linux/sources/system/v2.0

  Aktuelle Modulwerkzeuge sind dort unter modules-2.0.0.tgz zu finden.
  Entwicklungskernel sind in den Entsprechenden v2.1 Verzeichnissen zu
  finden. Einige aktuelle Entwicklungskernel und Compiler arbeiten
  schlecht mit lteren Modulwerkzeugen zusammen. Bei der Verwendng von
  2.1 Kerneln mu man sicher sein, da man die Richtige Kombination an
  shared libraries und Modulwerkzeugen hat. Die neuesten Modulwerkzeuge
  sowie Versionen fr ltere Kernel sind unter

       http://www.pi.se/blox/modules

  zu finden.

  Wird der Einsatz einer PCMCIA Ethernetkarte geplant, so ist bei der
  Konfiguration des Kernels die Untersttzung eines Netzwerks zu
  aktivieren und die normalen Linux Ethernettreiber sowie die pocket and
  portable adapter zu deaktivieren. Die PCMCIA Netzwerkkartentreiber
  sind alle als ladbare Module implementiert. Derartige Treiber die in
  den Kernel kompiliert wurden verschwenden daher nur Platz.

  Wenn SLIP, PPP oder PLIP verwendet werden sollen, so mu der Kernel
  mit diesen Funktionen konfiguriert werden oder ber ladbare Module des
  Kernels realisiert werden. In der Kernelkonfiguration der 1.2.* Kernel
  ist es nicht mlich Konfigurationsoptionen wie SLIP Kompression fr
  ladbare Module zu aktivieren. Daher wird es hier wohl besser sein SLIP
  direkt in den Kernel zu binden wenn man es bentigt.

  Soll ein PCMCIA Token Ring Karte verwendet werden, so mu der Kernel
  mit Token Ring driver support bersetzt worden sein, wobei die Option
  CONFIG_IBMTR ausgeschaltet sein sollte.

  Sollen PCMCIA IDE Karten verwendet werden, so sollte im Kernel
  CONFIG_BLK_DEV_IDE_PCMCIA aktiviert sein. Diese Funktion gibt es nur
  bei den Kerneln 1.3.72 bis 2.1.7. ltere Kernel haben keine
  Untersttzung fr wechselbare IDE Gerte, neuere Kernel bentigen
  keine spezielle Konfiguration.

  Bei der Verwendung von PCMCIA SCSI Karten sollte in der
  Kernelkonfiguration CONFIG_SCSI aktiviert sein. Ebenso sollten die
  Haupt-Treiber fr die geplanten SCSI Gerte (SCSI Festplatten,
  Bandlaufwerke, CD-Rom, generisch) aktiviert sein, wohingegen die
  Treiber fr spezielle SCSI-Controller Karten nicht bentigt werden.

  Wenn Treiber die fr die PCMCIA Gerte bentigt werden als Module
  implementiert wurden, so ist die Datei /etc/pcmcia/config entsprechend
  zu modifizieren so da diese Module fr die richtige Karte geladen
  werden. Wenn zum Beispiel ein serieller Treiber modularisiert wurde,
  so kann die serielle Gertedefinition wie folgt gendert werden:

       device "serial_cs"
         class  "serial" module "misc/serial", "serial_cs"

  Wenn der Kernel mit der Option CONFIG_MODVERSIONS (Kontrolle der Ver
  sionsnummer von Modulen) kompiliert wurde, so wird das Konfigura
  tionsskript nach der Existenz der Datei
  /usr/include/linux/modversions.h, der Moduldatenbank, suchen. Diese
  wird erstellt, wenn im Kernelquellverzeichnis der Befehl make dep aus
  gefhrt wird.

  Dieses Paket enthlt eine auf X basierte Kartenstatus Anzeige mit dem
  Namen cardinfo. Dieses Programm basiert auf dem frei vertriebenen
  Anwenderinterface mit dem Namen Forms Library, welche installiert sein
  mu wenn man cardinfo verwenden will. Eine binre Version ist unter

       hyper.stanford.edu:/pub/pcmcia/extras

  sowohl im a.out als auch im ELF Format erhltlich. Es mssen
  zustzlich alle gewhnlichen X Headerdateien und Bibliotheken instal
  liert sein.

  3.2.  Installation

  Hier ist ein bersicht des Installationsprozesses:

    Entpacken von pcmcia-cs-2.9.?.tar.gz in /usr/src.

    Starte make config in dem neuen pcmcia-cs-2.9.?  Verzeichnis

    Starte make all, danach make install.

    Anpassen des PCMCIA Startskripts und der Optionsdatei in
     /etc/pcmcia auf die eigenen Bedrfnisse.

     Whrend des Laufs von make config werden einige
     Konfigurationseinstellungen abgefragt und es wird berprft ob das
     System fr die Installation der PCMCIA Untersttzung entsprechend
     vorbereitet ist. In den meisten Fllen knnen die
     Standardeinstellungen verwendet werden. Fr den Fall, da Probleme
     auftreten ist es ratsam auf die Ausgaben dieses Programmes zu
     achten.

  Wird das PCMCIA Paket fr den Gebrauch auf einem anderen Computer
  kompiliert, so sollte ein anderes Installationsverzeichnis angegeben
  werden wenn danach gefragt wird. Dies sollte ein absoluter Pfad sein.
  Alle PCMCIA Dateien werden relativ zu diesem Pfad installiert. Danach
  ist man in der Lage den gesamten Verzeichnisbaum in eine tar Datei zu
  schreiben und zum Zielcomputer zu kopieren werden wo sie im root-
  Verzeichnis entpackt werden mssen, um das PCMCIA Paket an der
  richtigen Stelle zu installieren.

  Wenn des Paket fr einen anderen Computer kreuzkompiliert werden soll,
  so kann ein anderer Name fr den Compiler und Linker angegeben werden.
  Dies kann auch auf Systemen mit gemischtem a.out und ELF Formaten
  hilfreich sein. Das Skript wird ebenfalls nach Kompilier- und
  Fehlersuchoptionen fragen.

  Einige der Programme (cardctl und cardinfo) knnen entweder in der
  safe oder trusting Form kompiliert werden. Die safe-Form verhindert,
  da nicht-root Anwender die Kartenkonfiguration ndern knnen. Die
  trusting-Form erlaubt normalen Anwendern Befehle abzusetzen um Karten
  anzuhalten, wiederanzufahren, zurckzusetzen und die aktuelle
  Konfiguration zu ndern. Das Konfigurationsskript wird nach einer der
  beiden Formen fragen. Die Voreinstellung ist safe.

  Es gibt ein paar Einstellungen der Kernelkonfiguration, die
  Auswirkungen auf die PCMCIA Werkzeuge haben. Das Konfigurationsskript
  kann diese aus dem laufenden Kernel (meistens) herauslesen.
  Alternativ, wenn fr einen anderen Computer kompiliert wird, kann
  diese Konfiguration aus einem Kernelquellcode Verzeichnisbaum
  herausgelesen werden oder sie knnen interaktiv abgefragt werden.

  Das Durchlaufen von make all gefolgt von make install wird die
  Kernelmodule und Anwendunsprogramme erzeugen und installieren. Die
  Kernelmodule werden in /lib/modules/{version}/pcmcia installiert. Die
  Programme cardmgr und cardctl werden in /sbin installiert. Wenn
  cardinfo erstellt wird, so wird es in /usr/bin/X11 installiert.

  Die Konfigurationsdateien werden in das Verzeichnis /etc/pcmcia
  kopiert. Wird ber eine alte Version installiert, so werden die alten
  Kofigurationsdateien umbenannt, bevor die neuen installiert werden.
  Die alten Skriptdateien bekommen Endungen wie *. 1 , *. 2  und so
  weiter.

  Wenn nicht bekannt ist welcher PCMCIA Controller Chip eingebaut ist,
  so kann die probe Funktion im Unterverzeichnis von cardmgr/ verwendet
  werden um den Chiptyp zu ermitteln. Es gibt zwei Hauptarten an Chips:
  Der Databook TCIC-2 Typ und der Intel i82365SL kompatible Typ.

  Ein Dmon auf Anwenderebene berwacht ob eine Karte eingeschoben oder
  entfernt wird. Dieser Dmon heit cardmgr. Dieser ist hnlich in der
  Funktion wie Barry Jaspan's pcmdiad in frheren Versionen. cardmgr
  liet eine Konfigurationsdatei /etc/pcmcia/config welche die bekannten
  PCMCIA Karten beschreibt. Es werden darin ebenso die zustzlichen
  Module erwhnt die fr den Gebrauch der PCMCIA-Karte notwendig sind
  und mssen eventuell auf das eigene System angepat werden. Fr
  weitere Informationen sollte die man page weiterhelfen.

  3.3.  Abschlu der Installation bei Systemen die BSD Initskripte ver
        wenden.

  Einige Linux Distributionen, wie z.B. Slackware, verwenden eine BSD
  Anordnung der Systemstartskripte. Wenn die Datei /etc/rc.d/rc.M
  existiert, gehrt das System zu dieser Gruppe. Das Skript rc.pcmcia,
  das in /etc/rc.d installiert ist, kontrolliert den Start und Stopp des
  PCMCIA Systems. make install verwendet das Kommando probe um den
  Chiptyp zu ermitteln und das Skript rc.pcmcia entsprechend anzupassen.
  Es sollte dann eine Zeile in der Startdatei /etc/rc.d/rc.M eingefgt
  werden, die das PCMCIA Startskript aufruft:

       /etc/rc.d/rc.pcmcia start

  Es ist nicht wichtig wo diese Zeile erscheint solange sie nach dem
  Start von syslogd steht.

  3.4. Abschlu der Installation bei Systemen die den System V 
       Startskripts folgen.

  Red Hat, Caldera und Debian Linux haben Startskripts, die dem System V
  folgen. Wenn ein Verzeichnis mit dem Namen /etc/init.d oder
  /etc/rc.d/init.d existieren, gehrt die Distribution zu dieser Gruppe.
  Das rc.pcmcia Skript wird dann entsprechend in /etc/init.d oder
  /etc/rc.d/init.d installiert. Es besteht hier keine Notwendigkeit
  irgendeine Startdatei zu editieren um PCMCIA zu aktivieren: Dies
  geschieht automatisch.

  Wenn das Verzeichnis /etc/sysconfig existiert wird eine separate
  Konfigurationsdatei zum Starten als /etc/sysconfig installiert. Wenn
  in diesem Fall irgendwelche Moduloptionen (wie z.B. PCIC= oder
  PCIC_OPTS= Einstellungen) gendert werden sollen, so ist dies in
  dieser Datei einzutragen und nicht im Startskript. Bei Nachfolgenden
  Installationen wird diese Datei nicht berschrieben. Einige Systeme
  werden mit Systemkonfigurationsdateien ausgeliefert die PCMCIA per
  Voreinstellung deaktivieren (wie z.B. S.u.S.E.). Daher sollte der
  Inhalt solcher Dateien vorher berprft werden (bei S.u.S.E.:
  /etc/rc.config).

  Einige frhere Versionen verwendeten die PCMCIA-Skripte in
  /etc/sysconfig anstelle von /etc/pcmcia. Die aktuelle Version und
  zuknftige werden das Verzeichnis /etc/pcmcia auf allen Systemen
  verwenden. Existierende PCMCIA-Skripte in /etc/sysconfig werden nach
  /etc/pcmcia verschoben.

  3.5.  Computerspezifische Konfigurationsoptionen

  Card Services sollte es automatisch vermeiden auf Ports und Interrupts
  zuzugreifen die von anderen Gerten verwendet werden. Es wird
  ebenfalls versucht Konflikte mit anderen unbekannten Gerten zu
  entdecken. Allerdings ist dies nicht absolut zuverlssig. In einigien
  Fllen mssen bestimmte Bereiche fr einen Treiber explizit
  ausgeschlossen werden. Dies erreicht man ber die Datei
  /etc/pcmcia/config.opts.

  Hier sind einige Einstellungen fr spezielle Notebooks:

    Bei AMS SoundPro vermeide IRQ 10.

    Bei einigen AMS TravelPro 5300 Modellen sollte der Speicherbereich
     0x8000-0xcffff verwendet werden.

    Bei Chicony NB5 sollten die IRQ's 5 und 9 nicht verwendet werden.

    Die Ports 0x2f8-0x2ff, IRQ 3 und IRQ 5 sollten bei Compaq Presario
     1020 ausgeschlossen werden.

    Die Ports 0x300-0x30f sollten bei HP Omnibook 4000C vermieden
     werden.

    Die IRQ's 5 und 9 sollten bei Micron Millenia Transport nicht
     verendet werden.

    Bei NEC Versa M schliee die Ports 0x2e0-0x2ff und IRQ 9 aus.

    Bei NEC Versa P/75 sollten die IRQ's 5 und 9 ausgeschlossen werden.

    Bei der NEC Versa 6000 Serie sollten die IRQ's 9 und 12
     ausgeschlossen werden.

    Bei ProStar 9200, Altima Virage und Acquiline Hurricane DX4-100
     vermeide IRQ 5, Port 0x330-0x35f. Versuche eventuell den
     Speicherbereich 0xd8000-0xdffff.

    Verwende auf dem TI TravelMate 5000 den Speicherbereich
     0xd4000-0xdffff.

    Bei dem Toshiba T4900 CT schliee IRQ5 und die Ports 0x2e0-0x2e8
     und 0x330-0x338 aus.

    Bei dem Twinhead 5100, HP 4000, Sharp PC-8700 und PC-8900 schliee
     IRQ 9 (Sound) und IRQ 12 aus.

    Bei der MPC 800 Serie sollten IRQ 5 und der Port 0x300-0x30f fr
     das CD-ROM Laufwerk vermieden werden.
     Einige PCMCIA Controller haben optionale Eigenschaften die bei
     einigen Systemen eventuell implementiert sind. Es ist generell
     unmglich fr einen PCMCIA Treiber festzustellen ob diese
     speziellen Eigenschaften eingebaut sind. Man lese daher die man
     page des eingebauten Treibers fr die mglicherweise
     implementierten und aktivierbaren Eigenschaften.

  In wenigen Fllen ist das probe Kommando nicht in der Lage den
  Controllertyp automatisch zu ermitteln. Bei Halikan NBD 486 Systemen,
  die einen TCIC-2 Controller an einer ungewhnlichen Stelle haben, mu
  die Datei rc.pcmcia editiert werden damit das tcic Modul geladen wird.
  Dabei mu der Parameter PCIC_OPTS auf tcic_base=0x02c0 gesetzt werden.

  Die Treibermodule tcic und i82365 haben zahlreiche Parameter zur
  Behandlung der Busgeschwindigkeit welche fr besonders schnelle
  Prozessoren angepasst werden mssen. Symptome fr
  Geschwindigkeitsprobleme sind unter anderem Probleme der
  Kartenerkennung, Blockierung bei hoher Prozessorbelastung, groe
  Fehlerraten oder schlechte bertragungsraten der Gerte. Man
  kontrolliere die entsprechenden man pages fr nhere Informationen.
  Hier ist eine kurze Zusammenfassung:

    Cirrus Controller haben zahlreiche anpabare
     Geschwindigkeitsparameter. Der wichtigste scheint die cmd_time
     Option, die die Dauer von PCMCIA Buszyklen festlegt, zu sein.
     Schnelle 486 Systeme (insbesondere DX4-100) scheinen oft von einer
     Erhhung von 6 (Voreinstellung) auf 12 oder 16 zu profitieren.

    Der Cirrus PD6729 PCI Controller hat eine fast_pci Einstellung,
     welche gesetzt werden sollte, falls die PCI-Busgeschwindigkeit
     grer als 25 MHz ist.

    Bei Vadem VG-468 Controller und Databook TCIC-2 Controller ndert
     die async_clock Option die relative Geschwindigkeit des PCMCIA
     Busses zum Hauptbus. Wird diese Option gesetzt, so werden extra
     Wartezyklen bei einigen Operationen eingefgt werden. (David hat
     von einem Notebook gehrt, da diese Option bentigte.)

    Das pcmcia_core Modul besitzt einen cis_speed Parameter zum ndern
     der Geschwindigkeit mit der auf den Speicher der Card Information
     Structure (CIS) zugegriffen wird. Bei einigen Systemen mit
     schnellen Busgeschwindigkeiten kann die Erhhung dieses Parameters
     (d.h. Verlangsamung des Kartenzugriffs) die Erkennung einzelner
     Karten begnstigen.

    Dies ist keine Geschwindigkeitseigenschaft, ist aber hilfreich wenn
     sich mehr als ein PCMCIA Controller im System befinden oder mehrere
     Einschbe sich in einer docking station befinden. In diesem Fall
     hilft beim laden des i82365 Moduls die Option extra_sockets=1
     gesetzt ist.

     Alle diese Optionen sollten durch Modifizierung der Datei rc.pcmcia
     konfiguriert werden. Zum Beispiel:

       # sollte entweder i82365 oder tcic sein
       PCIC=i82365
       # Geschwindigkeitsparameter des Treibers sollten hier stehen
       PCIC_OPTS="cmd_time=12"
       # pcmcia_core Optionen werden hier angegeben
       CORE_OPTS="cis_speed=500"

  Hier sind ein paar Geschwindigkeitseinstellungen fr spezielle Systeme

    Bei ARM Pentium-90 oder Midwest Micro Soundbook Plus sollten die
     Optionen "freq_bypass=1 cmd_time=8" verwendet werden.

    Bei Midwest Micro Soundbook Elite verwende "cmd_time=12".

    Bei Gateway Liberty versuche man die Option "cmd_time=16".

     Bei einigen Systemen die den Cirrus Controller verwenden, wie z.B.
     der NEC Versa M, versetzt das BIOS den Controller in einen
     speziellen Ruhemodus whrend des Einschaltens. Auf solchen Systemen
     wird das probe-Kommando keinen PCMCIA Controller entdecken. Wenn
     dies geschieht mu die Datei rc.pcmcia von Hand wie folgt
     abgendert werden:

       # sollte entweder i82365 oder tcic sein
       PCIC=i82365
       # Geschwindigkeitsparameter des Treibers sollten hier stehen
       PCIC_OPTS="wakeup=1"

  3.6.  Probleme beim Laden der Kernelmodule

  Das Konfigurationsskript stellt normalerweise sicher, da die PCMCIA
  Module mit dem installierten Kernel funktionieren. Daher lassen sich
  Probleme mit dem Laden der Module meist darauf zurckfhren, da der
  Installationsvorgang nicht korrekt durchgefhrt worden ist. Einige
  solcher Fehlermeldungen werden direkt auf der Linuxkonsole ausgegeben,
  andere werden in der Systemlogdatei aufgezeichnet. Diese heien
  normalerweise /usr/adm/messages oder /var/log/messages. Dieses hngt
  von der Konfiguration des syslogd Dmons ab und wird in der Datei
  /etc/syslog.conf festgelegt. Um den Fehler einzugrenzen sollten dieses
  Log-Dateien genau untersucht werden. Auf diese Weise kann auch
  herausgefunden werden, welches Modul das Problem verusacht.

  Einige der PCMCIA Module bentigen Kerneldienste, die mehr oder minder
  vorhanden sind, je nachdem wie der Kernel konfiguriert wurde.  Zum
  Beispiel verlangt der SCSI Kartentreiber, da der Kernel mit SCSI
  Untersttzung bersetzt wurde. Analog bentigt der Netzwerktreiber die
  Kernelnetzwerkuntersttzung. Wenn dem Kernel die notwendigen Treiber
  fehlen kann es sein, da sich insmod, mit der Begrndung von
  undefinierten Symbolen, weigert ein Modul zu laden.

  Wenn insmod von wrong version Fehlern berichtet, so bedeutet dies das
  die Module fr eine ander Kernelversion als die aktuell auf dem System
  laufende bersetzt worden ist. Dies kann passieren, wenn die Module
  auf einem anderen Computer mit anderer Konfiguration bersetzt worden
  sind und auf den eigenen kopiert wurden oder wenn der Kernel nach der
  Installation von PCMCIA neukonfiguriert wurde.

  Eine andere Fehlerquelle besteht darin, da die Module und der Kernel
  mit unterschiedlichen Einstellungen von CONFIG_MODVERSIONS bersetzt
  worden sind. Wenn ein Modul mit Versionskontrolle neben einem Kernel
  ohne gleaden wird, so wird insmod sich ber undefinierte Symbole
  beschweren.

  Zum Schlu sind noch relativ neue binutils Versionen inkompatibel mit
  den lteren Versionen der Modulwerkzeuge. Dies kann Inkompatibiltten
  der Module verursachen. Eine bliche Fehlermeldung in einem solchen
  Fall ist die Meldung, da "gcc_compiled" nicht definiert sei. Wenn
  diese Fehlermeldungen erscheinen, sollte man auf die neuesten
  Modulwerkzeuge aufrsten. Diese sind unter

       http://www.pi.se/blox/modules

  zu bekommen.

  3.7.  Interruptprobleme beim Wechsel des Kartenstatus

  In den meisten Fllen wird der Treiber (i82365 oder tcic) automatisch
  einen Interrupt suchen und auswhlen um den Kartenstatus anzuzeigen.
  Diese automatische Interruptsuche funktioniert bei einigen
  intelkompatiblen Controllern nicht, wie z.B. Cirrus Chips und einige
  in IBM ThinkPads verwendeten Chips. Wenn ein Gert whrend des
  Probevorgangs inaktiv ist, kann es passieren, da der Interrupt dieses
  Gertes als frei erscheint. In solchen Fllen kann es passieren, da
  dieser Interrupt vom Treiber verwendet wird.

  Bei den i82365 und dem tcic Treibern kann die Option irq_mask
  verwendet werden um die mlichen Interrupts einzuschrnken. Diese
  Maske schrnkt den Satz der mglichen Interrupts, die fr den Gebrauch
  mit PCMCIA Karten oder fr die Anzeige von Kartenstatusnderungen
  verwendet knnen, ein. Die Option cs_irq kann ebenfalls verwendet
  werden um explizit den Interrupt festzulegen mit welchem der Wechsel
  des Kartenstatus berwacht wird.

  Wenn ein funktionierender Interrupt nicht gefunden werden kann, so
  besteht die Mglichkeit einen Pollmodus zu verwenden. Sowohl der
  i82365 als auch der tcic Treiber akzeptieren die Option
  poll_intervall=100 mit welcher sie jede Sekunde den Kartenstatus
  bekannt geben werden (pollen). Diese Option sollte auch verwendet
  werden, wenn der Spielraum fr freie Interrupts fr den Gebrauch mit
  PCMCIA stark eingeschrnkt ist. Insbesondere fr Systeme mit mehreren
  PCMCIA Controllern ist die Zahl der Interrupts zur Anzeige der
  Statusinformationen der Karten stark eingeschrnkt.

  Alle diese Optionen sollten in der PCIC_OPTS= Zeile in der Datei
  rc.pcmcia gesetzt werden.

  3.8.  Probleme mit der Konfiguration des Speicherfensters

  Per Voreinstellung reservieren sich die PCMCIA Treiber Speicherfenster
  im Bereich 0xc0000-0xfffff nach der berprfung dieses Bereiches auf
  den Gebrauch durch ROM oder andere Gerte. Dieses Fenster wird in der
  Datei /etc/pcmcia/conifg.opts definiert. Die berprfung dieses
  Bereichs wird durchgefhrt, wenn ein Treiber versucht eine neue Karte
  zu konfigurieren. Dieser Prfvorgang ist nicht Narrensicher, so da
  nicht erkannte Probleme auftreten knnen. Wenn ein Speicherbereich
  erkannt wurde der von einem anderen Gert verwendet wird, so kann es
  passieren, da die Karte nicht korrekt erkannt wird. Mit Chipstzen
  die es erlauben, knnen auch Fehler durch das BIOS shadowing in diesem
  Bereich entstehen. Wenn man feststellt, da alle Karten
  flschlicherweise immer als Speicherkarten erkannt werden, sollte man
  sichergehen, da das BIOS shadowing beim Computer ausgeschaltet ist.
  Ein gutes Fenster zu finden erfordert manchmal einiges
  herumexperimentieren. Einige gute Fensteralternativen die man
  versuchen kann sind die Bereiche 0xd8000-0xdffff, 0xc0000-0xcffff und
  0xc8000-0xcffff.

  Wenn man DOS PCMCIA Treiber besitzt, kann man versuchen anhand dieser
  einen guten Speicherbereich herauszufinden. Es ist jedoch zu beachten,
  da diese Adressen oft in Segmentform angegeben sind. Es fehlt in
  diesem Fall die letzte hexadezimale Ziffer (eine absolute Adresse von
  0xd0000 wrde als 0xd000 angegeben werden). Man sollte also darauf
  achten diese letzte Ziffer hinzuzufgen falls man solche Werte
  bernimmmt.

  Wenn das Anpassen des Fensters im Speicherbereich das Problem der
  Kartenerkennung nicht lst, so liegt wahrscheinlich ein
  Geschwindigkeitsproblem (timing) vor.

  3.9.  Warum werden die PCMCIA Treiber nicht binr vertrieben?

  Das vertreiben von binren Treibern ist schwierig, da einige
  Eigenschaften erst beim bersetzen der Dateien angegeben werden
  knnen. Die PCMCIA Module hngen auch von der richtigen
  Kernelkonfigutation und -version ab. Daher mssten binre Versionen
  zusammen mit passenden Kerneln vertrieben werden. Der grte Bedarf an
  vorbersetzten Modulen besteht bei der Installation von Grund auf. In
  diesem Fall werden die PCMCIA Module zum Teil direkt fr die
  Installation bentigt.

  PCMCIA ist heute Teil der meisten Linuxdistributionen.

  3.10.  Warum ist das PCMCIA Paket so gro?

  Eigentlich ist das Paket nicht so gro. Alle Treibermodule zusammen
  bentigen weniger als 200KB an Speicherplatz auf der Festplatte. Mit
  den zustzlichen Werkzeugen werden es zustzlich weitere 70KB und das
  Verzeichnis /etc/pcmcia belegt ungefhr 30KB. Im Betrieb bentigen die
  Hauptmodule ungefhr 48KB Hauptstpeicher. Der cardmgr-Dmon wird
  generell direkt ausgelagert und nur beim Kartenwechsel aktiv. Das
  gesamte Paket belegt nicht mehr Platz als DOS Varianten.

  4.  Gebrauch und Eigenschaften

  4.1.  Werkzeuge zur berwachung der PCMCIA Gerte

  Der cardmgr-Dmon piept normalerweise wenn eine neue Karte eingefhrt
  wird. Der Piepton zeigt den Status der neuen Karte an. Zwei hohe Tne
  bedeuten, da die Karte erkannt und konfiguriert wurde. Ein hoher und
  ein tiefer Ton zeigen an, dass die Karte erkannt aber nicht
  konfiguriert werden konnte. Lediglich ein tiefer Ton zeigt an, da die
  neue Karte nicht erkannt wurde.

  Wenn die Module korrekt geladen wurden, sollte das Kommando lsmod,
  ohne eingefhrte Karten, folgende Ausgabe zeigen:

       Module:        #pages:  Used by:
       ds                 2
       i82365             3
       pcmcia_core        7    [ds i82365]

  Alle PCMCIA Module und der cardmgr-Dmon senden Statusmeldungen an den
  syslog-Dmon. Diese Meldungen werden dann gewhnlich in die Datei
  /var/log/messages oder /usr/adm/messages geschrieben. Diese Dateien
  sollten bei der Fehlersuche als erstes untersucht werden. Wenn ein
  Fehlerreport geschrieben wird sollte der Inhalt dieser Datei
  mitgeschickt werden. Wenn Probleme bestehen die Systemmeldungen zu
  finden, sollte die Datei /etc/syslogd.conf daraufhin untersucht
  werden, wie die verschiedenen Nachrichtenklassen behandelt werden.

  Cardmgr zeichnet einige Informationen der aktuell genutzten Gerte fr
  jeden Slot in /var/run/stab. Hier ist ein Beispiel fr den Inhalt
  einer solchen Datei:

       Socket 0: Adaptec APA-1460 SlimSCSI
       0       scsi    aha152x_cs      0       sda     8       0
       0       scsi    aha152x_cs      1       scd0    11      0
       Socket 1: Serial or Modem Card
       1       serial  serial_cs       0       ttyS1   5       65

  Im ersten Feld steht der verwendet Slot, das zweite enthlt die
  Gerteklasse, das dritte den Treibernamen, das vierte wird verwendet
  um die verschiedenen Gerte, die an den gleichen Treiber angeschlossen
  sind, durchzunumerieren, das fnfte Feld ist der Gertename und die
  letzten beiden Felder enthalten die major und minor Gertenummern
  (falls angebbar).

  Das Kommando cardctl kann verwendet werden um den Status der Slots zu
  ermitteln oder zu sehen wie sie konfiguriert sind. Hier ist eine
  Beispielausgabe des cardctl config Kommandos:

       Socket 0:
       Socket 1:
         Vcc = 5.0, Vpp1 = 0.0, Vpp2 = 0.0
         Card type is memory and I/O
         IRQ 3 is dynamic shared, level mode, enabled
         Speaker output is enabled
         Function 0:
           Config register base = 0x0800
             Option = 0x63, status = 0x08
           I/O window 1: 0x0280 to 0x02bf, auto sized
           I/O window 2: 0x02f8 to 0x02ff, 8 bit

  Wenn X luft wird das Programm cardinfo in einer grafischen Anzeige
  den Status aller PCMCIA Slots anzeigen, hnlich wie es cardctl config
  tut.

  4.2.  berblick der PCMCIA Konfigurationsskripte

  Jedes PCMCIA Gert ist mit einer Klasse verknpft, welche beschreibt,
  wie es konfiguriert und gehandhabt werden soll. Klassen sind mit
  Gertetreibern verknpft die in /etc/pcmcia/config beschrieben sind.
  Aktuell sind dort fnf Ein-/Ausgabe-Gerteklassen (Netzwerk, SCSI,
  CDROM, Festplatten und serielle Gerte) und drei Speicherklassen (FTL,
  memory und pcmem). Zu jeder Klasse existieren zwei Skripte in
  /etc/pcmcia/config: Ein Hauptkonfigurationsskript (z.B.
  /etc/pcmcia/scsi fr SCSI-Gerte) und eine Optionsskript (z.B.
  /etc/pcmcia/scsi.opts). Das Hauptskript fr ein Gert wird aufgerufen
  um eine Karte zu konfigurieren, die gerade eingeschoben wird und um
  das Gert herunterzufahren, wenn die Karte herausgenommen wird. Fr
  Karten mit mehreren Gerten wird das Skript fr jedes Gert gestartet.

  Das Konfigurationsskript entnimmt als erstes einige Informationen aus
  /var/run/stab. Jedes Skript bildet eine Gerteadresse welche eindeutig
  das Gert beschreibt welches es konfiguriert und speichert sie in der
  ADDRESS Variable. Diese wird an das *.opts Skript weitergegeben.
  Dieses Skript soll dann die Informationen fr die Konfiguration des
  Gertes an dieser Adresse liefern. Bei einigen Gerten ist diese
  Adresse lediglich die Slotnummer, bei anderen enthlt sie zustzliche
  Informationen, die hilfreich bei der Konfiguration sein knnen. Zum
  Beispiel enthalten die Gerteadressen von Netzwerkkarten die Hardware
  Ethernetadressen. Auf diese Weise kann das network.opts-Skript diese
  Karte von anderen Netzwerkkarten unterscheiden und somit zwischen
  verschiedenen Konfigurationen whlen.

  Der erste Teil von allen Gerteadressen ist das aktuelle PCMCIA
  Schema. Dieser Parameter wird verwendet um verschiedene Stze von
  Konfigurationen zu untersttzen, die alle auf einem einzelnen externen
  anwenderspezifischen Variable basieren. Eine Anwendung der Schemata
  knnte es sein ein Schema fr daheim und eines fr die Arbeit zu
  haben, welche verschiedene Parameter fr die Netzwerkkonfiguration
  haben. Das aktuelle Schema wird mit dem Kommando cardctl ausgewhlt.
  Die Voreinstellung, wenn kein Schema gesetzt wird, ist default.

  Als eine generelle Regel fr die Konfiguration von Linux fr Notebooks
  ist, da alle PCMCIA Gerte nur ber die PCMCIA Gerte-Skripte
  konfiguriert werden. Man sollte nicht versuchen PCMCIA Gerte wie
  permanent angeschlossene Gerte zu konfigurieren.

  4.3.  PCMCIA Netzwerkkarten

  Ethernetkarten unter Linux haben normalerweise Namen wie eth0, eth1
  und so weiter. Token-Ring Karten werden hnlich gehandhabt, allerdings
  haben sie Namen wie tr0, tr1 und so weiter. Das Kommando ifconfig wird
  verwendet um den Status von Netzwerkkarten zu erfragen oder zu ndern.
  Eine Besonderheit unter Linux ist, da diese Netzwerkkarten keine
  entsprechenden Gertedateien in dem Verzeichnis /dev besitzen. Daher
  sollte man sich nicht wundern, wenn man dort auch keine findet.

  Wenn eine PCMCIA Ethernetkarte entdeckt wird, so bekommt sie den
  ersten verfgbaren Schnittstellennamen, dieser wird wahrscheinlich
  eth0 sein. Cardmgr wird das Skript /etc/pcmcia/network starten, um die
  Karte zu konfigurieren.

  Es ist nicht ratsam diese Konfiguration der PCMCIA Ethernetkarte in
  dem Startskript des Linux-Systems einzutragen, da es passieren kann,
  da die Karte noch nicht vorhanden ist wenn Linux hochgefahren wird.
  Wenn das System eine automatische Prozedur zur Konfugration des
  Netzwerks hat, so sollte hier angegeben werden, da keine
  Netzwerkkarte vorhanden ist. Stattdessen sollte die Datei
  /etc/pcmcia/network.opts den Bedrfnissen des Netzwerks angepat
  werden. Die Skripte network und network.opts werden nur ausgefhrt,
  wenn eine Ethernetkarte anwesend ist.

  Die Gerteadresse die network.opts bergeben wird besteht aus vier
  durch Kommata getrennte Felder: Schema, Slotnummer, Gerteinstanz und
  die Hardware Ethernetaddresse der Karte. Die Gerteinstanz wird
  verwendet um Gerte durchzunumeriern, fr Karten, die mehrere
  Netzwerkanschlsse besitzen. Sie wird daher meistens 0 sein. Wenn
  mehrere Netzwerkkarten fr verschiedene Verwendungen benutzt werden
  sollen, so besteht eine Mglichkeit darin, die Karten ber ihre
  verschiedenen Slotnummer zu konfigurieren wie z.B. hier:

  case "$ADDRESS" in
  *,0,*,*)
      # Definition der Netzwerkkarte in Slot 0
      ;;
  *,1,*,*)
      # Definition der Netzwerkkarte in Slot 0
      ;;
  esac

  Alternativ knnen diese Karten ber ihre Hardware-Adressen
  konfiguriert werden:

       case "$ADDRESS" in
       *,*,*,00:80:C8:76:00:B1)
           # Definition einer D-Link Karte
           ;;
       *,*,*,08:00:5A:44:80:01)
           # Definition einer IBM Karte
       esac

  Um automatisch NFS-Dateisysteme einzubinden oder zu entfernen, ist es
  sinnvoll, alle diese Dateisysteme als erstes in der Datei /etc/fstab
  eingezutragen. Allerdings sollte im Optionsfeld der Eintrag noauto
  stehen. In der Datei network.opts mssen dann alle Dateiverzeichnisse
  mit ihrem Zielverzeichnis in der Variablen MOUNTS aufgelistet werden.
  Es ist besonders wichtig entweder cardctl oder cardinfo zu verwenden
  um eine Netzwerkverbindung zu unterbrechen wenn NFS-Dateisysteme auf
  diese Weise verwendet werden. Es ist nicht mglich ein NFS-Dateisystem
  sauber abzubauen wenn lediglich die Karte ohne Warnung herausgenommen
  wird!

  Zustzlich zur gewhnlichen Netzwerkkonfiguration kann das Skript
  network.opts extra Funktionen ausfhren, wenn die Netzwerkkarte schon
  konfiguriert worden ist oder bevor die Netzwerkverbindung abgebaut
  werden kann. Wenn network.opts eine Shellfunktion start_fn definiert,
  so wird diese nach der Konfiguration der Karte aufgerufen. Dabei wird
  der Schnittstellenname als einziges Argument bergeben. Analog wird
  die Funktion stop_fn, wenn sie definiert ist, aufgerufen wenn bevor
  die Netzwerkkarte heruntergefahren wird.

  4.3.1.  Auswahl des Transceivers

  Der Transceiver-Typ kann durch Verwendung der Variablen IF_PORT
  bestimmt werden. Dies kann entweder ein numerischer Wert sein, wie er
  in frheren PCMCIA Versionen verwendet wurde oder ein Schlsselwort
  das den Transceiver-Typ bestimmt. Das voreingestellte Verhalten aller
  Netzwerktreiber ist es, diesen Typ automatisch zu erkennen wenn dies
  mglich ist, im anderen Fall 10baseT zu verwenden. Das Kommando ifport
  kann verwendet werden um den aktuellen Typ zu kontrollieren oder zu
  ndern. Zum Beispiel:

  > ifport eth0 10base2
  >
  > ifport eth0
  eth0    2 (10base2)

  Aktuelle Versionen des 3c589 Treibers versuchen die Netzwerkverbindung
  automatisch zu entdecken. Allerdings scheint es so, als ob dies noch
  nicht einwandfrei funktioniert. Damit die automatische Erkennung luft
  sollte das Netzwerkkabel an der Karte angeschlossen sein, wenn diese
  konfiguriert wird. Alternativ kann man nach Anschlu des Netzes den
  Treiber zwingen die Verbindung noch einmal zu berprfen:

       ifconfig eth0 down up

  4.3.2.  Anmerkungen zu speziellen Karten

    Bei IBM CCAE und Socket EA Karten mu der Transceiver Typ (10base2,
     10baseT oder AUI) nach Konfiguration der Netzwerkkarte festgelegt
     werden. In der Systemlog-Datei sollte danach der richtige
     Transceiver-Typ erscheinen. Dies sollte man berprfen.

    Die Treiber fr SMC, Megahertz, Ositech und 3Com Karten sollten den
     angeschlossen Netzwerktyp (10base2 oder 10baseT) automatisch
     erkennen. Das setzen des Transceiver-Typs wenn der Treiber geladen
     wird definiert den ersten Versuch den Typ der Karte zu bestimmen.

    Die Farallon EtherWave ist aktuell mit einem speziellen Transceiver
     auf der 3Com 3c589 basiert. Obwohl die EtherWave die 10baseT
     Verbindungen verwendet, verlangt der Transceiver, da der 3c589
     Treiber im 10base2 Modus definiert werden mu.

    Wenn Probleme mit den Karten IBM CCAE, NE4100, Thomas Conrad oder
     Kingston bestehen, sollte man die Speicherzugriffszeit erhhen
     indem man die Option mem_speed=pcnet_cs verwendet. Ein Beispiel wie
     dies zu machen ist findet man in der Standarddatei config.opts.
     Versuche Zeiten bis zu 1000 (Nanosekunden).

    Fr die New Media Ethernetkarte kann es bei einigen Systemen
     Notwendig sein die Zugriffszeit auf die I/O-Ports zu erhhen. Dies
     geschieht mit der Opion io_speed=das Modul pcmcia_core geladen
     wird. Um diese Option zu setzen mu die Variable CORE_OPTS im
     Startskript editiert werden.

    Die multicast Untersttzung des New Media Ethernet Treibers ist
     unvollstndig. Der neueste Treiber wird mit der multicast-Kerneln
     funktionieren aber smtliche multicast Pakete ignorieren. Der
     promiscuous Modus sollte normal funktionieren.

    Der Treiber von IBM und 3Com Token-Ring Karten scheint sich sehr
     schlecht zu verhalten wenn die Karten bei der Initialisierung nicht
     mit einem Ring verbunden sind. Diese Karten sollten immer mit dem
     Netz verbunden sein, bevor sie eingeschoben werden.

    Neuere Linksys und D-Link Karten haben einen einheitlichen Weg um
     den Transceiver-Typ auszuwhlen. Bis David einige Informationen von
     Linksys erhlt ist der einzig gangbare Umweg der, da zuerst DOS
     gestartet wird und die herstellertypischen Konfigurationsprogramme
     verwendet werden um den Transceiver-Typ auszuwhlen. Danach sollte
     ein Warmstart zu Linux erfolgen.

  4.3.3.  Untersuchung von Problemen mit Netzwerkkarten

    Wird die Karte als Ethernetkarte erkannt? berprfe die Systemlog
     Dateien, stelle sicher, da cardmgr die Karte korrekt erkennt und
     die richtigen Netzwerktreiber startet.  Wenn dies nicht geschieht
     kann es sein, da die Karte trotzdem verwendbar ist, wenn sie mit
     einer untersttzten Karte baugleich ist. Dies geht am einfachsten,
     wenn behauptet wird die Karte sei NE2000 kompatibel.

    Ist die Karte korrekt konfiguriert? Wenn eine untersttzte Karte
     verwendet wird und diese von cardmgr erkannt wird aber dennoch
     nicht funktioniert, so kann ein Interrupt oder Port Konflikt mit
     einem anderen Gert vorliegen. Dazu sollte man die Ressourcen die
     die Karte verwendet herausfinden (aus der Systemlog-Datei) und
     versuchen diese in der Datei /etc/pcmcia/config.opts auszuschlieen
     um die Karte zu zwingen andere zu verwenden.

    Wenn Meldungen wie network unreachable bei Zugriff auf das Netzwerk
     erscheinen, dann wurde wahrscheinlich die Datei
     /etc/pcmcia/network.opts falsch editiert. Auf der anderen Seite
     verursachen falsch konfigurierte Karten keine Meldungen.

    Bei der Analyse der Probleme in der Datei /etc/pcmcia/network.opts,
     sollte man damit beginnen, auf andere Systeme im Subnetz das
     Kommando ping unter Verwendung von IP-Adressen versuchen. Danach
     sollte man versuchen das Gateway mittels ping zu erreichen und zum
     Schlu Rechner innerhalb anderer Subnetze. Die Verwendung von ping
     mit Computernamen sollte erst nach diesem simpleren Test erfolgen.

    Man sollte sicherstellen, da das Problem wirklich ein PCMCIA
     Problem ist. Es kann hilfreich sein zu kontrollieren, ob die Karte
     unter DOS mit der Herstellersoftware luft. Man sollte die
     nderungen in dem Skript /etc/pcmcia/network.opts doppelt
     kontrollieren. Der Anschlu des Kabels, das T-Stck, Terminatoren
     etc. sollten ebenfalls grndlich berprft werden.

  4.4.  Serielle und Modem PCMCIA Gerte

  Unter Linux wird auf serielle Gerte ber die speziellen Dateien
  /dev/cua* und /dev/ttyS* zugegriffen. Die ttyS* Dateien werden fr
  eingehende Verbindungen (z.B. angeschlossene Terminal) und die Dateien
  cua* fr ausgehende Verbindungen (z.B. Modem) verwendet. Jeder
  physische Anschlu hat sowohl ein ttyS* und eine cua* Gertedatei: Es
  hngt von einem selber ab welche man verwendet. Die Konfiguration
  eines seriellen Gertes kann mit dem Kommando setserial untersucht und
  verndert werden.

  Wird eine serielle oder Modem PCMCIA Karte entdeckt, so erhlt sie die
  erste freie Gerteadresse. Dies wird gewhnlich, abhngig von der Zahl
  der eingebauten seriellen Gerte, /dev/ttyS1 (cua1) oder /dev/ttyS2
  (cua2) sein. Die ttyS* Gerte sind diejenigen, die in /var/run/stab
  angegeben sind. Das Standardskript fr serielle Gerte,
  /etc/pcmcia/serial.opts, wird das entsprechende cua* Gert auf die
  Datei /dev/modem linken.

  Man sollte nicht versuchen das Systemstartskript fr serielle Gerte
  zur Konfiguration von PCMCIA Modems zu verwenden. Dieses Skript sollte
  nur zur Konfiguration nicht-entfernbarer Gerte benutzt werden. Fr
  eine spezielle Konfiguration eines Mdems dient die Datei
  /etc/pcmcia/serial.opts. Desgleichen sollte nicht das Kommando
  setserial verwendet werden um die I/O-Adresse oder der Interrupt eines
  seriellen PCMCIA Gertes zu bestimmen. Dies wrde den seriellen
  Treiber anweisen das Gert an einer anderen Stelle zu suchen. Dies
  wrde auch nichts an der aktuellen Einstellung der PCMCIA Karte
  ndern. Das serielle Konfigurationsskript erlaubt einem sowohl
  setserial-Optionen anzugeben, als auch ob eine Zeile in der Datei
  /etc/inittab fr diese Adresse einzufgen.

  Die Gerteadresse, die dem Skript serial.opts bergeben wird, besteht
  aus drei durch Kommata getrennte Felder: Das erste enthlt das Schema,
  das zweite die Slotnummer und das dritte die Gerteinstanz. Letztere
  kann fr Karten, die mehrere serielle Anschlsse untersttzen,
  verschiedene Werte annehmen. Fr Karten, die nur einen Anschlu haben
  ist dieser Wert immer 0. Wenn gewhnlich mehrere PCMCIA Modemkarten
  verwendet werden knnen diese durch die Slotnummer unterschiedlich
  konfiguriert werden, wie z.B.:

       case "$ADDRESS" in
       *,0,*)
           # Optionen Modem in Slot 0
           LINK=/dev/modem0
           ;;
       *,1,*)
           # Optionen Modem in Slot 1
           LINK=/dev/modem1
           ;;
       esac

  Wenn ein PCMCIA Modem bereits konfiguriert ist wenn Linux gestartet
  wird, kann es passieren, da das Modem flschlicher Weise als ein
  eingebautes identifiziert wird. Dies ist harmlos. Wenn der PCMCIA
  Treiber Kontrolle ber das Modem nimmt, wird diesem eine andere
  Gertedatei zugewiesen. Es ist daher gut entweder die Datei
  /var/run/stab zu durchforsten oder /dev/modem zu verwenden, anstatt zu
  erwarten, da ein PCMCIA Modem stets der gleichen Gertedatei
  zugeordnet wird.

  Wenn der Kernel konfiguriert wurde die Grundtreiber fr die seriellen
  Gerte als ein Modul zu laden, so mu die Datei /etc/pcmcia/config
  editiert werden, damit diese Module geladen werden. Editiere in diesem
  Fall den seriellen Gerteeintrag auf diese Weise:

       device "serial_cs"
         class "serial" module "char/serial", "serial_cs"

  4.4.1.  Analyse von Problemen mit seriellen Gerten

    Ist die Karte als ein Modem erkannt worden? Kontrolliere die
     Systemlog-Dateien und stelle sicher, da cardmgr die Karte korrekt
     erkennt und den serial_cs Treiber startet. Wenn dies nicht
     funktioniert mu eventuell einen neuen Eintrag in der Datei
     /etc/pcmcia/config gemacht werden, so da die Karte richtig erkannt
     wird. Siehe Abschnitt ``PCMCIA Speicherkarten'' fr mehr Details.

    Wurde das Modem erfolgreich durch serial_cs konfiguriert? Erneut
     sollte die Systemlog-Datei untersucht werden. Sind Meldungen vom
     serial_cs Treiber vorhanden? Wenn Eintrge wie register_serial()
     failed erfolgt sind, kann es sein, da Konflikte in der I/O-Adresse
     mit anderen Gerten vorliegen. Ein anderer Hinweis auf ein Problem
     ist die Meldung, da die Karte eine 8250 sei. Die meisten modernen
     Modemkarten sollten als ein 16550A UART erkannt werden. Bei dem
     Verdacht auf einen Adressenkonflikt sollte die Datei
     /etc/pcmcia/config.opts editiert werden und der Adressenbereich,
     den das Modem belegt, ausgeschlossen werden.

    Besteht ein Interruptkonflikt? Wenn die Systemlog-Datei gut
     aussieht aber das Modem trotzdem nicht zu funktionieren scheint,
     sollte man versuchen ber das setserial Programm den Interrupt auf
     Null zu setzen und zu kontrollieren ob das Modem so luft. Dies
     veranlat das Modem den langsameren polling-Modus anstelle eines
     Interrupts zu verwenden. Wenn dies das Problem zu lsen scheint,
     ist es wahrscheinlich, da ein anderes Gert den gleichen Interrupt
     verwendet, wie er von serial_cs gewhlt wurde. In diesem Fall
     sollte eine Zeile in /etc/pcmcia/config.opts eingefgt werden, die
     diesen Interrupt ausschliet.

    Wenn es scheint, da das Modem wirklich sehr langsam luft, ist
     dies meist ein sicheres Kennzeichen fr einen Interruptkonflikt.

    Man sollte sicherstellen, da es sich wirklich um ein PCMCIA
     Problem handelt. Es kann hilfreich sein sich zu vergewissern ob die
     Karte unter DOS mit den Herstellertreibern funktioniert. Ebenso
     sollte die Karte nicht gleich mit derart komplexen Dingen wie SLIP
     getestet werden, bis man sicher ist, da man einfache Verbindungen
     herstellen kann. Wenn einfache Verbindungen gelingen und SLIP
     fehlschlgt so liegt das Problem wahrscheinlich bei SLIP und nicht
     bei PCMCIA.

  4.5.  PCMCIA SCSI Controller

  Alle derzeit untersttzten PCMCIA Karten sind arbeitsgleiche Karten
  von folgenden ISA-Bus Karten: Qlogic, Adaptec 152x oder Future Domain
  TMC-16x0. Die PCMCIA Treiber werden durch Einbindung von einigem
  PCMCIA spezifischen Programmcode (in qlogic_cs.c, toaster_cs.c oder
  fdomain_cs.c) aus den normalen Linux SCSI Treibern gebildet.

  Bei der Entdeckung neuer SCSI Controller werden die SCSI Treiber nach
  neuen Gerten suchen. Die Systemlog-Dateien sollten Auskunft darber
  geben ob ein Gert ordentlich erkannt wird. Neue SCSI Gerte werden
  den ersten verfgbaren Gertetreibern zugewiesen. Die erste SCSI
  Festplatte wird /dev/sda, das erste Bandlaufwerk /dev/st0 und das
  erste CDROM Laufwerk wird /dev/scd0 sein.

  Mit Kernel 1.3.* und spteren sind die PCMCIA Kerntreiber fhig vom
  Kernel aus herauszufinden, welche SCSI Gerte an der Karte
  angeschlossen sind. Diese werden in der Datei /var/run/stab
  aufgelistet und die SCSI Konfigurationsskript, /etc/pcmcia.scsi, wird
  fr jedes angeschlossene Gert aufgerufen und zwar entweder um das
  Gert zu konfigurieren oder um es herunterzufahren. Das Standardskript
  unternimmt nichts um SCSI Gerte zu konfigurieren, wird aber
  verwendete Dateisysteme ordentlich abbauen wenn eine Karte entfernt
  wird.

  Mit Kernel 1.2.* knnen die PCMCIA Treiber nich automatisch erkennen,
  welches Gert an welcher Karte angeschlossen ist. Wenn man stattdessen
  eine normale SCSI Gertekonfiguration hat, so kann man diese in der
  Datei /etc/pcmcia/scsi.opts auflisten. Zum Beispiel, wenn man
  normalerweise nur eine Festplatte und ein CDROM Laufwerk verwendet,
  wrde man folgendes verwenden:

       # Kernel 1.2.*: Liste der angeschlossenen Komponenten
       SCSI_DEVICE="sda scd0"

  Die Gerteadressen die dem Skript scsi.opts bergeben werden sind
  kompliziert, da eine groe Zahl verschiedenartiger Gerte an einen
  SCSI Controller angeschlossen werden knnen. Die Adressen bestehen
  entweder aus sechs oder sieben durch Kommata getrennte Felder: Das
  aktuelle Schema, den Gertetyp, die Slotnummer, den SCSI-Kanal, ID,
  die logische Einheitennummer und eventuell die Partitionsnummer. Der
  Gertetyp wird sd fr Festplatten, st fr Bandlaufwerke, sr fr CDROM
  Laufwerke und sg fr generische SCSI Gerte sein. Bei den meisten
  Einstellungen wird der SCSI Kanal und die Einheitennummer 0 sein. Fr
  Festplatten mit verschiedenen Partitionen wird scsi.opts erst fr das
  gesamte Gert mit einer fnf Felder enthaltenen Adresse aufgerufen.
  Das Skript sollte dann die Variable PARTS als eine Liste anlegen, die
  die Partitionen enthlt. Danach wird scsi.opts mit einer sieben Felder
  enthaltenen Adresse fr jede Partition aufgerufen. Hier ist zum
  Beispiel ein Skript zur Konfiguration einer Festplatte an SCSI ID 3
  mit zwei Partitionen und einem CDROM Laufwerk an SCSI ID 6:

       case "$ADDRESS" in
       *,sd,*,0,3,0)
           # Dieses Festplatte hat zwei Partitionen
           PARTS="1 2"
           ;;
       *,sd,*,0,3,0,1)
           # Optionen Partition 1:
           # aktualisiere /etc/fstab und mounte ein ext2 fs auf /usr1
           DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
           FSTYPE="ext2"
           OPTS=""
           MOUNTPT="/usr1"
           ;;
       *,sd,*,0,3,0,2)
           # Optionen Partition 2:
           # aktualisiere /etc/fstab und mounte ein MS-DOS fs auf /usr2
           DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
           FSTYPE="msdos"
           OPTS=""
           MOUNTPT="/usr2"
           ;;
       *,sr,*,0,6,0)
           # Optionen CD-ROM an SCSI ID 6
           PARTS=""
           DO_FSTAB="y" ; DO_FSCK="n" ; DO_MOUNT="y"
           FSTYPE="iso9660"
           OPTS="ro"
           MOUNTPT="/cdrom"
           ;;
       esac

  Wenn der Kernel keinen Grundtreiber fr besondere SCSI Gerte hat
  (Festplatte, Bandlaufwerk, etc.), dann wird das Gert nicht vom PCMCIA
  Treiber konfiguriert. Als ein Nebeneffekt wird der Gertename in
  var/run/stab etwas sein wie sdHexadezimalzahl ist. Dies passiert, wenn
  cardmgr nicht in der Lage ist die SCSI ID Nummer in einen
  entsprechenden Linux Gertenamen zu bersetzen.

  Es ist mglich die SCSI Grundtreiber fr den Kernel zu modularisieren,
  so da diese nur geladen werden, wenn ein PCMCIA SCSI Controller
  entdeckt wird. Um dies zu erreichen, mu die Datei /etc/pcmcia/config
  editiert werden, damit cardmgr wei welche zustzlichen Module geladen
  werden mssen um den Controller zu konfigurieren. Zum Beispiel:

       device "aha152x_cs"
         class "scsi" module "scsi/scsi_mod", "scsi/sd_mod", "aha152x_cs"

  wrde das SCSI Kernmodul und die Grundmodule der Festplatten vor dem
  regulren PCMCIA Treiber laden. Das PCMCIA Konfigurationsskript wird
  nicht automatisch modularisierte SCSI Module entdecken, so da die
  SCSI Untersttzung manuell in die Konfigurationsskripte eingetragen
  werden mu.

  SCSI Gerte sollten immer als erstes, vor dem Notebook oder dem
  Einfhren der Karte, eingeschaltet werden, so da der SCSI-Bus
  ordentlich terminiert ist, wenn der Controller konfiguriert wird. Man
  sollte auch uerst vorsichtig sein bevor man eine SCSI
  Controllerkarte entfernt. In diesem Fall sollte man sicher sein, da
  alle angeschlossenen SCSI Gerte ordnungsgem heruntergefahren
  wurden. Der sicherste Weg dies zu erreichen ist es entweder cardctl
  oder cardinfo zu verwenden und eine Kartenentfernung anzufordern,
  bevor man die Karte physisch entfernt. Bis jetzt mssen alle SCSI
  Gerte eingeschaltet sein bevor der SCSI Controller eingefhrt wird
  und sollten solange angeschlossen bleiben, bis der Controller wieder
  entfernt wird oder das Notebook ausgeschaltet wird.

  Es besteht die Mglichkeit von Komplikationen bei Karten die bei
  normalen ISA-Bus Controllern nicht bestehen. Der SCSI Bus entht ein
  termination power Signal welches fr den ordentlichen Betrieb von
  passiven SCSI Terminatoren notwendig ist.  PCMCIA SCSI Controller
  untersttzen dieses Signal nicht. Wenn ein solches bentigt wird, mu
  ein externes Gert dieses liefern. Einige externe SCSI Gerte knnen
  so konfiguriert werden, da sie dieses Signal liefern. Andere, wie
  z.B. das Zip Laufwerk oder das Syquest EZ-Laufwerk verwenden aktive
  Terminierungen und bentigen diese daher nicht. In einigen Fllen kann
  es notwendig sein spezielle Terminierungseinheiten wie das APS SCSI
  Sentry 2 zu verwenden, die ein externes Signal haben. Wenn die SCSI
  Gerte zu einer Kette konfiguriert werden, sollte man sicher sein, ob
  ein Gert dieses Signal bengt oder liefern kann.

  Der Adaptec APA-460 SlimSCSI Controller wird nicht untersttzt. Diese
  Karte wurde ursprnglich unter dem Namen Trantor verkauft. Nach der
  bernahme von Trantec durch Adaptec wurde dieser Controller mit einer
  Adaptec Bezeichnung verkauft. Der APA-460 ist mit keinem existierenden
  Linuxtreiber kompatibel. David ist sich nicht sicher, wie schwer es
  sein wird einen Treiber fr diesen Controller zu schreiben. Er
  vermutet, da niemand die dazu notwendigen technischen Informationen
  von Adaptec erhalten wird.

  Die (nichtuntersttzte) Trantor SlimSCSI kann auf folgende Weise
  erkannt werden:

  Trantor / Adaptec APA-460 SlimSCSI
  FCC ID: IE8T460
  Shipped with SCSIworks! driver software

  Die (nichtuntersttzte) Adaptec SlimSCSI kann auf folgende Weise
  erkannt werden:

       Adaptec APA-1460 SlimSCSI
       FCC ID: FGT1460
       P/N: 900100
       Shipped with EZ-SCSI driver software

  4.5.1.  Untersuchung von Problemen mit SCSI Controllern

    Bei dem aha152x_cs Treiber (dieser wird von Adaptec, New Media und
     ein paar anderen verwendet) scheint die Untersttzung von
     disconnect/reconnect eine hufige Fehlerquelle bei Bandlaufwerken
     zu sein. Um diese Eigenschaft abzuschalten mu folgendes in der
     Datei /etc/pcmcia/config.opts hinzugefgt werden:

       module "aha152x_cs" opts "reconnect=0"

  4.6.  PCMCIA Speicherkarten

  Das Standardstartskript fr Speicherkarten erzeugt Block- und
  Zeichenorientierte Gerte fr den Zugriff auf alle Bereiche der
  Speicherkarte. Es gibt zwei Treiber fr Speicherkarten. Einen lteren
  Treiber pcmem_cs, der gut mit einfachen statischem RAM Karten
  zusammenarbeitet, und einen neueren Treiber memory_cs, der meistens
  fr den direkten Zugriff auf Blitzspeicherkarten (flash) verwendet
  wird. Fr eine genauere Beschreibung der Gertenamen sollte man die
  man pages befragen.  Beide, sowohl Block- als auch Zeichenorientierte
  Gertedateien, werden erzeugt. Die Blockgrte werden fr einen
  Festplattenhnlichen Zugriff verwendet (Erzeugung und Anbindung von
  Dateisystemen, etc.). Die Zeichorientierten Gertedateien werden fr
  rohen, nichtgepufferten Lese- und Schreiboperationen an beliebigen
  Stellen verwendet.

  Bei den FTL und dem neuen Speichertreibern besteht die Gerteadresse,
  die an die Skripte ftl.opts und memory.opts weitergegeben werden, aus
  zwei Feldern: der Slotnummer und der Partitionsnummer. Gewhnliche
  Speicherpartitionen werden vor Attributspeicherpartitionen nummeriert.
  Allgemein ist die interessanteste Partition die mit der Nummer 0 (die
  Hauptpartition, wo die Daten gespeichert werden). Hier ist ein
  Beispiel, eines Skriptes, das automatisch, abhngig vom verwendeten
  Slot eine Blitzspeicherkarte, in das System integriert:

  case "$ADDRESS" in
  *,0,0)
      # Integriere Dateisystem aber aktualisiere nicht /etc/fstab
      DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
      FSTYPE="ext2" ; OPTS=""
      MOUNTPT="/ftl0"
      ;;
  *,1,0)
      # Integriere Dateisystem aber aktualisiere nicht /etc/fstab
      DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
      FSTYPE="ext2" ; OPTS=""
      MOUNTPT="/ftl1"
      ;;
  esac

  4.6.1.  Einfache Speicherkarten

  Einige ltere Speicherkarten und die meisten einfachen statischen RAM
  Karten besitzen keine Card Information Structure (CIS), welche das
  Schema ist, das PCMCIA Karten verwenden um sich selbst zu
  identifizieren. Normalerweise wird cardmgr annehmen, da Karten die
  keine CIS aufweisen einfache Speicherkarten sind und wird den pcmem_cs
  Treiber laden. Auf diese Weise erhlt man den allgemeinen Nebeneffekt,
  da andere unerkannte Karten flschlicherweise als Speicherkarten
  erkannt werden.

  Der pcmem_cs Treiber erzeugt drei logische Gertedateien mit einer
  Karte: pcmem?a ist eine Zeichengertedatei zum Zugriff auf
  Attributspeicher, pcmem?b ist eine Blockgertedatei und pcmem?c ist
  eine Zeichengertedatei. Da alle PCMCIA Karten eine
  Speicherschnittstelle neben allen anderen Funktionen bentigen, kann
  der pcmem_cs Treiber mit allen Karten verwendet werden um direkten
  Zugriff auf den Attribut und allgemeinen Speicherraum zu erhalten.

  Der pcmem_cs Treiber verwendet ein Verfahren um die Kapazitt einer
  Karte zu raten. Dieses Verfahren schlgt bei schreibgeschtzten Karten
  fehl und kann in einigen anderen Fllen zu Fehlern fhren. Wenn eine
  Karte falsch erkannt wurde, sollte ihre Gre explizit angegeben
  werden, wenn man Kommandos wie dd oder mkfs verwendet.

  4.6.2.  Verwendung von Blitzspeicherkarten

  Um eine Blitzspeicherkarte wie ein gewhnliches festplattenhnliches
  Blockgert zu verwenden mu als erstes eine flash translation layer
  Partition auf diesem Gert mit dem Kommando ftl_format erstellt
  werden:

       ftl_format -i /dev/mem0c0c

  Man beachte, da dieses Kommando auf die Karte ber die rohe
  Speicherkartenschnittstelle zugreift. Einmal formatiert kann die Karte
  wie ein normales Blockgert ber den ftl_cs Treiber verwendet werden:

  mke2fs /dev/ftl0
  mount -t ext2 /dev/ftl0 /mnt

  Es gibt zwei wesentliche Formate fr Blitzspeicherkarten: Die flash
  translation layer und das Microsoft Flash File System. Das FTL Format
  is generell mehr flexibel weil es erlaubt, irgendein gewhnliches,
  anspruchsvolles Dateisystem (ext2, msdos, etc.) auf dieser Karte zu
  verwenden genauso als ob es eine normale Festplatte wre. Das FFS ist
  ein komplett neuer Typ von Dateisystem. Linux kann zur Zeit keine
  Karten handhaben, die mit diesem Dateityp formatiert sind.

  4.7.  Treiber fr PCMCIA ATA/IDE Karten

  Die Untersttzung von ATA/IDE Treibern verlangt einen Kernel der
  Verison 1.3.72 oder hher. Der PCMCIA spezifische Teil des Treibers
  ist fixed_cs. Man sollte sicherstellen, da cardctl oder cardinfo
  verwendet werden um ATA/IDE Karten herunterzufahren bevor sie
  entnommen werden.

  Die Gerteadressen, die an fixed.opts weitergeleitet werden, bestehen
  aus drei oder vier Feldern: das aktuelle Schema, die Slotnummer, die
  Seriennummer des Laufwerks und ebentuell die Partitionsnummer. So wie
  bei SCSI Gerten wird fixed.opts zuerst aufgerufen und danach die
  eigentlichen Gerte. Wenn fixed.opts eine Liste von Partitionen in der
  Variablen PARTS enthlt, wird das Skript noch einmal fr jede
  Partition aufgerufen.

  Hier ist eine Beispieldatei fixed.opts, die die erste Partition einer
  ATA/IDE Karte auf /mnt abbildet:

       case "$ADDRESS" in
       *,*,*)
           PARTS="1"
           ;;
       *,*,*,1)
           DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
           FSTYPE="msdos"
           OPTS=""
           MOUNTPT="/mnt"
           ;;
       esac

  Beachte, da die voreingestellte Datei fixed.opts diese Zeilen in
  auskommentierter Form enthlt. Wenn es gewnscht wird, knnen
  verschiedene Konfigurationen basierend auf den Seriennummern der
  Karten verwendet werden. Um die Seriennummer einer Karte
  herauszufinden kann das Kommando ide_info verwendet werden. Danach
  kann ein Teil von fixed.info wie folgt aussehen:

  case "$ADDRESS" in
  *,*,Z4J60542)
      # Dies ist eine DOS Platte
      PARTS="1"
      ;;
  *,*,Z4J60542,1)
      DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
      FSTYPE="msdos"
      OPTS=""
      MOUNTPT="/mnt"
      ;;
  esac

  4.8.  Multifunktionskarten

  Beginnend mit dem Linux-Kernel 1.3.73 kann ein einzelner Interrupt mit
  mehreren verschiedenen Treibern, wie z.B. dem seriellen Treiber und
  einem Ethernettreiber, geteilt werden. Wenn eine Multifunktionskarte
  unter einem neueren Kernel verwendet wird, knnen alle Funktionen ohne
  ein- und ausladen von Treibern verwendet werden.

  Simultaner Gebrauch von zwei Kartenfunktionen ist trickreich und
  verschiedene Hardwarehersteller haben das Teilen von Interrupts auf
  ihre eigene nicht kompatiblen Weise verwirklicht. Die Treiber fr
  einige Karten (Ositech Jack of Diamonds , 3Com 3c562, Linksys)
  untersttzen den gleichzeitigen Zugriff ordentlich, whrend andere
  (besonders Megahertz) dies nicht tun.

  Frhere Kernel Versionen untersttzen das Teilen von Interrupts nicht,
  so da es fr PCMCIA Treiber nicht mglich ist gleichzeitig auf eine
  Ethernetkarte und ein Modem zuzugreifen. Die Treiber fr das Ethernet
  und die serielle Schnittstelle werden automatisch geladen. Wie dem
  auch sei, der Treiber fr das Ethernet besitzt per Voreinstellung den
  Interrupt der Karte. Um das Modem zu verwenden, mu der
  Ethernettreiber ausgeladen werden und der serielle mu neu
  konfiguriert werden wie z.B. hier:

       ifconfig eth0 down
       rmmod 3c589_cs
       setserial /dev/modem autoconfig auto_irq
       setserial /dev/modem

  Das zweite setserial Kommando soll vergleichen, da das der Treiber
  fr das Modem jetzt den Interrupt verwendet, der vorher von dem
  Ethernettreiber verwendet worden ist.

  4.9.  Wann ist es sicher eine PCMCIA Karte einzufhren oder zu
        entfernen?

  Theoretisch kann eine PCMCIA Karte jederzeit eingefhrt oder entfernt
  werden. Es ist jedoch eine gute Idee eine Karte die gerade von einem
  Programm in Gebrauch ist nicht zu entfernen. Kernel die lter sind als
  Version 1.1.77 bleiben oft hngen, wenn eine serielle bzw. Modemkarte
  entfernt wird. Doch dies sollte mittlerweile behoben sein.

  4.10.  Card Services und Advanced Power Management

  Card Services kann mit Untersttzung von APM bersetzt werden, wenn
  das Paket auf dem System installiert wurde. APM ist Bestandteil von
  Kernel 1.3.46 und neuer. Es wird derzeit von Rick Faith
  (faith@cs.unc.edu) betreut. APM Werkzeuge knnen via ftp von
  ftp.cs.unc.edu:/pub/users/faith/linux erhalten werden. Die PCMCIA
  Module werden automatisch fr APM konfiguriert, falls eine kompatible
  Version auf dem System erkannt wird.

  Ohne auf APM zurckzugreifen kann der Befehl cardctl suspend vor dem
  Anhalten des Notebooks und der Befehl cardctl resume nach dem erneuten
  Anfahren des Notebooks verwendet werden um die  PCMCIA Karten
  herunter- und wieder hochzufahren. Dies arbeitet nicht mit einem
  PCMCIA Modem zusammen, da in Betrieb ist, da der serielle Treiber
  nicht in der Lage ist die Arbeitsparameter des Modems zu sichern und
  wiedereinzurichten.

  APM scheint auf einigen System instabil zu sein. Wenn solche
  Beobachtungen im Zusammenhang mit APM und PCMCIA gemacht werden,
  sollte versucht werden den Fehler auf eines dieser beiden Pakete
  einzuschrnken bevor ein Fehlerreport erstellt wird.

  Einige Treiber, ganz besonders PCMCIA SCSI Treiber, knnen aus einem
  Anhalte- und Wiederanfahrzyklus nicht zurckkehren. Wenn eine PCMCIA
  SCSI Karte verwendet wird sollte daher das Kommando cardctl eject vor
  einem Anhalten des Systems ausgefhrt werden.

  4.11.  Wie wird eine PCMCIA Karte abgeschaltet ohne sie zu entnehmen?

  Dazu kann entweder das Kommando cardctl oder cardinfo verwendet
  werden. cardctl suspend einen Slot anhalten und herunterfahren. Das
  entsprechende resume Kommando wird die Karte wieder in den
  ursprnglichen Zustand zurcksetzen.

  4.12.  Wie wird ein PCMCIA Treiber ausgeladen?

  Um das vollstndige PCMCIA Paket auszuladen mu das Skript rc.pcmcia
  folgendermaen aufgerufen werden:

       /etc/pcmcia/rc.pcmcia stop

  Dieses Skript bentigt mehrere Sekunden um zu laufen, da jedem Treiber
  Zeit gelassen wird sanft herunterzufahren. Wenn ein PCMCIA Gert
  gerade in Benutzung ist, wird das herunterfahren unvollstndig sein
  und einige Module knnen im Kernel verbleiben. Um dies zu vermeiden
  sollten mit cardctl eject alle Slots heruntergefahren werden bevor
  rc.pcmcia aufgerufen wird. Der Endestatus des cardctl Kommandos zeigt
  an ob irgendein Slot nicht heruntergefahren werden konnte.

  5.  Anspruchsvollere Themen

  5.1.  Gerte Bereitstellung der bentigten Ressourcen fr PCMCIA

  Theoretisch sollte es egal sein, welcher Interrupt von welchem Gert
  verwendet wird, solange nicht zwei Gerte so konfiguriert sind, da
  sie die gleichen verwenden. In der Datei /etc/pcmcia/config.opts
  knnen bestimmte Interrupts, die bei nicht-PCMCIA Gerten Verwendung
  finden, ausgeschlossen werden.

  hnlich knnen keine bestimmten I/O Adressen fr den Gebrauch mit
  PCMCIA Karten angegeben werden. Die Datei /etc/pcmcia/config.opts
  erlaubt einem, einen Bereich von verfgbaren Adressen fr den Gebrauch
  aller PCMCIA Gerte anzugeben oder auszuschlieen.

  Nach der Modifizierung der Datei /etc/pcmcia/config.opts kann cardmgr
  mit dem Befehl kill -HUP neu gestartet werden.

  Der Interrrupt, der verwendet wird um den Kartenstatus zu berwachen,
  wird von einem Grundmodul (i82365 oder tcic) fr die berwachung der
  Slots bereits ausgewhlt, bevor cardmgr die Datei /etc/pcmcia/config
  durchforstet, so da diese Einstellungen durch diese Datei nicht
  beeinflut werden.  Um diesen Interrupt zu setzen mu die cs_irq=
  Option verwendet werden wenn der Slottreiber geladen wird. Dies wird
  durch setzen der Variable PCIC_OPTS= im Startskript rc.pcmcia
  erreicht.

  Alle darauf aufbauenden Kartentreiber haben eine Parameter der
  irq_mask= genannt wird und mit dem die Interrupts festgelegt werden,
  die von dem Treiber verwendet werden knnen. Jedes Bit von irq_mask
  entspricht einer Interruptzeile: Bit 0 ist irq 0, Bit 1 irq 1 und so
  weiter. Eine Maske von 0x1200 wrde den Interrupts 9 und 12
  entsprechen. Um einen Treiber derart einzuschrnken, da dieser nur
  einen Interrupt verwendet erreicht man durch setzen lediglich eines
  Bits. Diese Treiberoptionen sollten in der Datei /etc/pcmcia/config
  angegeben werden. Zum Beispiel:

       device "serial_cs"
         module "serial_cs" opts "irq_mask=0x1100"
         ...

  wrde bedeuten, da nur die Interrupts 8 und 12 verwendet werden
  drfen. Unabhngig von der Einstellung der Variablen irq_mask wird
  Card Services niemals einen Interrupt verwenden, der bereits von einem
  anderen Gert benutzt oder durch die Datei config ausgeschlossen wird.

  5.2.  Wie knnen verschiedene Gerteeinstellungen fr zu Hause und 
        fr die Arbeit verwendet werden?

  Dies ist wirklich eine leichte Anwendung der Untersttzung von PCMCIA
  Schemata. Dazu verwendet man am besten zwei Konfigurationsschemata
  genannt Arbeit und Heim. Hier ist ein Beispiel eines network.opts
  Skriptes mit schemaspezifischen Einstellungen:

       case "$ADDRESS" in
       Arbeit,*,*,*)
           # Definition der Netzwerkkarte im Arbeit Schema
           ...
           ;;
       Heim,*,*,*|default,*,*,*)
           # Definition der Netzwerkkarte im zu Hause Schema
           ...
           ;;
       esac

  Der erste Teil einer PCMCIA Gerteadresse ist immer das
  Konfigurationsschema. In diesem Beispiel wird der zweite Fall sowohl
  fr das Heim, als auch das default Schema verwendet. Wenn also das
  Schema aus irgendeinem Grund nicht gesetzt ist wird automatisch das
  Heim Schema verwendet.

  Um jetzt zwischen diesen beiden Stzen von Einstellungen zu whlen
  kann man eines dieser Kommandos starten:

       cardctl scheme home

  oder

       cardctl scheme work

  Das Kommando cardctl fhrt alle Karten herunter und startet diese neu.
  Dieses Kommando kann sicher verwendet werden, unabhngig davon, ob das
  PCMCIA System geladen ist. Es kann aber fehlschlagen, wenn zur
  gleichen Zeit andere Gerte verwendet werden. Dies ist unabhngig
  davon, ob diese Gerte von der Einstellung des aktuellen Schemas
  abhngen oder nicht.

  Um das gerade eingestellte Schema herauszufinden kann dieses Kommando
  gestartet werden:

       cardctl scheme

  5.3.  Booten von einem PCMCIA Gert

  Ein root Dateisystem auf einem PCMCIA Gert zu haben ist trickreich,
  da PCMCIA Systeme nicht dazu vorgesehen sind in den Kernel eingebunden
  zu werden. Die Kernkomponenten, die ladbaren Kernelmodule und der
  cardmgr Dmon, hngen von dem aktuell laufenden System ab. Die initrd
  Mglichkeit des Kernels umgeht diese Voraussetzungen dadurch, da
  Linux erlaubt wird vorbergehend ein RAM-Laufwerk als minimales root
  Dateisystem zu verwenden, die Treiber zu laden und dann ein anderes
  root Dateisystem an dessen Stelle anzubinden. Das kurzfristige root
  Dateisystem kann dazu verwendet werden PCMCIA zu konfigurieren und
  dann ein PCMCIA Gert als root Dateisystem einzurichten.

  Einige Linuxdistributionen erlauben eine direkte Installation auf
  Gerten, die direkt an einem PCMCIA SCSI Controller hngen als
  unbeabsichtigter Nebeneffekt zur Untersttzung der Installation von
  einem PCMCSI SCSI CDROM Laufwerk. Kein Installationsprogramm
  untersttzt die Konfiguration von initrd um Linux mit einem PCMCIA
  root Dateisystem zu booten. Um so ein System einzurichten bentigt man
  ein anderes Linuxsystem um ein initrd Startprogramm zu erzeugen. Wenn
  ein anderes Linuxsystem nicht vergbar ist, kann eine andere Option
  die temporrere Installation eines minimalen Linux auf einem nicht-
  PCMCIA Laufwerk, Erzeugung eines initrd Startprogramms und dann
  Neuinstallation auf einem PCMCIA Laufwerk sein.

  Das Linux Bootdisk HOWTO enthlt einige generelle Hinweise zur
  Erstellung von Bootdisketten aber nichts spezielles zu initrd. Die
  Hauptdokumentation zu initrd ist im Quellcode aktueller
  Kernelversionen in der Datei linux/Documentation/initrd.txt enthalten.
  Bevor man anfngt sollte man diese Dokumentation lesen. Eine
  Vertrautheit mit lilo ist ebenfalls hilfreich. Die Verwendung von
  initrd erfordert, da der Kernel mit den aktivierten Optionen
  CONFIG_BLK_DEV_RAM und CONFIG_BLK_DEV_INITRD bersetzt wurde.

  5.3.1.  Das Hilfsskript pcinitrd

  Das Skript pcinitrd erzeugt ein initrd Grundstartprogramm zum booten
  mit einem PCMCIA root Dateisystem. Dies enthlt eine minmale
  Verzeichnishierarchie, ein paar Gertedateien, einige ausfhrbare
  Programme, shared libraries und einen Satz von PCMCIA Treibermodulen.
  Wenn pcinitrd aufgerufen wird mssen die Treibermodule angegeben
  werden, die verwendet werden sollen. Die Kern-PCMCIA Komponenten,
  pcmcia_core und ds, sind automatisch enthalten.

  Als ein Beispiel fr den Fall, da das Notebook einen
  i82365-kompatiblen PCMCIA Controller besitzt und Linux mit dem root
  Dateisystem auf einer Festplatte installiert werden soll, die an einem
  Adaptec SlimSCSI Controller angeschlossen ist, wrde man folgenden
  Befehl verwenden:

       pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o

  Um die Startsequenz von initrd anzupassen, kann das Dateisystem
  mittels des loopback Gertes eingefgt werden:

       mount -o loop -t ext2 initrd /mnt

  Danach sollte das Skript linuxrc editiert werden. Die PCMCIA
  Konfigurationsdateien werden hierauf im Verzeichnis /etc installiert
  und knnen ebenfalls angepat werden. Dazu sollte die man page von
  pcinitrd fr weitere Informationen gelesen werden.

  5.3.2.  Erstellen einer initrd Bootdiskette

  Nach der Erstellung durch pcinitrd kann durch kopieren des Kernels,
  dem gepackten initrd Startprogramm und einiger Hilfsdateien fr lilo
  auf eine leere Floppy eine Bootdiskette erstellt werden. Im folgenden
  Beispiel nehmen wir an, da das bentigte PCMCIA root Dateisystem auf
  /dev/sda1 liegen soll:

  mke2fs /dev/fd0
  mount /dev/fd0 /mnt
  mkdir /mnt/etc /mnt/boot /mnt/dev
  cp -a /dev/fd0 /dev/sda1 /mnt/dev
  cp [kernel-image] /mnt/vmlinuz
  gzip < [initrd-image] > /mnt/initrd

  Erzeuge dann /mnt/etc/lilo.conf mit diesem Inhalt:

       boot=/dev/fd0
       compact
       image=/vmlinuz
           label=linux
           initrd=/initrd
           read-only
           root=/dev/sda1

  Zum Schlu mu lilo aufgerufen werden:

       /sbin/lilo -r /mnt

  Wenn lilo mit der Option -r aufgerufen wird, so wird es alle Aktionen
  relativ zu dem alternativ angegebenen root Dateisystem durchfhren.
  Der Grund fr das Erzeugen der Dateien unter /mnt/dev ist der, da
  lilo nicht in der Lage ist die Dateien in /dev zu verwenden, wenn es
  in diesem alternativen root Modus luft.

  5.3.3.  Installierung eines initrd Startprogramm auf einem nicht-Linux 
          Laufwerk

  Eine hfige Verwendung der initrd Mglichkeit ist der Gebrauch auf
  Systemen, wo die eingebaute Festplatte einem anderen Betriebssystem
  gewidmet ist. Der Linux-Kernel und das initrd Startprogramm knnen auf
  einer nicht-Linux Partition untergebracht werden und lilo oder LOADLIN
  knnen so konfiguriert werden, da sie Linux von dort starten knnen.

  Ausgehend von der Annahme, da der Kernel fr das entsprechende root
  Laufwerk konfiguriert wurde und initrd Startprogramm auf einem anderen
  System erstellt wurde, ist der einfachste Weg Linux mit LOADLIN zu
  starten:

       LOADLIN <kernel> initrd=<initrd-image>

  Wenn Linux erst einmal auf der Zielmaschiene gestartet wurde, kann
  dann lilo installiert werden um Linux direkt zu starten.  Als Beispiel
  sei /dev/hda1 die nicht-Linux Zielpartition und /mnt ein freies
  Verzeichnis zum Anschlu der Partition.  So mu als erstes ein
  Unterverzeichnis fr Linux auf dieser Partition geschaffen werden:

       mount /dev/hda1 /mnt
       mkdir /mnt/linux
       cp [kernel-image] /mnt/linux/vmlinuz
       cp [initrd-image] /mnt/linux/initrd

  Wenn in diesem Beispiel /dev/sda1, ein SCSI Laufwerk, auf welches ber
  einen PCMCIA Controller zugegriffen wird, die root Partition von Linux
  enthalten soll, so mu zur Installation von lilo eine Datei lilo.conf
  mit folgendem Inhalt erstellt werden:

       boot=/dev/hda
       map=/mnt/linux/map
       compact
       image=/mnt/linux/vmlinuz
               label=linux
               root=/dev/sda1
               initrd=/mnt/linux/initrd
               read-only
       other=/dev/hda1
               table=/dev/hda
               label=windows

  Die boot= Zeile besagt, da der lilo im Master Boot Record (MBR) des
  angegebenen Gertes liegen soll. Die root= Zeile kennzeichnet das
  gewnschte root Dateisystem welches spter fr den Gebrauch des initrd
  Startprogramms verwendet werden soll und kann berflssig sein, wenn
  der Kernel schon entsprechend konfiguriert worden ist. Der other=
  Abschnitt beschreibt das andere Betriebssystem, da auf /dev/hda1
  liegt.

  Um lilo in diesem Fall zu installieren, sollte dies verwendet werden:

       lilo -C lilo.conf

  Beachte, da in diesem Fall die Datei lilo.conf absolute Pfadnamen
  verwendet, die /mnt enthalten. David tat dies in diesem Beispiel, da
  das Zieldateisystem eventuell die Einrichtung von Linux Gertedateien
  fr die boot= und root= Optionen nicht untersttzt.

  6.  Handhabung von Karten, die nicht untersttzt werden

  6.1.  Konfiguration nichterkannter Karten

  Angenommen, da die Karte von einem bestehenden Treiber untersttzt
  wird, so ist alles was getan werden mu ein Eintrag in die Datei
  /etc/pcmcia/config um cardmgr mitzuteilen wie die Karte identifiziert
  und welche Treiber fr diese Karte geladen werden mu. Die man page
  von pcmcia gibt Auskunft ber das richtige Format fr einen Eintrag.
  Wenn eine unbekannte Karte eingefhrt wird, so notiert cardmgr
  normalerweise Identifikationsinformationen in den Systemlog-Dateien,
  die dazu verwendet werden knnen einen config Eintrag zu erstellen.

  Hier ist ein Beispiel wie cardmgr eine nichtuntersttzte Karte in den
  Systemlog-Dateien eintragen wird:

       cardmgr[460]: unsupported card in socket 1
       cardmgr[460]: version info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"

  Der entsprechende Eintrag in der Datei /etc/pcmcia/config wrde in
  diesem Fall so aussehen:

       card "Megahertz XJ2288 V.34 Fax Modem"
         version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
         bind "serial_cs"

  Es kann das Zeichen * verwendet werden um Zeichenketten anzugeben, die
  nicht exakt bereinstimmen mssen, so wie Versionsnummern. Wenn
  Eintrge gemacht werden, sollte darauf geachtet werden, sollte genau
  darauf geachtet werden, da die Zeichenketten exakt kopiert werden,
  also die Leerzeichen und die Gro- und Kleinschreibung beibehalten
  werden. Man sollte ebenfalls sicher sein, da der Eintrag in config
  die selbe Zahl an Zeichenketten enthlt wie sie in der Log-Datei
  stehen.

  Nach dem editieren der Datei /etc/pcmcia/config kann cardmgr ein
  Signal gesendet werden, damit die Datei neu geladen wird:

       kill -HUP `cat /var/run/stab`

  Wenn ein neuer Eintrag in die config-Datei gemacht wurde, so sollte
  man David eine Kopie davon zuschicken, damit dieser Eintrag in die
  Standardkonfiugartionsdatei eingefgt werden kann.

  6.2.  Hinzufgen einer Untersttzung fr NE2000 kompatible 
        Ethernetkarten

  Als erstes sollte kontrolliert werden ob die Karte von cardmgr erkannt
  wird. Einige Karten, die nicht in der Datei SUPPORTED.CARDS stehen,
  sind OEM Versionen von Karten, die bereits untersttzt werden. Wenn so
  eine Karte gefunden wird, sollte man David dieses mitteilen, damit er
  diese Karte in der Liste aufnehmen kann.

  Wenn die Karte nicht erkannt wird, sollte man den Anleitungen im
  Abschnitt ``PCMCIA Speicherkarten'' folgen, um einen
  Konfigurationseintrag fr diese Karte zu erstellen. Hierfr sollte die
  Karte an den Speicherkartentreiber, pcmem_cs, gebunden werden. Danach
  mu cardmgr neu gestartet werden um die neue Konfigurationsdatei zu
  verwenden.

  Man bentigt die Ethernet Hardwareadresse der Karte. Diese Adresse ist
  eine Serie von sechs zweistelligen Hexadezimalzahlen, die oft direkt
  auf die Karte dedruckt ist. Wenn diese nicht direkt auf der Karte
  steht kann meist auch der DOS Treiber verwendet werden um die
  Kartennummer zu ermitteln. Wenn diese erst einmal bekannt ist, kann
  man folgenden Befehl aufrufen:

       dd if=/dev/pcmem0a count=20 | od -Ax -t x1

  In der Ausgabe dieses Kommandos sucht man jetzt nach der Adresse. Hat
  man diese gefunden, notiere man sich den Offset des ersten Byte der
  Adresse. Danach editiere man die Datei modules/pcnet_cs.c und finde
  die hw_info Struktur. Man hat nun einen neuen Eintrag fr die neue
  Karte zu machen. Das erste Feld enthlt einen beschreibenden Namen,
  das zweite den Offset mit 2 multipliziert. Die nchsten drei Felder
  enthalten die ersten drei Bytes der Hardwareadresse. Das letzte Feld
  enthlt einige Einstellungen fr spezielle Karteneigenschaften. Als
  erstes sollte man hier eine 0 versuchen.

  Nach dem editieren der Datei pcnet_cs.c mu diese kompiliert und das
  neue Modul installiert werden. Editiere nun die Datei
  /etc/pcmcia/config erneut und wechsle die Anbindung der Karte vom
  Modul pcmem_cs zu pcnet_cs. Folge den Anleitungen zum erneuten Laden
  der Konfigurationsdatei und alles sollte richtig eingestellt sein.
  Bitte sendet David eine Kopie der neuen hw_info und des config
  Eintrags.

  Wenn die Hardwareadresse der Ethernetkarte in der Hexadezimalen
  Ausgabe nicht gefunden werden kann gibt es noch eine letzte
  Mglichkeit. Es ist mglich die Adresse direkt anzugeben, wenn das
  pcnet_cs Modul initialisiert wird. Dazu mu die Datei
  /etc/pcmcia/config editiert werden und die Option hw_addr= eingefgt
  werden, wie hier:

       module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"

  Hier mu natrlich die eigene Hardwareadresse an den entsprechenden
  Stellen eingetragen werden.

  6.3.  PCMCIA Schnittstellenkarten fr Diskettenlaufwerke

  Die Schnittstellenkarte fr Diskettenlaufwerke, wie sie im Compaq Aero
  und einigen anderen Notebooks Verwendung finden, wird derzeit nicht
  untersttzt. Der Haken liegt hier darin, da Aero einen modifizierten
  Controller Chip verwendet um einen DMA Zugriff auf das
  Diskettenlaufwerk zu ermglichen. Ohne zu wissen, wie dies genau
  abluft kann keine Untersttzung unter Linux bewerkstelligt werden.

  Ist diese Gertekarte fr Diskettenlaufwerke anwesend, wenn der Aero
  eingeschaltet wird, so wird das BIOS des Aero die Karte konfigurieren
  und Linux wird sie als gewhnliches Diskettenlaufwerk erkennen. Wenn
  die Linux PCMCIA Treiber geladen werden, so erkennen diese, da diese
  Karte bereits konfiguriert und an eine Linux Gertedatei angeschlossen
  wurde. Dieser Slot wird dann in Ruhe gelassen. Auf diese Weise kann
  das Laufwerk verwendet werden, wenn es zur Bootzeit anwesend war. Aber
  es ist nicht mglich diese Karte whrend des laufenden Systems zu
  wechseln, entfernen und wieder einzufhren.

  6.4.  Was ist mit der Untersttzung von Xircom Karten?

  Ein Treiber fr die Unterstzung von Xircom Ethernet und Xircom
  Ethernet/Modem Karten ist im aktuellen PCMCIA Paket, dank der Mithilfe
  von Werner Koch, enthalten. David hat ein HyperNews Forum speziell zur
  Diskussion von Xircom Treiberentwicklung bei

       http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html

  eingerichtet.

  Fr eine lange Zeit wurden Xircom Karten nicht untersttzt da Xircom
  eine Firmenphilosophie innehatte, keine technischen Informationen ber
  ihre Karten zu verbreiten. Wie dem auch sei, sie haben diese Haltung
  gelockert und geben nun Treiberinformationen weiter.

  7.  Tips fr die Fehlersuche und Informationen zur Programmierung

  7.1.  Wie kann ein hilfreicher Fehlerreport verschickt werden?

  Der beste Weg einen Fehlerreport zu versenden besteht darin, die
  HyperNews Mitteilungsliste der PCMCIA Homepage zu verwenden. Auf
  diesem Weg knnen andere Leute die aktuellen Probleme sehen (und deren
  Lsungen oder Vermeidung falls mglich). Hier sind einige Dinge die in
  einem Fehlerreport enthalten sein sollten:

    Sysemtyp und Ausgabe des Kommandos probe

    Welche PCMCIA Karten werden verwendet?

    Version des Linuxkernels und des PCMCIA Treibers

    Alle nderungen, die in den Startdateien im Verzeichnis /etc/pcmcia
     oder dem PCMCIA Startskript gemacht wurden

    Alle im Zusammenhang mit PCMCIA stehenden Mitteilungen in der
     Systemlog-Datei

     Vor dem Abschicken des Fehlerreports sollte man sicher sein, da
     die neuesten PCMCIA Treiberpakete verwendet wurden. Es ist keine
     sehr gute Sache, die Zeit mit dem lesen von Fehlerreporten zu
     verschwenden, wenn diese Fehler lngst behoben wurden.

  Wenn das Problem einen Kernelfehler enthlt, so ist der
  Registerausdruck nur dann hilfreich, wenn die fehlerhafte Adresse,
  EIP, herausgefunden werden kann. Wenn diese im Hauptkernel liegt kann
  die Adresse dazu verwendet werden mittels der Datei System.map die
  fehlerhafte Funktion herauszufinden. Wenn der Fehler in einem ladbaren
  Modul liegt, ist diese Funktion ein wenig schwieriger herauszufinden.
  Von den aktuellen Modulwerkzeugen wird ksyms -m die Basisadressen der
  Module anzeigen. Man nehme dann das Modul, welches die EIP Adresse
  enthlt und subtrahiere die Basisadresse von der EIP um einen Offset
  innerhalb des Moduls zu bekommen. Danach kann das gdb Programm auf das
  Modul angewendet werden. Mit dem list Kommando kann dann diser Offset
  betrachtet werden. Dies wird aber nur funktionieren, wenn das Modul
  mit der Option -g zum Einbinden von Fehlersuchinformationen bersetzt
  wurde.

  Wenn kein Zugang zum WWW besteht, knnen Fehlerreporte direkt zu David
  Hinds geschickt werden. David bevorzugt es aber, da diese
  Fehlerberichte direkt an die Website geschickt werden, da sie hier
  auch von anderen gelesen werden knnen.

  7.2.  Hilfe zur Fehlersuche auf niedrigster Stufe

  Die PCMCIA Module enthalten eine Menge bersetzungsabhngigen
  Fehlersuchcode. Der meiste Code steht unter Kontrolle der PCMCIA_DEBUG
  Prprozessordefinition. Wenn diese undefiniert ist, wird der meiste
  Fehlersuchcode nicht bersetzt. Wenn dieser Wert auf 0 gesetzt ist,
  wird dieser Code zwar bersetzt, ist jedoch inaktiv. Grere Werte
  spezifizieren einen hheren Grad der Mitteilungsbereitschaft. Jedes
  Modul, da mit definiertem PCMCIA_DEBUG bersetzt wurde, enthlt einen
  ganzzahligen Parameter pc_debug, der die Meldebereitschaft des Moduls
  bestimmt. Dieser kann whrend des Ladens eines Moduls modifiziert
  werden, so da die Ausgabe auf Modulbasis angegeben werden kann, ohne
  da der Code neue bersetzt werden mu.

  Es sind einige Werkzeuge zur Fehlersuche in dem Unterverzeichnis
  debug_tools der PCMCIA Distribution enthalten. Die Programme dumb_tcic
  und dumb_i365 erstellen komplette Registerauszge der PCMCIA
  Controller und entschlsseln eine Menge der Registerinformationen.
  Diese sind besonders hilfreich, wenn man Zugang zu einem Datenblatt
  des zugehrigen Controller-Chips hat. Das Programm dump_tuples listet
  den Inhalt der CIS (Card Information Structure) auf und entschlsselt
  einige interessante Bits. Mit dem Programm dump_cisreg knnen die
  lokalen Konfigurationsregister einer Karte angezeigt werden.

  Der pcmem_cs Speicherkartentreiber kann manchmal auch sehr hilfreich
  sein. Dieser kann an irgendeine Karte gebunden werden und wechselwirkt
  nicht mit anderen Treibern. Er kann verwendet werden um direkten
  Zugriff auf den Attribut- oder allgemeinen Speicher einer Karte zu
  haben.

  7.3.  Wie schreibt man einen Treiber fr eine neue Karte?

  Der Linux PCMCIA Programmer's Guide ist die beste Dokumentation der
  Linux PCMCIA Schnittstelle. Die neueste Version ist immer ber ftp
  erhltlich bei

       hyper.stanford.edu:/pub/pcmcia/doc

  oder auf der WWW bei

       http://hyper.stanford.edu/HyperNews/get/pcmcia/home.html

  Bei Gerten, die den normalen ISA Gerten nahe stehen, kann man
  wahrscheinlich einen Groteil der existierenden Linux Treiber
  verwenden. In einigen Fllen wird der grte Brocken die Anpassung
  existierender Treiber sein, so da diese das Hinzufgen und Entfernen
  der Gerte nach dem booten handhaben knnen. Von den aktuellen
  Treibern ist der Speicherkartentreiber der einzige selbstenthaltene
  Treiber, der nicht von den Teilen des Linux Kernels abhngt und so die
  meiste Arbeit leisten mu.

  David hat einen Gersttreiber geschrieben, der mit einer Menge an
  Kommentaren erklrt, wie die Kommunikation zwischen dem Treiber und
  den Card Services erklrt. Dieser kann in der PCMCIA Quelldistribution
  unter modules/skeleton.c gefunden werden.

