ADSL USB modem on Linux
This is to help anyone who is trying to setup a USB modem to be used with an ADSL Internet connection under Linux.
There is now a great tutorial on the ECIADSL website, so follow this tutorial and if you get stuck, you might find something useful below.
My ADSL setup
My experience comes from recently setting up my D-Link DSL-200 ADSL USB modem (see the picture of the modem below). I set this modem up on my RedHat 8.0 system, connecting to Pacific Internet's home ADSL service.
I used the pppd linux deamon (version 2.4) along with the eciadsl usermode usb drivers (version 5) to achieve this connection.
Step 1 - Kernel check
First, make sure your Linux kernel version is greater or equal to version 2.4.7-10. You can test this by running the command "uname -r". I am using the RedHat 8.0 default kernel version, which is 2.4.18-14. I recommend using the most recent kernel version, as this will support more devices and likely have better system functionality.
Step 2 - Download the Eciadsl Usermode program
The eciadsl project provides a program called Usermode, which is an application that was written especially for ADSL connections. It supports a lot of different network devices (USB, PCI, modems, network cards) and supporting different ADSL network protocol types (pppoe, pppoa etc...).
You can download usermode from the eciadsl website, or just simply use this link for the rpm eciadsl-usermode-0.5-2.i586.rpm.
Note for RedHat 8.0: the eciadsl-usermode-0.5-2.rpm is likely to be already installed. You can check this by running the command: "rpm -qa | grep eciadsl".
Now, if your serivce provider uses the DMT adsl protocol (such as Telstra and Pacific Internet in Australia) you will have to copy the following file:
Step 3 - Remove dabusb module
By default, eciadsl/usermode is installed to /etc/eciadsl/, with the binaries (executables) in the /usr/local/bin/ folder.
After installation, eciadsl recommends you remove the dabusb module (if it's installed) to be able to install the driver and make the modem work.. You can check this by running the following command: "lsmod | grep dabusb". If your system is using the dabusb module, then you can do the following:
Note: If you move or copy the dabusb.o file, make sure no copies are located in the /lib/modules directory (regardless of the new name), as it may be automatically loaded at the next boot.
Step 4 - pppd adsl configuration script
After Usermode is installed, you should have a file called "adsl" in the /etc/ppp/peers/ folder (if not, then copy the default one from /etc/eciadsl).
It should look something like this:
# ... Comments ... # This file could be renamed, but its place is under /etc/ppp/peers # To connect to Internet using this configuration file # pppd call adsl, where "adsl" stands for the name of this file debug kdebug 1 noipdefault defaultroute pty "/usr/local/bin/pppoeci -vpi 8 -vci 35" sync user "adsl@adsl" noaccomp nopcomp noccp novj holdoff 1 maxfail 0 usepeerdns noauth #lcp-echo-interval 600 #lcp-echo-failure 10
Change the username for your own account in the adsl file:
Step 5 - pppd authentication files
There are two different files that need to contain your password that matches with your adsl account username. These files are:
Both files use exactly the same syntax. You must create a line like the following:
# Secrets for authentication using PAP # client server password IP addresses "email@example.com" * "your_password" *
The first fields is your username (which must match your username in the adsl file)!
All distributions using a VIA or INTEL motherboard ChipSet (most people use these), you need to remove any modules that have control of your USB device:
For a motherboard using an ALI Aladin chip, use the same procedure as above but replace references to usb-uhci by usb-ohci.
Once you run startmodem, you should have a lot of output printing to the screen, which shoul eventually end with it saying you are connected to the network with such and such IP address. You should also be able to see your ppp0 network in ifconfig.
Toubleshooting - When things don't work :(
eci-load2 can't manage to synchronize // hangs at packet 259 or before
pppd stops with error: LCP timeout
Case 1 : you have a timeout problem on the PPP connection: Edit
Case 2 : you have an authentication problem (PPP doesn't always say it
You get this error message: Can't find your ECI Telecom USB ADSL Loader
[root@hwi usermode]# ./startmodem
If you get a message that looks like this, it means that you haven't mounted the usb file system, so run the following command "mount -t usbdevfs none /proc/bus/usb"
The PPP connection is OK and I can see ppp0 in ifconfig, but I can't go on the Internet.
Visit the eciadsl website for up-to-date information, also see there howto page for other configurations and ideas.