Introduction
************

Description
===========

EciAdsl is a free Linux driver for connecting your computer to the internet, if you have a Globespan based ADSL USB modem.

Other operating systems like *BSD are under development (please contact authors for more information - see Authors / Support.)

EciAdsl driver homepage is there:

http://eciadsl.flashtux.org

An up-to-date list of supported modems is available on this page:

http://eciadsl.flashtux.org/modems.php?lang=en&supported=yes

Pre-requisites
==============

Packages
--------

In order to install EciAdsl driver, you need the following programs/packages:

  * A running GNU/Linux system (x86 architecture) with standard tools (MDK9/RH8/top-recent/exotic ones may have (solvable) problems, BSD and other systems are not officially supported yet)

  * USB 1.1 hardware support

  * Linux kernel 2.4.x (>=2.4.18-pre3 or <2.4.18-pre3+N_HDLC patch in order to get automatic pppd reconnection feature working, which is recommended)

  * USB support (as modules):

       - general USB support

       - USB preliminary fs

       - your HUB USB controller AS MODULE

       - no DABUSB module enabled

  * PPP support (including usermode pppd package >=2.4.0)

  * installation from the sources: standard development packages (Linux sources in /usr/src/linux, GNU software like gcc>=2.91.66, GNU make, etc.)

  * USB modem (*only* GlobeSpan chipset inside)

  * bash (>=2.x.x)

  * optionally: tcl/tk >= 8.x.x, perl

  * root privileges (at least to install the driver)

Kernel
------

If you have latest Mandrake/Redhat with default kernel you can skip this chapter.

According to your distribution, some options may lack in your kernel. If eciadsl-doctor detects missing options, then you need to recompile your kernel.

You MUST include these options (``*'' stands for ``in the kernel'', ``M'' stands for ``module''):

USB support --->

  <M> Support for USB

  [ ]   USB verbose debug messages

  --- Miscellaneous USB options

  [*]   Preliminary USB device filesystem

  [ ]   Enforce USB bandwidth allocation (EXPERIMENTAL)

  [ ]   Long timeout for slow-responding devices (some MGE Ellipse UPSes)

  --- USB Host Controller Drivers

  < >   EHCI HCD (USB 2.0) support (EXPERIMENTAL)

  <M>   UHCI (Intel PIIX4, VIA, ...) support

  <M>   UHCI Alternate Driver (JE) support

  <M>   OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support

  ..

  --- USB Multimedia devices

  ..

  < >   DABUSB driver

  ..

Character devices --->

  ..

  [*] Non-standard serial port support

  <M>   HDLC line discipline support

  ..

Network device support --->

  ..

  <M> PPP (point-to-point protocol) support

  [ ] PPP multilink support (EXPERIMENTAL)

  [ ] PPP filtering

  <M> PPP support for async serial ports

  <M> PPP support for sync tty ports

  <M> PPP Deflate compression

  <M> PPP BSD-Compress compression

  < > PPP over Ethernet (EXPERIMENTAL)

  < > PPP over ATM (EXPERIMENTAL)

Installation
************

Removing dabusb
===============

If modem is powered on at Linux startup, then you need to remove dabusb.

Otherwise, skip this section.

Hotplug is probably enabled, and it wrongly detects your modems as an audio device and loads dabusb module in order to add support for this audio device.

If /etc/hotplug/blacklist exists, edit it and add a line containing the word 'dabusb' (without the quotes) to it. Restart Linux.

If you cannot find such file whereas hotplug is installed and enabled, there must be another way to configure it, but you can also apply the following method (a bit rough):

  * Boot your Linux machine with your modem unplugged

  * You can remove the dabusb module from your system using eciadsl-config-tk or eciadsl-config-text.

     You can also directly call eciadsl-remove-dabusb (in /usr/local/bin by default).

     Or, manually type the following command:

     modprobe -r dabusb && rm -f $(modprobe -l | grep dabusb) && depmod -a

If the kernel has been compiled by hand, don't forget to remove dabusb support from the kernel configuration too.

Driver installation
===================

Download the latest stable usermode package (source code or a package for your distrubution) on this page:

http://eciadsl.flashtux.org/download.php?lang=en

Depending of the package you get, issue one of these commands:

  * Sources (.tar.gz): tar xvzf /path/eciadsl-usermode-x.y.tar.gz

  * Sources (.tar.bz2): tar xvjf /path/eciadsl-usermode-x.y.tar.bz2

  * RedHat/Mandrake (.rpm): rpm -i /path/eciadsl-usermode-x.y-1.i386.rpm

  * Debian (.deb): dpkg -i /path/eciadsl-usermode_x.y-1_i386.deb

  * Slackware (.tgz): installpkg /path/eciadsl-usermode-x.y-i386-1.tgz

  * Gentoo (.ebuild):

     see http://doc.gentoofr.org/Members/BeTa/eciadsl-gentoo-howto/view

where x.y is the version (for example 0.8)

Compilation
===========

