Beim Konfigurieren von ISDN4Linux werden Sie häufig auf Informationen zum HiSaX-Treiber treffen. Wir haben ein Interview mit HiSaX-Entwickler Karsten Keil geführt, der ein gutes Beispiel dafür liefert, wie man ein OpenSource-Projekt zu seinem Beruf machen kann.
Karsten, wenn man einen Blick auf die ISDN-Unterstützung unter Linux wirft, dann fallen schnell die Begriffe ISDN4Linux, HiSax-Treiber und kISDN – das scheinen die wichtigsten Vokabeln zu sein. Der HiSax-Treiber wurde von Dir ursprünglich für einige Siemens-basierte ISDN-Karten entwickelt und wird heute für alle passiven ISDN-Karten verwendet, sofern diese überhaupt unter Linux einsetzbar sind. Wann und wodurch bist Du auf die Idee gekommen, einen Linux-ISDN-Treiber zu schreiben?
Das ist eigentlich eine typische Geschichte einer Entwicklung im Open Source. Es war Ende 1995, und ich brauchte dringend einen Linux-ISDN-Zugang über das alte 1TR6 D-Kanal Protokoll der Telekom. Es gab schon isdn4linux und einen Treiber für meine Teles-Karte, aber die konnten nicht mit 1TR6 umgehen. Den damals schon unabhängig zu isdn4linux existierenden U-ISDN Treiber mit 1TR6-Unterstützung habe ich nicht zum Laufen bekommen (meine Schuld). Also habe ich mir die Norm besorgt und es selbst implementiert. Das hat mir dann soviel Spaß gemacht, dass ich weiter am isdn4linux-Projekt mitgearbeitet habe, um die Hardware-nahe Seite der Treiber zu verbessern und mehr passive Karten zu unterstützen.
Im Herbst 1996 entstand dann aus dem immer umfangreicher werdenden ursprünglichen Teles-Treiber von Jan den Ouden HiSax. HiSax war darauf ausgelegt, möglichst viele passive Karten mit dem Siemens-Chipsatz unter Linux zu unterstützen. Heute sind das 38 verschiedene Grundtypen mit über 100 verschieden Karten, nicht nur auf dem Siemens-Chips basisierend.
Du sagst, Du hast Dir “einfach die Norm besorgt”. Den ISDN-Standard zu kennen, ist aber nur eine Seite. Wie sieht es auf der anderen mit Informationen zu den Karten aus? Waren die Hersteller damals kooperativ und haben Infos zur Programmierung herausgegeben, oder musstest Du durch Try and Error feststellen, wie die Kommunikation zu laufen hat? Gibt es “Debugger-unter-Windows”-Geschichten dazu?
Naja, so einfach war es gar nicht, die Normen zu besorgen, denn die sind meist ziemlich teuer. Die Herstellerunterstützung ist ein wunder Punkt – die war damals praktisch nicht vorhanden. Bei der Teles-Karte konnte ich mich noch einfach auf Jans vorhandenen Treiber stützen und habe dabei auch viel über den prinzipiellen Aufbau einer ISDN-Karte gelernt. Der nächste Schritt war schwerer, die AVM-A1-Karte (später Fritz!classic) wurde etwas anders angesteuert. Alle Anfragen bei AVM waren erfolglos. Man hatte einfach Angst, die Konkurrenz könnte irgendwas mit “Open Source”-Treibern anfangen; ein weiteres Problem war die damals ungeklärte BZT-Zulassung des Treibers: Man wollte hier kein Risiko eingehen. Und Linux war halt nichts, das man ernst nahm, nur was für Hacker und Studenten…
Den Treiber für die AVM A1 konnte ich dann nur mittels Hardware-Debugging durch einen Logik-Analyser am ISA-Bus und Mitschneiden der IO-Befehle eines Treiberstarts im DOSEMU realisieren. Das war richtig knifflig, hat aber auch viel Spaß gemacht.
Die erste echte Zusammenarbeit mit Hardware-Herstellern kam durch die Firma ELSA zustande, die mich direkt angesprochen hat und mir alles Notwendige zur Verfügung gestellt hat. ELSA ging dann auch als erster Hersteller soweit, den HiSax-Treiber für ihre Karten beim BZT zuzulassen. Die Arbeit im Zulassungslabor hat mir dann auch erst den “richtigen” Durchblick, wie ISDN funktioniert, gegeben. Heute ist die Zusammenarbeit mit vielen Herstellern gegeben, obwohl es manchmal immer noch schwierig ist. Auch geben heute Hersteller durchaus Treiberentwicklungen für Linux in Auftrag, da Linux langsam Marktbedeutung hat. Problematisch wird die Lage an den Stellen, wo Patente oder anderweitige Rechte Dritter eine Rolle spielen (z. B. V42bis-Kompression).
Kannst Du uns noch einen kurzen Ausblick geben, welche neuen Features wir in zukünftigen Linux-Kernels erwarten können?
Weniger ;-), auf den Kernel bezogen. Für die nächste Zeit ist Stabilisierung des Codes für Kernel 2.4 angesagt; danach will ich Hisax und das gesamte I4L auf eine CAPI-2.0-basierende Schnittstelle umstellen und Funktionalität aus dem Kernel in den Usermode verlagern. Das hat die Vorteile, mehr Funktionalität bieten zu können und auch Herstellern von ISDN-Soft- und Hardware zu ermöglichen, auf eine gut bekannte, standardisierte Schnittstelle unter Linux zurückgreifen zu können.
Ich hoffe,dass sich dann auch Hersteller finden, die ihre Windows-Anwendungen (wie z. B.: Analog Fax) auf Linux portieren. In diesem Zusammenhang ist es auch geplant, die ISDN-PPP-Devices auf den allgemeinen PPP-Code umzustellen und so Modem- und ISDN-Verbindungen gleich zu behandeln.
Vielen Dank für das Interview.
Karsten Keil
Karsten Keil (39) hat als Dipl.-Ing. für Physik und Technologie elektronischer Bauelemente bis 1999 als Schaltkreisentwickler gearbeitet, seit einem Jahr ist er bei den SuSE Labs für die ISDN-Entwicklung zuständig. Der berufliche Wechsel in den Linux-Bereich erfolgte, weil die Arbeit an ISDN4Linux so zugenommen hatte, das er es zum Beruf machen musste (die andere Alternative wäre gewesen, damit aufzuhören). Karstens bevorzugte Tätigkeiten neben der Treiberprogrammierung sind Lesen und Tauchen.





