Hallo SuSE-ISDNler (falls es noch welche gibt),
ich versuche gerade einen selbstgeschriebenen CAPI-Treiber
(drivers/isdn/gigaset im Linux-Quellbaum, falls es jemanden
interessiert) in openSUSE 11.2 zu integrieren. Wenn ich das
CAPI-Subsystem von Hand starte (modprobe capi bzw. capiinit)
funktioniert es einwandfrei, aber ich würde gerne erreichen,
dass man das Gerät wie mit dem bisherigen ISDN4Linux-Treiber
in "yast2 isdn" konfigurieren kann und es beim Systemstart
automatisch aktiviert wird. Leider wollen sich die Puzzleteile
der openSUSE-CAPI-Integration noch nicht so recht zusammenfügen.
Eine zentrale Komponente ist wohl das Programm /sbin/capiinit
aus dem Paket capi4linux. Zu dem scheint aber es außer der von
"capiinit --help" ausgegebenen Usage-Meldung keinerlei
Dokumentation zu geben. Weder "man capiinit" noch
http://www.google.de/search?q=capiinit ergaben irgendetwas
sachdienliches, und der Quellcode ist, nunja, nicht so ganz
selbsterklärend.
Fragen:
- Was tut dieses Programm über ein schlichtes "modprobe capi"
hinaus?
- Was ist der Unterschied zwischen "capiinit start",
"capiinit load" und "capiinit activate"?
- Warum bleibt "capiinit stop" bei meinem Treiber einfach
hängen? Was müsste er tun, damit das funktioniert?
- "capiinit show" meldet:
ERROR: no cards configured in /etc/capi.conf
Was muss ich in /etc/capi.conf eintragen und wozu? (Außer
damit diese Fehlermeldung weggeht.) Wo und wie wirken sich
die dort eingetragenen Werte konkret aus?
Eine weitere wichtige Komponente bilden nach meinem bisherigen
Forschungsstand die Skripte in /etc/sysconfig/isdn/scripts.
Es sieht so aus, als ob ich dort für den Gigaset-Treiber zwei
Skripte "load-gigaset" und "stop-gigaset" hinterlegen sollte.
Fragen:
- Was genau sollten diese Skripte tun?
- Welche Rolle spielt dabei das Skript "load-capi"?
- Brauche ich auch ein Skript "add-gigaset"?
- Sollte ich die USB IDs der Gigaset-Geräte in das Skript
"hotplug_usb" eintragen? Geladen wird der Treiber auch so,
und die Fehlermeldung "unknown USB product: $VENDID", die es
andernfalls ausgeben müsste, habe ich noch nie zu Gesicht
bekommen.
- In "functions" gibt es eine Funktion "test_driver_loaded()",
die offenbar eine hartcodierte Liste von CAPI-Treibernamen
enthält, aber soweit ich sehen (d.h. greppen) konnte,
nirgends benutzt wird. Welche Rolle spielt diese Funktion?
Sollte ich die Liste ergänzen?
Schließlich das YaST-Modul "isdn". Die bisherige I4L-Variante
des Treibers habe ich ihm dank Unterstützung von Karsten Keil
mit einem Patch für /usr/share/hwinfo/ISDN.CDB.txt (siehe
https://bugzillafiles.novell.org/attachment.cgi?id=116705)
beigebogen. Wie erweitere ich das nun auf die CAPI-Variante?
Gibt es vielleicht sogar eine Möglichkeit, automatisch zu
erkennen, ob die CAPI- oder die I4L-Variante des Treibers
installiert ist? (Kconfig-Variable CONFIG_GIGASET_CAPI)
Danke für alle Tipps.
--
Tilman Schmidt E-Mail: tilman(a)imap.cc
Bonn, Germany
Was sucht ihr den Lebenden bei den Toten?