If you installed distro specific package (Redhat/Mandrake, Debian, Slackware, Gentoo), you can skip this step.

All you have to do is to run in a console or a terminal:

./configure

make

As "root": make install

Check ./configure --help to get a list of optional settings. You may want to install the software in a different place than the default one (/usr/local), using --prefix=/opt for instance.

Driver's config files can also be installed in a directory you may prefer (default is in /etc/eciadsl), using the --conf-prefix (default is /) AND --conf-fir (default is etc/eciadsl) parameters. For instance:

--conf-prefix=/opt --conf-dir=etc/eciadsl

or --conf-prefix=/opt/eciadsl --conf-dir=etc

Be careful, --etc-prefix can be changed too (defaut is /, so /etc is used), but it is used to get system config files like resolv.conf or the pppd config files. Use --etc-prefix only if you know what you are doing.

See other options using ./configure --help.

Configuration
*************

Configuration tool
==================

  * If Tcl/Tk is installed on your system, you can run graphical configuration tool:

     eciadsl-config-tk

     Enter all parameters without checking ``Change synch .bin file''.

  * Otherwise, run text mode configuration:

     eciadsl-config-text

     Just follow steps to configure the driver.

Detail of parameters
====================

user
     Username given by your provider

     For example: username@clubadsl1

password
     Password given by your provider

VPI
     First number of ``dialed number''

     For example if you ``dial'' 8,35 with Windows driver then your VPI is 8.

VCI
     Second number of ``dialed number''

     For example if you ``dial'' 8,35 with Windows driver then your VCI is 35.

Provider DNS
     Check the box ``Update provider DNS'' and choose your provider in the list.

     If your provider is not in the list, enter manually your DNS servers in the fields below the list.

     If you don't know your DNS servers, read this question in FAQ:

     http://eciadsl.flashtux.org/faq.php?lang=en#1.6

Modem
     Select your modem in the list.

     If your modem is not in the list, check on modems page:

     http://eciadsl.flashtux.org/modems.php?lang=en

     - If your modem is ``not supported'', the driver will never work with your modem (please don't ask for support to developers, you've to look for another driver).

     - If your modem is ``maybe supported'', then ask to developers for detail. See Authors / Support.

Modem chipset
     [value is automatically setted by choosing Modem model].

     For any doubt please check on modems page:

     http://eciadsl.flashtux.org/modems.php?lang=en

Alt synch
     [value is automatically setted by choosing Modem model].

     It is the USB alt interface used by eciadsl to comunicate with modems during synch phase.

     Standard values: 4 for GS7070 (old modem models) - 5 or 0 for GS7470 chipset (new modem models)

     For any doubt please check on modems page:

     http://eciadsl.flashtux.org/modems.php?lang=en

Alt pppoeci
     [value is automatically setted by choosing Modem model].

     It is the USB alt interface used by eciadsl to comunicate with modems during pppoeci phase.

     Standard values: 4 for GS7070 (old modem models) - 1 or 0 for GS7470 chipset (new modem models)

     For any doubt please check on modems page:

     http://eciadsl.flashtux.org/modems.php?lang=en

Synch .bin file
     Check this option only if eciadsl-start fails with synchronization.

PPP mode
     - For users in France, choose default PPP mode (VCM_RFC2364).

     - For other users, check the appropriate ppp mode with your provider.

     Look at this question in the FAQ:

     http://eciadsl.flashtux.org/faq.php?lang=en#5.4

DHCP
     Check this only if your provider uses DHCP.

     If you don't know, leave this option unchecked.

Static IP
     Check this only if you have static IP.

     If so, enter IP address and gateway below.

     If you don't know, leave this option unchecked.

Connection
**********

Eciadsl-start
=============

To connect to the internet, issue this command as root:

eciadsl-start | tee log.txt

Synch problem
-------------

If you've problems with synch (eciadsl-synch timeout/error or lcp timeouts after synch), then follow instructions below:

  * Download .bin package there:

     http://eciadsl.flashtux.org/download.php?lang=en&view=sync

  * Unpack the package into /etc/eciadsl (as root):

     cd /etc/eciadsl && tar xvzf /path/eciadsl-synch_bin.tar.gz

  * Run eciadsl-config-tk or eciadsl-config-text and choose another .bin file

  * Shut down the modem: either with modprobe -r usb-uhci (or usb-ohci), either unplugging/replugging the modem (USB cable).

  * Run eciadsl-start again.

     If you still have synch problems, then try another synch .bin file.

     Important: you can try ALL synch .bin files, don't look at place or provider of .bin.

     If no .bin works, then you'll have to create your own .bin file under Windows. See Synch .bin creation.

For other problems with eciadsl-start, please look at the FAQ:

http://eciadsl.flashtux.org/faq.php?lang=en

PPPoE users
-----------

If you're using PPPoE, you have to configure and use a standard PPPoE client as rp-pppoe (http://www.roaringpenguin.com/pppoe) to connect to your ADSL modem through tap0.

Other scripts
=============

eciadsl-probe-device
--------------------

