103 lines
3.5 KiB
Plaintext
103 lines
3.5 KiB
Plaintext
== Host Software
|
|
|
|
Host Software is software running on the USB host computer to which the
|
|
icE1usb is attached.
|
|
|
|
At the time of this writing, there are two options for icE1usb driver interfaces:
|
|
`osmo-e1d` and `DAHDI`.
|
|
|
|
=== `osmo-e1d`
|
|
|
|
`osmo-e1d` is a pure user-space driver, not requiring any specific Linux kernel,
|
|
kernel patches or out-of-tree kernel modules. It utilizes `libusb` to
|
|
talk to the icE1usb hardware and offers a unix domain socket based
|
|
interface to application software.
|
|
|
|
In theory, `osmo-e1d` should work on any operating system with libusb
|
|
support for isochronous transfers. However, official support is limited
|
|
to GNU/Linux at this point.
|
|
|
|
Software such as `osmo-bsc` and `osmo-mgw` can interface `osmo-e1d` via
|
|
the `libosmo-abis` support for `osmo-e1d`.
|
|
|
|
More information about `osmo-e1d` can be found at its homepage
|
|
https://osmocom.org/projects/osmo-e1d/wiki
|
|
|
|
=== DAHDI driver
|
|
|
|
DAHDI (Digium Asterisk Hardware Driver Interface) is an extremely
|
|
popular driver for a variety of POTS/PSTN and also TDM interface boards
|
|
by originally Zaptel, later Digium and now most recently Sangoma.
|
|
|
|
DAHDI is available only for Linux, and is provided as source code for a
|
|
set of out-of-tree kernel modules. You must compile those modules for
|
|
each specific Linux kernel version you are using. Keep this in mind
|
|
when performing kernel upgrades and the like.
|
|
|
|
DAHDI is supported by a wide range of open source PBX / softswitch software,
|
|
including Asterisk, FreeSWITCH and yate.
|
|
|
|
There is a DAHDI driver for the icE1usb available from
|
|
the `laforge/icE1usb` branch of the https://github.com/osmocom/dahdi-linux
|
|
git repository.
|
|
|
|
When using that DAHDI Linux kernel driver, there is no need for
|
|
osmo-e1d. The USB interface is directly managed inside the kernel.
|
|
|
|
|
|
==== Installing DAHDI driver
|
|
Example installation steps, tested on Debian 11, for installing DAHDI Linux & DAHDI Tools.
|
|
Note: Plugging in the device prior to installing may lead to issues.
|
|
|
|
----
|
|
$ sudo apt-get install -y linux-headers-`uname -r` git dfu-util make gcc autoconf libtool libnewt-dev
|
|
$ git clone https://git.osmocom.org/dahdi-linux/
|
|
$ git clone https://github.com/asterisk/dahdi-tools
|
|
$ cd dahdi-linux
|
|
$ sudo make install
|
|
$ cd ../dahdi-tools
|
|
$ sudo autoreconf -i
|
|
$ ./configure
|
|
$ sudo make install
|
|
$ sudo make install-config
|
|
$ sudo modprobe icE1usb
|
|
$ sudo /etc/init.d/dahdi start
|
|
----
|
|
|
|
At this point you can plug in the icE1usb, which
|
|
|
|
* should make the icE1usb enumerate on USB (dmesg, lsusb)
|
|
* should and scan for it with `sudo dahdi_scan` which should list the two E1 ports on the iCE1usb.
|
|
* see a `/proc/dahdi/N` file (with N being the span number, typically 1 unless you have other spans)
|
|
* see the device listed in `dahdi_scan` or `dahdi_tool`
|
|
|
|
.Example `dmesg` output when icE1usb is plugged in
|
|
----
|
|
usb 2-1: new full-speed USB device number 5 using xhci_hcd
|
|
usb 2-1: New USB device found, idVendor=1d50, idProduct=6145, bcdDevice= 0.03
|
|
usb 2-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
|
|
usb 2-1: Product: icE1usb
|
|
usb 2-1: Manufacturer: osmocom
|
|
usb 2-1: SerialNumber: dc697407e7682731
|
|
----
|
|
|
|
.Example `lsusb` output after icE1usb is plugged in
|
|
----
|
|
$ lsusb -d 1d50:
|
|
Bus 002 Device 005: ID 1d50:6145 OpenMoko, Inc. icE1usb
|
|
----
|
|
|
|
=== Other software
|
|
|
|
you can interface 3rd party applications with osmo-e1d in the following
|
|
ways:
|
|
|
|
* by adding support for `osmo-e1d`, e.g. via `libosmo-e1d` to the
|
|
respective application
|
|
* by directly implementing the USB interface exposed by icE1usb in your
|
|
software
|
|
|
|
Should you require any related development/porting services, please do
|
|
not hesitate to reach out to sysmocom.
|
|
|