= Pakete im Vergleich =

== divine ==

Divine scheint (laut ''man divine'' und ''man divine.conf'') die
gestellte Aufgabe recht gut zu lösen. Leider wird dafür natürlich
eine neue Konfigurationsdatei ''/etc/divine.conf'' eingefügt.
Divine wird in ''/etc/pcmcia/network.opts'' als ''start_fn''
eingetragen. Das heisst, die Konfiguration findet zuerst ganz
normal statt, wie dort angegeben, so dass eine
Default-Konfiguration besteht. Danach startet dann divine und
prüft, ob eines der Netze, die es kennt, gefunden werden. Dann wird
ggf. die Konfiguration geändert. Seltsamerweise wird in der
Konfiguration kein Nameserver gesetzt, sondern ein Link auf eine
resolv.conf-Kopie. Also hat man diese Dateien auch noch
herumfliegen.

Ein Betrieb mit einer nicht-PCMCIA-Karte sollte kein Problem sein,
da man auch dort einen Befehl aufrufen kann, der nach erfolgter
Standard-Konfiguration gestartet wird.

== intuitively ==

Das Programm soll (lt. manpage) ein kompletter Rewrite von divine
sein. Ansonsten sind die manpages sehr knapp und erklären alleine
nicht, wie man das Programm einsetzen soll. Ich empfehle, vorher
die manpage von divine zu lesen. Die Konfigurationsdatei hat ein
anderes, etwas übersichtlicheres Format, was aber keinen grossen
Unterschied macht. Ein Nameserver kann auch nicht in der
Konfigurationsdatei gesetzt werden. Dafür wird nicht nur eine
resolv.conf verlinkt, sondern der Inhalt eines ganzen
Verzeichnisses, das alle möglichen Dateien für /etc enthalten kann.
Eigentlich eine gute Idee, um z.B. die printcap, etc. anzupassen.

== laptop-netconf ==

Dieses Programm erkennt das Netzwerk anhand einer einfachen
Konfigurationsdatei und startet dann ein entsprechendes Skript. In
diesen Skripten wird dann ''resolv.conf'' und ''interfaces'' durch
einen Link auf eine spezielle Version vertauscht, danach ein
'''ifdown; ifup''' gemacht. Diese Methode sieht mir etwas nach
Brechstange aus und führt zu einer Vervielfachung von
Konfigurationsdateien.

== guessnet ==

guessnet ist eigentlich nicht für PCMCIA geeignet. Es ist auf das
''mapping''-Feature in ''/etc/interfaces'' abgestimmt. Auch hier
wird kein DNS eingestellt, allerdings kann man auch hier up-Skripte
angeben, die eine spezielle resolv.conf verlinken (oder erzeugen)
können.

Prinzipiell erscheint mir diese Lösung als sehr gut, weil für die
eigentlichen Netzwerkeinstellungen eine vorhandene
Konfigurationsdatei benutzt wird. Es muss lediglich ''start_fn'' in
den Konfigurationsskripten einmalig geändert werden, damit das
normale ''ifup'' von Debian aufgerufen wird. Dann hat man alle
Netzwerk-Einstellungen in einer Datei zusammengefasst.

== laptop-net ==

Hierbei handelt es sich um ein Paket mit einer sehr umfangreichen
Dokumentation, die aussieht, als ob alle möglichen Eventualitäten
erschlagen werden sollen. Es scheint der Mercedes unter den
Kandidaten zu sein. So kann z.B. nicht nur ein /etc-Verzeichnis
kopiert werden, sondern es gibt auch ein rc.d-Verzeichnis, so daß
Dienste automatisch gestartet oder gestoppt werden können. Als
einziges Programm unterstützt es Karten, die den Link-Beat angeben,
d.h. es merkt auch ohne PCMCIA, wenn das Netzwerkkabel
herausgezogen wird. Natürlich bedarf die ganze Geschichte völlig
eigener Konfigurationsdateien. :-( Dennoch scheint es möglich zu
sein, eine Grundfunktionalität in nur zwei Konfiguratiosdateien
unterzubringen (eine, um Netzwerke zu erkennen und eine, um die
Konfiguration des entsprechenden Netzwerks vorzunehmen). Und auch
der DNS kann hier ganz einfach angegeben werden.

Normale Karten werden sofort unterstützt, die Anbindung an
PCMCIA-Karten findet auch über ''start_fn'' statt.

== whereami ==

Im Sourcecode der PCMCIA-Skripte findet sich ein Verweis auf
'''whereami''', also habe ich das auch noch untersucht. Es muss
irgendwo aufgerufen werden und bietet eine Konfigurationsdatei, mit
der man recht komfortabel verschiedenste Tests durchführen kann, um
den Rechnerstatus festzustellen. So kann z.B. auch auf bestimmte
PCI-Karten (sprich: Docking-Station) oder auch ganz einfach auf
einen DHCP-Server etc. getestet werden. Dann kann ein bestimmter
Befehl ausgeführt werden. Hier wäre z.B. ein '''cardctl'''
angebracht. Leider wird das Programm im momentanen PCMCIA-Skript so
aufgerufen, dass es erst läuft, wenn das PCMCIA-Schema bereits
feststeht. :-( Natürlich kann man das auch ändern...

= Fazit =

Das beste Konzept ist IMHO '''guessnet''', da es ohne zusätzliche
Konfigurationsdateien auskommt. Allerdings läuft es ohne weiteres
nicht mit dem normalen PCMCIA-Konfigurationssystem. Falls man sich
damit abfindet, ein neues Konfigurationssystem einzufügen, scheint
'''laptop-net''' alle Eventualitäten abzudecken. Andererseits ist
'''intuitively''' einfach und unkompliziert aufzusetzen.
'''laptop-netconf''' und '''divine''' scheinen beide nicht aktuell
genug zu sein und sind von Nachfolgeprojekten abgelöst.
'''whereami''' bietet eine Erkennung nicht nur mit ARP-Paketen,
aber praktisch brauche ich nur diese (höchstens DHCP als Fallback).

Alle Pakete, die über die start_fn-Funktion ansetzen, könnten viel
besser in die PCMCIA-Skripte integriert werden, wenn sie vor der
Ausführung von ''network.opts'' laufen würden und dann das Schema
mit '''cardctl''' setzen würden, so daß ''network.opts'' darauf
reagieren könnte. Leider macht das keines von Ihnen. Da also
sowieso eine Modifikation der PCMCIA-Skripte nötig ist, kann man
auch auf guessnet setzen, das Interfaces normal über
''/etc/network/interfaces'' konfiguriert und damit die
PCMCIA-Konfiguration ganz abschaffen. -- ThomasBayen