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:
- "FATAL: module ueagle-atm not found"
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
- "FATAL: Error inserting usbatm (/lib/modules/2.6.14-rc1-mm1/extra/usbatm.ko): Unknown symbol in module, or unknown parameter (see dmesg)"
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:
- ueagle-atm et usbatm ne sont pas de la même version
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:
- PPP over ATM (pppoa)
- PPP over Ethernet (pppoe)
- Routed IP (or Classical IP over ATM, clip, ipoatm)
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