Use this script if eciadsl-start doesn't find your modem. This script looks for VID/PID of your modem and display them. For detail, please contact us. See Authors / Support.

eciadsl-doctor
--------------

Use this script (with --usb-init option) if eciadsl-start fails with other problem than ``Modem not found'' or synchronization.

eciadsl-probe-synch
-------------------

Use this script to test automatically all .bin files, if you have synch problems.

Synch .bin creation
*******************

If you've synch problems and tried all .bin files with no success, then you have to create your own .bin file under Windows.

Otherwise, you can skip this chapter.

Eci Windows driver
==================

[Skip this section if your modem has a GS7470 chipset, YOU MUST USE YOUR OWN WINDOWS DRIVER.

For any doubt please check your modem chipset at: http://eciadsl.flashtux.org/modems.php?lang=en].

Download
--------

Download Eci windows driver version 1.06 (otherwise your .bin file will not work under linux):

http://eciadsl.flashtux.org/download/eci_drv_106_win.zip

Driver modification
-------------------

If your modem has not one of these VID/PID, you've to modify two files in Eci Windows:

- VID1/PID1: 0547/2131, VID2/PID2: 0915/8000

- VID1/PID1: 0915/0001, VID2/PID2: 0915/0002

To check your VID/PID, please look at:

http://eciadsl.flashtux.org/modems.php?lang=en.

Modifications you've to do:

- file gafwload.inf, line 24 :

ExcludeFromSelect = USB\VID_0547&PID_2131

replace 0547 by your VID1 and 2131 by your PID1

- file gafwload.inf, line 30 :

%GSILOAD.DeviceDescAnchor% = GSIUSBLDRANCHOR, USB\VID_0547&PID_2131

replace 0547 by your VID1 and 2131 by your PID1

- file gwausb.inf, line 34 :

ExcludeFromSelect = USB\VID_0915&PID_8000

replace 0915 by your VID2 and 8000 by your PID2

- file gwausb.inf, line 42 :

%ADSLUSB.DeviceDesc%  = ADSLUSB.gspnDefault,    USB\VID_0915&PID_8000

replace 0915 by your VID2 and 8000 by your PID2

- file gwausb.inf, line 58 :

HKR, Ndi, DeviceID, 0, "USB\VID_0915&PID_8000"

replace 0915 by your VID2 and 8000 by your PID2

Installation
------------

Launch setup.exe and follow instructions.

USB Sniffer
===========

Download and install latest USB sniffer package there:

http://benoit.papillault.free.fr/usbsnoop/

Documentation for Snoopy (USB sniffer) is available there:

http://benoit.papillault.free.fr/usbsnoop/doc.php

Sniff USB packets under Windows
===============================

Disable auto-connection to the internet and unplug all USB devices (except the modem).

Start the sniffer and install the filter on the ``Wan modem'', then unplug and replug the modem.

As soon as both red and green leds are fixed, uninstall filters.

The sniffed packets should be in the file C:\WINxxx\usbsnoop.log

Reboot under Linux.

Convert log to .bin under Linux
===============================

Mount windows partition containing the usbsnoop log file so as to copy it where you want.

Issue this command:

eciadsl-vendor-device.pl usbsnoop.log -chipset=#YOUR_MODEM_CHISPET#

substitute #YOUR_MODEM_CHISPET# with your modem chipset (GS7070 or GS7470).

For help, issue this command: eciadsl-vendor-device.pl -h

This perl script parses the log file and generates a new bin file (script provided with usermode package).

Issue this command:

mv #BIN_FILENAME_CREATED# /etc/eciadsl/my_synch.bin

substitute #BIN_FILENAME_CREATED with bin file name created.

and then run eciadsl-config-text to use this .bin

Run eciadsl-start...

...and cross your fingers :-)

Authors / Support
*****************

Authors
=======

EciAdsl driver is written by:

  * FlashCode <flashcode AT flashtux.org>

  * Jean-Sébastien Valette <jeanseb.valette AT free.fr>

  * Benoit Papillault <benoit.papillault AT free.fr>

  * Crevetor <crevetor AT caramail.com>

  * Laurent Wandrebeck (low) <wandre.l AT free.fr>

Get support
===========

Before asking for support, be sure you've read documentation and FAQ provided with driver (look into /usr/local/doc/eciadsl, files README, INSTALL and TROUBLESHOOTING).

  * Support with IRC:

     - server: irc.freenode.net

     - channel: #eci

  * EciAdsl forum: http://eciadsl.sf.net/scripts/forum

  * Support with mailing list:

     - to subscribe, send mail to eci-request@ml.free.fr with "subscribe" as subject

     - to send mail to all mailing list subscribers, send your mail to eci@ml.free.fr

     - to unsubscribe, send mail to eci-request@ml.free.fr with "unsubscribe" as subject

     Thanks to ZeGuigui, the mailing list archive is available there:

     http://liste.eci.free.fr

  * Look for EciAdsl support page for detail:

     http://eciadsl.flashtux.org/support.php?lang=en