Angenommen, daß die Karte von einem bestehenden Treiber
unterstützt 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 für diese Karte geladen werden müssen. Die Manual Page
von pcmcia
gibt Auskunft über das richtige Format
für diese Konfigurationsdatei. Wenn eine unbekannte Karte eingeführt
wird, so notiert cardmgr
normalerweise
Identifikationsinformationen in den Systemlog-Dateien, die dazu
verwendet werden können, einen config
Eintrag zu
erstellen.
Hier ist ein Beispiel, wie cardmgr
eine nichtunterstützte
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
würde 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 müssen, so wie z.B.
Versionsnummern. Wenn Einträge gemacht werden, sollte 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
dieselbe Anzahl an Zeichenketten enthält, 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 eingefügt werden kann.
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
unterstützt werden. Wenn so eine Karte gefunden wird, sollte man
David dieses mitteilen, damit er diese Karte in die Liste aufnehmen
kann.
Wenn die Karte nicht erkannt wird, sollte man den Anleitungen im
Abschnitt
PCMCIA Speicherkarten
folgen, um einen Konfigurationseintrag für diese Karte zu
erstellen. Hierfür sollte die Karte an den Speicherkartentreiber,
pcmem_cs
, gebunden werden. Danach muß cardmgr
neu gestartet werden, um die neue Konfigurationsdatei zu verwenden.
Man benötigt die Ethernet-Hardwareadresse der Karte. Diese Adresse ist eine Serie von sechs zweistelligen Hexadezimalzahlen, die oft direkt auf die Karte gedruckt 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
für die neue Karte zu machen. Das erste Feld enthält einen
beschreibenden Namen, das zweite den Offset mit zwei multipliziert. Die
nächsten drei Felder enthalten die ersten drei Bytes der
Hardwareadresse. Das letzte Feld enthält einige Einstellungen
für 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. Editieren Sie nun die
Datei /etc/pcmcia/config
erneut und wechseln Sie die Anbindung der
Karte vom Modul pcmem_cs
zu pcnet_cs
. Folgen Sie der
Anleitungen zum erneuten Laden der Konfigurationsdatei, und alles
sollte richtig eingestellt sein. Bitte senden Sie 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
Möglichkeit. Es ist möglich, 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=
eingefügt werden wie hier:
module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"
Hier muß natürlich die eigene Hardwareadresse an den
entsprechenden Stellen eingetragen werden.
Die Schnittstellenkarte für Diskettenlaufwerke, wie sie im Compaq Aero und einigen anderen Notebooks Verwendung findet, wird derzeit nicht unterstützt. Der Haken liegt hier darin, daß der Aero einen modifizierten Controller Chip verwendet, um einen DMA-Zugriff auf das Diskettenlaufwerk zu ermöglichen. Ohne zu wissen, wie dies genau abläuft, kann keine Unterstützung unter Linux bewerkstelligt werden.
Ist diese Gerätekarte für Diskettenlaufwerke anwesend, wenn der Aero eingeschaltet wird, so wird das BIOS des Aero die Karte konfigurieren und Linux wird sie als gewöhnliches Diskettenlaufwerk erkennen. Wenn die Linux-PCMCIA-Treiber geladen werden, so erkennen diese, daß diese Karte bereits konfiguriert und an eine Linux-Gerätedatei 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 möglich, diese Karte während der Laufzeit des Systems zu wechseln, zu entfernen und wieder einzuführen.
Ein Treiber für die Unterstüzung 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 über die Xircom-Treiberentwicklung unter folgender Adresse eingerichtet:
http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html
Lange Zeit wurden Xircom-Karten nicht unterstützt, da Xircom die Firmenphilosophie verfolgte, keine technischen Informationen über ihre Karten zu verbreiten. Wie dem auch sei, sie haben diese Haltung gelockert und geben nun Treiberinformationen weiter.