Bienvenue sur eagle-usb

AtmEagle

UeagleAtmDoc

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-80-10-30.compute-1.amazonaws.com
[ In English ] - [ UeagleAtmDocFr ] - [ UeagleAtmDocEs ] - [ Deutsch ]


You can always find (and improve) the latest documentation at UeagleAtmDoc.


Disable eagle-usb

Be sure that the module eagle-usb does not load when plugging the modem : you can see it with tail -f /var/log/messages launched in a terminal window as root with su - then unplugging / plugging the modem.

eagle-usb is disabled by adding the following line to /etc/modprobe.conf :
blacklist eagle-usb

Another method is to erase the module from the kernel (to be checked whenever you update your kernel) :
rmmod eagle-usb # to erase it from memory
find /lib/modules/`uname -r` -name "eagle-usb.ko*" -exec rm {} \; # to erase it from disk
then unplug / replug the modem to erase its memory

Kernel driver download and installation


These steps depend on the version of ueagle-atm you are using, see UeagleATMVersions


Firmware installation


standard installation

You need to install firmware and CMV file.
If you don't know anything about it, just download ueagle-data-1.1.tar.gz
For gentoo users, an ebuild is available : http://www.gentoo-portage.com/net-dialup/ueagle-atm

Then untar it:
$ tar xzf ueagle-data-1.1.tar.gz
$ cd ueagle-data-1.1


You need to locate your distribution firmware path (the folder may already exists) :
- /lib/firmware when using udev
- /usr/lib/hotplug/firmware when using hotplug (try $grep "FIRMWARE_DIR=" /etc/hotplug/firmware.agent to see the path).

Create a subdirectory "ueagle-atm" in the firmware dir.
For example on debian:
$ mkdir -p /usr/lib/hotplug/firmware/ueagle-atm

and copy all the files from ueagle-data-1.1 dir to ueagle-atm)
$ cp -a * /usr/lib/hotplug/firmware/ueagle-atm

In most cases, firmware installation is now completed successfully. However for some internet providers (mostly from Germany, Sweden, Czech Republic, Italy, Spain and Switzerand) special firmware files are needed. If this is the case, you will have symptoms with the DSP or CMV firmware such as that the modem can't synchronize the line and some modem diodes blink but there is no connection. If you have this problem after loading the driver, return to these instructions.

In the firmware directory you should have:
- USB firmware: EagleI.fw, EagleII.fw and EagleIII.fw
- DSP firmware: DSPxy.bin
- CMV: CMVxy.bin



There are also some CMV files customised for certains ISPs (for example CMVepES.bin) .
See http://faq.eagle-usb.org/wakka.php?wiki=InfoCMVEn for more detail.

Mark xy in file names corresponds to:
x - chipset type:
e - EAGLE
9 - ADI930
y - telephone line:
i - ISDN
p - POTS

For example DSPei.bin is digital signal processing firmware for eagle and ISDN line.
The driver automatically chooses the proper file corresponding to the detected telephone line and chipset.
But in some cases you may need to use custom files. Files can for example be downloaded from Sagem's site.

All necessary tools for playing with firmware can be download from here.
They are also provided as part of ueagle-data-src-1.1.tar.gz package from http://eagle-usb.org/ueagle-atm/non-free/.

To extract files from Sagem's windows driver use the provided script extract_win32_firmware.

If you need special CMV files you can edit the CMV*.txt provided in eagle-usb or Sagem windows driver and generate a CMV.bin file with buildcmv your_CMV.txt your_CMV.bin. The driver will send custom CMVs to the modem if you use the cmv_file module parameter, for example:

$ cp your_CMV.bin /usr/lib/hotplug/firmware/ueagle-atm
$ modprobe ueagle-atm cmv_file=your_CMV.bin

If you need special DSP code, you can generate a DSP.bin file with the bnm provided by ADI/Sagem with bnm2dsp. Example:

$ bnm2dsp isdn/rt*bnm DSPei.bin

There is no module option to load a custom DSP file. To use it you should rename the file to the name used by driver for your chipset and telephone line type. You can obtain this information using:

$ cat /sys/bus/usb/drivers/ueagle-atm/*0/*
or use the program stats available at http://svn.gna.org/viewcvs/ueagleatm/trunk/ueagle-utils/debug/

....
Driver version: ueagle-svn $Id: ueagle.c 141 2005-09-03 20:12:24Z matc $ Chipset: Eagle II
Vendor ID : 0x1110 Product ID : 0x9021 Rev: 0x500b(pots)
....

You need to copy the file to the firmware directory:

$ cp DSPei.bin /usr/lib/hotplug/firmware/ueagle-atm


Driver test




Try to load the ueagle-atm module and see what happens:
$ modprobe ueagle-atm

Once you see in dmesg something like:
usb 1-2: [ueagle-atm] modem operational
usb 1-2: [ueagle-atm] ATU-R firmware version : 43e2ead7

it's working :) , you can continue reading the section "Internet connection setup" of this document.

If you get error:

that means your ueagle-atm driver installation failed, and you must check that the driver is installed for your current kernel.
$ find /lib/modules/`uname -r` | grep ueagle-atm

you may need to rebuild your kernel (at least rebuild kernel modules) as you are missing some modules (see below). Another reason for module insertion failing can be a disagreement (conflict) of module versioning sublevel:

Vérifier si ueagle-atm.ko and usbatm.ko sont de la même version.

$ dmesg
...
ueagle_atm: disagrees about version of symbol usbatm_usb_probe
ueagle_atm: Unknown symbol usbatm_usb_probe
ueagle_atm: no version magic, tainting kernel.

Try then force module load using -f option
$ modprobe -f ueagle-atm

If this still fails, you really need to rebuild your kernel. We encourage you to disable "Module versioning support (EXPERIMENTAL)".

For proper ueagle-atm operation, you need atm.ko and firmware_class.ko modules, which correspond to "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)" and "Hotplug firmware loading support" in kernel build configuration.
Of course USB support and TCP/IP networking need to be built into the kernel as well (as many other things). Additional modules are needed for your connection so don't recompile kernel now, read "Internet connection setup" before. Hints on how to configure the kernel to work with ueagle-atm you can find here [UealgeAtmOtherModules].

$cat /sys/bus/usb/drivers/ueagle-atm/*0/*
or use the stats script available at : http://svn.gna.org/viewcvs/ueagleatm/trunk/ueagle-utils/debug/
install as well ueaglediag in the same directory (for example in /root), if needed make those files executables by cd /root ; chmod x ueaglediag stats
Launch ./ueaglediag to display all information useful to diagnose (kernel version, loaded modules, stats...).

If you have one modem connected, you can obtain its MAC address using cat /proc/net/atm/ueagle-atm\:0 (1 for second modem) :
ADSL-USB Modem (usb-0000:00:1d.0-1)
MAC: 00:60:4c:3b:2b:21
AAL5: tx 0 ( 0 err ), rx 0 ( 0 err, 0 drop )
Line state unknown

Internet connection setup



This step allows you to configure your internet connection.
The connection type depends on your ISP, there are three methods:
VPI / VCI values are given by your Internet service provider. Some values for respective ISP's are listed here: http://faq.eagle-usb.org/wakka.php?wiki=ListConfigADSL.



Your kernel needs to support:

PPP (point-to-point protocol) support
PPP support for async serial ports
PPP support for sync tty ports
PPP Deflate compression
PPP BSD-Compress compression
PPP over ATM

You need the ppp package with pppoatm plugin.

Then assuming the modem is running, you need to configure ppp.
Create ueagle-atm file in /etc/ppp/peers, example file content could be as follow:

# Example configuration for the kernel space PPP over ATM driver
# See the manual page pppd(8) for information on all the options.

# MUST CHANGE: replace myusername@realm with the PPP login name given to
# your by your provider.
# There should be a matching entry with the password in /etc/ppp/pap-secrets
# and/or /etc/ppp/chap-secrets.
user "myusername@realm"

# Load the PPPoA plugin with VP.VC pair used by your ISP.
# VP and VC need to be provided in decimal and not in hex as with eagle-usb!
plugin pppoatm.so 8.35

# Enable this option if your ISP uses PPPoA with LLC encapsulation.
#llc-encaps

# Assumes that your IP address is allocated dynamically by the ISP.
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
# Use this connection as the default route.
defaultroute

# Makes pppd "dial again" when the connection is lost.
persist

# Do not ask the remote to authenticate.
noauth

Do not forget modify /etc/ppp/pap-secrets and /etc/ppp/chap-secrets.
Once the configuration is ok, you need to run

$ modprobe pppoatm
$ pppd call ueagle-atm

To check connection do:

$ ifconfig

Should show:
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:83.30.157.107  P-t-P:213.25.2.202  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:2019 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2025 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:724078 (707.1 KiB)  TX bytes:184065 (179.7 KiB)




For Debian the package br2684ctl is required.
You need a kernel with RFC 1483/2684 Bridged protocols enabled.

Once the modem is running:
load br2684 module:

# modprobe br2684

Then you need to create an ethernet interface with br2684ctl
In most cases (only one atm interface) you need to run:

# br2684ctl -c 0 -e x vpi.vci

If x=0, it is LLC encapsulation
If x=1, it is VC mux encapsulation


For example in France:

# br2684ctl -c 0 -b -a 8.35
br2684ctl[18144]: Interface "nas0" created sucessfully
br2684ctl[18144]: Communicating over ATM 0.8.35, encapsulation: LLC
br2684ctl[18144]: Interface configured

Then you need to configure the interface: assign an IP address and netmask (you can also assign a Ethernet MAC address if necessary)

# ifconfig nas0 up


Now you can use the "nas0" ethernet interface. You could for example run adsl-start for starting rp-pppoe.

As an alternative you could adapt the following script to your provider (change username/password).


# example configuration for the kernel space PPP over Ethernet driver
#
# See the manual page pppd(8) for information on all the options.

# MUST CHANGE: replace myusername@realm with the PPP login name given to
# your by your provider.
# There should be a matching entry with the password in /etc/ppp/pap-secrets
# and/or /etc/ppp/chap-secrets.
user "myusername@realm"

# Load the PPPoE plugin.
plugin rp-pppoe.so

# Ethernet interface to which the modem is connected.
nas0

# Assumes that your IP address is allocated dynamically by the ISP.
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
# Use this connection as the default route.
defaultroute

# Makes pppd "dial again" when the connection is lost.
persist

# Do not ask the remote to authenticate.
noauth


Then if you name it /etc/pppoe.conf, a
# pppd file /etc/pppoe.conf
should start the connection.



You need a kernel with Classical IP over ATM enabled

Once the modem is running:

First you should check that the atmarpd daemon is running.
If not, you should try to start it with /etc/init.d/atm start

If it still doesn't work, use atmarpd -b

Create the specified IP interface with :

# atmarp -c 0
# ifconfig atm0
atm0      Lien encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          [PAS INDICATEURS]  MTU:9180  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:100
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


Then you need to configure the atm interface with ifconfig. You need to use the adress IP given by your provider.
For example:

# ifconfig atm0 $MYIP netmask 255.255.255.0 mtu 1500

Then you need to configure the atm arp daemon, for that you need the IP address of your gateway.
If you want LLC encapsulation then run:

# sudo atmarp -s $MYGWIP vpi.vci

or if you want VC mux encapsulation:

# sudo atmarp -s $MYGWIP vpi.vci null

VPI / VCI values are given by your provider.

Finally you need to add a default route to your gateway:

# sudo route add default gw $MYGWIP

Now everything should work. (You also need to configure your dns in /etc/resolv.conf .)

DHCP support
You could try http://download.gna.org/ueagleatm/atm2684.tar.gz (some change should be needed in order to work on recent kernels (2.6.9 ) ).
Please let us know if you manage to have something working.

This is very similar to http://download.gna.org/ueagleatm/rt_ip.patch that were working for 2.6.8 kernel:

Hi,

I made this patch in order to use dhcp with routed ip.
I work with the br2684ctl utility and could not be load as the same time
than br2684 (they use the same proc file!!!)

I have to make an ugly hack in order to support dhcp version from isc
than send raw frame in ethernet format. This could be very buggy...

I have only tested VC mux mode.

Have you got some comments ?

Matthieu CASTET


THE NEXT ONE DOES NOT WORK AS THE PATCH IS FOR 2.4 KERNEL

If you want dhcp support, you will need to patch your kernel. This method should be less efficient than the previous method as the kernel need to fake an ethernet device (add and remove header).


taken from pulsar pci doc (http://sourceforge.net/projects/openadsl/)

If you plan to use routed IP Instead, you will need to patch your kernel and use a different version of br2684ctl from..

ftp://ftp.cmf.nrl.navy.mil/pub/ekinzie/linux-atm/rfc2684/

To patch the kernel replace the following files with those on the above site...

/usr/src/linux/include/linux/atmbr2684.h
/usr/src/linux/net/br2684.c

Notes :
(1) Don't forget to recompile your kernel.
(2) Use '-p 0' on the br2684ctl command line to get "routed" functionality
and '-p 1' for bridged.

After that you should follow pppoe step and use dhcp on the created ethernet device.

For more information, you may have a look at sk_buff description : http://vger.kernel.org/~davem/skb.html