NSLU2-Linux
view · edit · print · history

The new Asterisk 1.4 is available in the feeds

ipkg install asterisk

HFC-S USB

As I want to connect a HFC-S USB ISDN adapter to my slug, I stumbled across several things:

HFC-S USB hardware:

  • The newest revisions of the DrayTek miniVigor contains the chip. I bought one on eBay and it had a WinBond chipset. All versions look the same from the outside, the only way you can tell which chipset it uses is to open the plastic case. Furthermore these miniVigors are supported with Mac OS X so you may have to pay a higher price on eBay because those rich apple guys are also bidding.
  • Billion tiny USB or Acer are the same and I haven't heard about a non HFC-S version so far. I bought a Billion adapter on eBay for about 10 bucks.

The following table is aggregated from the hfcs-usb misdn driver

NameVendor IDProduct ID
ISDN USB TA (Cologne Chip HFC-S USB based)0x09590x2bd0
Draytek miniVigor 128 USB ISDN TA0x06750x1688
Billion tiny USB ISDN TA 1280x07b00x0007
Stollmann USB TA0x07420x2008
Aceex USB ISDN TA0x07420x2009
OEM USB ISDN TA0x07420x200A
Olitec USB RNIS0x08e30x0301
Bewan Modem RNIS USB0x07fa0x0846
Djinn Numeris USB0x07fa0x0847
Twister ISDN TA0x07b00x0006

The Winbond Draytek miniVigor128 (unusable for misdn) looks like this (according to /proc/bus/usb/devices)

NameVendor IDProduct ID
USB ISDN TA0x06750x6694

The current mISDN driver isn't tested on big endian machines and it won't even recognize your adapter once you plug it. I've build a bitbake file for OpenEmbedded, and posted it to the OE bugtracker you get the bitbake and endian-patches from there. It will build the needed kernel modules. The problem until today is, that you need the common kernel CAPI support.

$ grep ISDN openembedded/packages/linux/openslug-kernel-2.6.12.2/defconfig

  1. ISDN subsystem
  2. CONFIG_ISDN is not set

I will try to talk the openslug guys into enabling this, so that the produced mISDN modules do work on your slug. Until then you have to build your own CAPI modules.

The next step is to get mISDNuser working. There are several issues with headerfiles, for example the bitops.h from kernel headers does include several bit operation macros on x86 but not on ARM, I don't really know why.

It loads fine on my slug (dmesg after modprobe hfcsusb debug=0):

 Modular ISDN Stack core $Revision: 1.25 $
 mISDNd: kernel daemon started
 mISDNd: test event done
 CAPI Subsystem Rev 1.1.2.8
 mISDN Capi 2.0 driver file version 1.14
 hfcsusb driver Rev. 1.5 (debug=0)
 HFC-S USB: probing interface(0) actalt(0) minor(0)
 mISDN_hfcsusb: probe of 3-1:1.0 failed with error -5
 HFC-S USB: probing interface(1) actalt(0) minor(0)
 HFC-S USB: detected "Billion tiny USB ISDN TA 128"
 HFC-S USB: Endpoint-Config: 3 Interrupt IN + 3 Isochron OUT (if=1 alt=2)
 hfcsusb_1 wants TE Mode
 HFC-S USB: starting intr IN fifo:5
 HFC-S USB: starting intr IN fifo:1
 HFC-S USB: starting intr IN fifo:3
 HFC-S USB: starting ISO-chain for Fifo 4
 HFC-S USB: starting ISO-chain for Fifo 0
 HFC-S USB: starting ISO-chain for Fifo 2
 HFC-S USB: probing interface(0) actalt(0) minor(0)
 HFC-S USB: no valid vendor found in USB descriptor
 mISDN_hfcsusb: probe of 2-1:1.0 failed with error -5
 usbcore: registered new driver mISDN_hfcsusb
 ISDN L1 driver version 1.11
 ISDN L2 driver version 1.20
 mISDN: DSS1 Rev. 1.30
 kcapi: Controller 1: mISDN1 attached
 kcapi: card 1 "mISDN1" ready.

This is on a TurboSlug (266MHz):

 slung*CLI> show translation
         Translation times between formats (in milliseconds)
          Source Format (Rows) Destination Format(Columns)

         g723   gsm  ulaw  alaw  g726 adpcm  slin lpc10  g729 speex  ilbc
   g723     -     -     -     -     -     -     -     -     -     -     -
    gsm     -     -    14    14    55    17    13   170     -     -  2297
   ulaw     -    42     -     1    43     5     1   158     -     -  2285
   alaw     -    42     1     -    43     5     1   158     -     -  2285
   g726     -    82    42    42     -    45    41   198     -     -  2325
  adpcm     -    44     4     4    45     -     3   160     -     -  2287
   slin     -    41     1     1    42     4     -   157     -     -  2284
  lpc10     -   268   228   228   269   231   227     -     -     -  2511
   g729     -     -     -     -     -     -     -     -     -     -     -
  speex     -     -     -     -     -     -     -     -     -     -     -
   ilbc     -   495   455   455   496   458   454   611     -     -     -

As you can see, ilbc and lpc10 are floating point based and not usable on a slug as long as you don't recode these codecs in a fixed point way due to the lack of a floating point unit :-)


Questions:

- Is this working fully functional with a HFC-S adapter?

- Where can we get a kernel with ISDN and the HFC-S module?

view · edit · print · history · Last edited by krim.
Based on work by osas, BrianZhou, xaver, tman, Malfi, and malfi.
Originally by malfi.
Page last modified on October 27, 2008, at 02:51 PM