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 muß. Die man page
von pcmcia
gibt Auskunft über das richtige Format
für einen Eintrag. 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
Versionsnummern. Wenn Einträge 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 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 der 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 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
für die neue Karte zu machen. Das erste Feld enthält einen
beschreibenden Namen, das zweite den Offset mit 2 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. 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
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 finden, wird derzeit nicht unterstützt. Der Haken liegt hier darin, daß 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 des laufenden Systems zu wechseln, 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 von Xircom Treiberentwicklung bei
http://hyper.stanford.edu/HyperNews/get/pcmcia/xircom.html
eingerichtet.
Für eine lange Zeit wurden Xircom Karten nicht unterstützt 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.