DSL SpeedTouch modem
[Stub] ATTENTION Newer udev (060 or so) puts itself as the hotplug program in /proc/sys/kernel/hotplug, but doesn't handle firmware loading requests, thus the automatic firmware loading as described below won't work. Best way to solve this problem is yet unclear.
Please see this bug report for more details: http://bugs.archlinux.org/task/3439
This howto shows one way to get a working speedtouch USB modem. It uses the kernel driver, not the userspace driver. This howto assumes that your ISP uses PPPoA and not PPPoE. For info about PPPoE with these modems see first url below.
Important sites where most info comes from:
If the below instructions are not enough to get it working, then read the above sites.
The following steps are needed to get the modem working:
Kernel config and ppp
Make sure you have a kernel with the proper support (at least the modules ppp_generic, pppoatm, slhc, atm, usbatm and speedtch). The default Arch kernel should work:
pacman -S kernel26
pacman -S ppp
### /etc/ppp/peers/speedtch # To connect to using this configuration file, do # pppd call speedtch lcp-echo-interval 10 lcp-echo-failure 10 noipdefault defaultroute user "username@ispname" noauth noaccomp nopcomp noccp novj holdoff 4 persist maxfail 25 updetach usepeerdns plugin pppoatm.so # Following entry is country/ISP dependent 8.48
The last entry depends on your country/ISP and is created from the VPI and VCI setting in the format
VPI.VCI. A windows speedtouch diagnostic program may show you the VPI and VCI settings for your country/ISP.
This page has a VPI / VCI Setting List, which I have partially reproduced below.
|Australia||All Internet providers||8||35|
|United Kingdom||British Telecom||0||38|
You also need to configure /etc/ppp/pap-secrets or chap-secrets, depending on your ISP. pap-secrets files are of the format:
# Secrets for authentication using PAP # client server secret acceptable local IP addresses fred * flintstone
See The PAP/CHAP secrets file for more details.
If you want to use the DNS servers provided by your ISP (you probably do!) then make a symlink /etc/resolv.conf pointing to /etc/ppp/resolv.conf:
cd etc rm resolv.conf ln -s ppp/resolv.conf resolv.conf
OPTIONAL - Configure hotplug:
Make an executable (chmod +x) file /etc/hotplug/usb/speedtch and put something like the next in it:
#!/bin/sh case $ACTION in add) if [[ ! -z "$SEQNUM" -a ! -f /tmp/bla ]]; then sleep 1; /usr/sbin/pppd call speedtch &> /tmp/bla; echo -e "--- $SEQNUM ---\n$DEVPATH" >> /tmp/bla; fi ;; *) echo -n "speedtch unknown action: $ACTION" >> /tmp/unknown-action; esac
If you do not want to use such a script you can simply bring up your modem using
pppd call speedtch
Now you have everything except the firmware loading. The easiest way is to let hotplug/udev do it. Download rev4fw.zip (note disclaimer here) and unzip it. It contains two files, a small one and a big one. Copy the small file to
/lib/firmware/speedtch-1.bin and the big one to
mkdir -p /lib/firmware cp small_file /lib/firmware/speedtch-1.bin cp large_file /lib/firmware/speedtch-2.bin
If you can't download this file then follow the instructions of the second link above and use the firmware extractor (or download another firmware which has the two files).
Make sure that the kernel supports firmware loading:
$ zcat /proc/config.gz || grep FW_LOADER
should tell that. The default Arch kernel is ok.
Now reboot and pray that it works. In dmesg you'll get something like the following if everything goes alright:
usbcore: registered new driver speedtch usb 1-1: found stage 1 firmware speedtch-1.bin CSLIP: code copyright 1989 Regents of the University of California PPP generic driver version 2.4.2 usb 1-1: found stage 2 firmware speedtch-2.bin ip_tables: (C) 2000-2002 Netfilter core team ADSL line is synchronising DSL line goes up ADSL line is up (800 Kib/s down || 256 Kib/s up)
And the content of the /tmp/bla file should be something like:
Plugin pppoatm.so loaded. PPPoATM plugin_init PPPoATM setdevname - remove unwanted options PPPoATM setdevname_pppoatm - SUCCESS:8.48 Using interface ppp0 Connect: ppp0 <--> 8.48 PAP authentication succeeded local IP address 126.96.36.199 remote IP address 188.8.131.52 primary DNS address 184.108.40.206 secondary DNS address 220.127.116.11 --- 363 --- /devices/pci0000:00/0000:00:02.1/usb2/2-1/2-1:1.2
For the origin of this doc, feedback or requests go to the Forum discussion