Billion tiny USB ISDN TA mit HFC Chipsatz unter Debian etch installieren (mISDN Treiber)



Hierbei ist es wichtig das die Timer Frequency im Kernel auf 250Hz gestellt ist. Evtl. gehen auch andere Herz Zahlen, aber 300Hz führt definitiv zu Problemen (zumindest beim 2.6.22.16er Kern mit mISDN 1.1.7.2).
Für diese Treiber müssen wir am Kern selbst herumpfuschen. Dazu ist es zwar nicht nötig, aber sinnvoll sich bereits grundlegende Erfahrung mit dem kompilieren des Linux Kernels zu haben.
Die vorgestellte Art die Treiber zu installiert eignet sich um ein asterisk Version 1.4 zu nutzen.
Weiterführende Informationen zum Thema mISDN findet Ihr auf mISDN.org.

Verändern des Kernel Codes mit mISDN

Wir laden uns jetzt mISDN, kompilieren es und lassen mISDN die SOURCEN unseres Kernels verändern.

apt-get install -y flex bc
cd /usr/src/
wget http://www.misdn.org/downloads/releases/mISDN-1_1_7_2.tar.gz
tar xzf mISDN-1_1_7_2.tar.gz
cd /usr/src/mISDN-1_1_7_2
make
make install
./std2kern

Jetzt müssen wir nochmals in die Konfiguration unseres Kernels schauen und die Treiber für unsere ISDN Karte auswählen.
cd /usr/src/linux-2.6.22.16
make prepare
cd /usr/src/linux-2.6.22.16
make menuconfig

Jetzt sind wir im Menu um unseren Kernel zu bauen. Hier sollten folgende Einstellungen gemacht sein:
Processor type and features -->
	Timer frequency (250Hz)
Device Drivers  --->
   ISDN subsystem  --->
     <M> ISDN support
     ---   CAPI subsystem
     <M>   CAPI2.0 support
     [ ]     Verbose reason code reporting (kernel size +=7K)
     [*]     CAPI2.0 Middleware support (EXPERIMENTAL)
     <M>     CAPI2.0 /dev/capi support
     [*]       CAPI2.0 filesystem support
     < >     CAPI2.0 capidrv interface support
     ---     CAPI hardware drivers
     Active AVM cards  --->
     Active Eicon DIVA Server cards  --->
       Modular ISDN driver  --->
       <M> Support modular ISDN driver
       [ ]   Enable memory leak debug for mISDN (NEW)
       [*]   Support for AVM Fritz!Cards
       [*]   Support for NETJet cards
       [*]   Support for HFC PCI cards
       [*]   Support for HFC multiport cards (HFC-4S/8S/E1)
       [ ]     HFC multiport driver with memory mapped IO (NEW)
       [*]   Support for HFC-S USB based TAs
       [*]   Support for 'HFC-S mini' based TAs
       [*]   Support for XHFC based cards
       [*]   Support for Sedlbauer Speedfax+
       [*]   Support for Winbond 6692 based cards
       [*]   Digital Audio Processing of transparent data
       [ ]   Loop device (NEW)
       [ ]   ISDN over IP tunnel (NEW)
Wenn die Einstellungen gesetzt sind, dann noch als .config speichern. Danach müssen wir noch die neuen Module kompilieren:
make modules
make modules_install

mISDN Tools installieren

Damit wären die Treiber installiert. jetzt noch kurz die Programme mit denen sich die Treiber einfacher starten lassen installiert:

cd /usr/src/
wget http://www.misdn.org/downloads/releases/mISDNuser-1_1_7_2.tar.gz
tar xzf mISDNuser-1_1_7_2.tar.gz
cd /usr/src/mISDNuser-1_1_7_2
make
make install

Leider erkennt der Befehl mISDN-init nicht von selsbt die USB ISDN Karte. Also müssen wir noch ein wenig in der /etc/misdn-init.conf rumpfuschen. Folgende Zeilen sollten enthalten sein und alle anderen sollten auskommentiert sein.
card=1,hfcsusb
te_ptmp=1
poll=128
dsp_options=0
dtmfthreshold=100
debug=0

Abschliessend starten wir den Treiber mit:
misdn-init start

bekannte Fehler

mISDN_dsp: Audio DSP Rev. 1.29 (debug=0x0) EchoCancellor MG2 dtmfthreshold(100)
mISDN_dsp: Cannot clock ever 128 samples. Use a multiple of 26 (samples)

Das lag bei mir daran, dass der Kernel mit timer frequency 300Mhz kompiliert war.