14.2. Software

14.2.1. Basismodule

Die benötigten Kernelmodule befinden sich in den Kernelpaketen. Zusätzlich werden noch die Pakete pcmcia und hotplug benötigt. Beim Start von PCMCIA werden die Module pcmcia_core, yenta_socket und ds geladen. In sehr seltenen Fällen wird alternativ zu yenta_socket das Modul tcic benötigt. Sie initialisieren die vorhandenen PCMCIA-Controller und stellen Basisfunktionen zur Verfügung.

14.2.2. Cardmanager

Da PCMCIA-Karten zur Laufzeit gewechselt werden können, müssen die Aktivitäten in den Steckplätzen überwacht werden. Diese Aufgabe erledigen die in den Basismodulen implementierten CardServices. Die Initialisierung einer eingeschobenen Karte wird dann vom Cardmanager (für PC-Cards) bzw. vom Hotplug-System des Kernels (CardBus) übernommen. Der Cardmanager wird vom PCMCIA-Startskript nach dem Laden der Basismodule gestartet; Hotplug ist automatisch aktiv.

Ist eine Karte eingeschoben, ermittelt der Cardmanager bzw. Hotplug Typ und Funktion und lädt die passenden Module. Wurden diese erfolgreich geladen, startet der Cardmanager bzw. Hotplug je nach Funktion der Karte bestimmte Initialisierungsskripten, die ihrerseits die Netzwerkverbindung aufbauen, Partitionen von externen SCSI-Platten einhängen (mounten) oder andere hardwarespezifische Aktionen ausführen. Die Skripten des Cardmanagers befinden sich im Verzeichnis /etc/pcmcia. Die Skripten für Hotplug sind in /etc/hotplug zu finden. Wenn die Karte wieder entfernt wird, beendet der Cardmanager bzw. Hotplug mit denselben Skripten sämtliche Kartenaktivitäten. Anschließend werden die nicht mehr benötigten Module wieder entladen.

Es gibt für Vorgänge dieser Art so genannte Hotplug-Events. Wenn Festplatten oder Partitionen hinzugefügt werden („block“-Events), sorgen die Hotplug-Skripten dafür, dass die neuen Datenträger über subfs zur sofortigen Verwendung in /media bereitstehen. Um Datenträger über die älteren PCMCIA-Skripten einzubinden, sollte subfs in Hotplug ausgeschaltet werden.

Sowohl der Startvorgang von PCMCIA als auch die Kartenereignisse werden in der Systemprotokolldatei (/var/log/messages) protokolliert. Dort wird festgehalten, welche Module geladen und welche Skripten zur Einrichtung aufgerufen wurden.

Theoretisch kann eine PCMCIA-Karte einfach entnommen werden. Dies funktioniert hervorragend für Netzwerk-, Modem- oder ISDN-Karten, solange keine aktiven Netzwerkverbindungen mehr bestehen. Es funktioniert nicht im Zusammenhang mit eingehängten Partitionen einer externen Platte oder mit NFS-Verzeichnissen. Hier müssen Sie dafür sorgen, dass die Einheiten synchronisiert und sauber ausgehängt werden (unmounten). Das ist natürlich nicht mehr möglich, wenn die Karte bereits herausgenommen wurde. Im Zweifelsfall hilft der Befehl cardctl eject. Dieser Befehl deaktiviert alle Karten, die sich noch im Laptop befinden. Um nur eine der Karten zu deaktivieren, können Sie zusätzlich die Slotnummer angeben, zum Beispiel cardctl eject 0.


SUSE LINUX Administrationshandbuch 9.3