SpeedTouch and SmoothWall

Existing sites you should look at for more info

SmoothWall http://www.smoothwall.org
   
SpeedTouch USB driver homepage http://speedtouch.sourceforge.net/
Sourceforge for the SpeedTouch - User Mode http://sourceforge.net/projects/speedtouch
Linux kernel driver for SpeedTouch USB modems http://www.linux-usb.org/SpeedTouch/
Sourceforge for the SpeedTouch - Kernel Mode http://sourceforge.net/projects/linux-usb/
Mailing list for the SpeedTouch project http://www.mail-archive.com/speedtouch@ml.free.fr/index.html
   
Thomson multimedia UK

http://www.speedtouch.co.uk/
Vista drivers are here,
Windows drivers are here , info here,
Linux Firmwares were here but you can still download directly from here
Feb 2009 - all can be found here.

Thomson multimedia global

http://www.thomson.net/dsl -> xDSL Gateways & Accessories -> Residential Wired -> Other Supported Products -> Thomson ST330

Why this site is here

I had a problem with a frog that worked perfectly for weeks at a time when using the Version 1.1 SpeedTouch drivers, but failed every few hours with "Error reading usb urb" when using the Version 1.2 drivers. It was an intermittent and difficult to reproduce problem, so I needed to keep a record, which is now on a separate page. Then Rev 4.00 modems arrived and made my life more complicated. Now there is a solution to the problems, and here is as good a place as any to provide it. Time has moved on and so has this site - it used to be at www.hystedjp.pwp.blueyonder.co.uk .

The problems

After the linux SpeedTouch drivers went to Version 1.2-beta 1, Rev 0.00 modems were failing under heavy load with "Error reading usb urb".
When Rev 4.00 modems were released they were not even loading their firmware. Both these problems have now been fixed, see below

The solution for SmoothWall users

First check which Rev of the modem you have by typing
cat /proc/bus/usb/devices | grep 4061

If you are starting from scratch with a SmoothWall 2.0 base ISO and a Rev 4.00 modem see this page. Otherwise see the table below.

  Rev 0.00 Rev 2.00 Rev 4.00
SmoothWall Express 2.0
before fix 3
12_modem_run, 12_pppoa3,
Firmware KQD6_3.012
12_modem_run, 12_pppoa3,
Firmware KQD6_3.012 and
fix /etc/ppp/ppp-on
,'-e','1'
12_modem_run, 12_pppoa3,
Firmware ZZZL_3.012 and
fix /etc/ppp/ppp-on
,'-e','1'
SmoothWall Express 2.0
fixes 3 to 6
Firmware KQD6_3.012 Firmware KQD6_3.012 and
fix /etc/ppp/ppp-on
,'-e','1'

Firmware ZZZL_3.012 and
fix /etc/ppp/ppp-on
,'-e','1'

SmoothWall Express 2.0
fix 7 and 8

Firmware KQD6_3.012 and
possibly fix /etc/ppp/ppp-on
,'-e','-1'

Firmware KQD6_3.012 Firmware ZZZL_3.012
SmoothWall Express 3.0
Firmware KQD6_3.012

Firmware KQD6_3.012

Firmware ZZZL_3.012

Files you may need...

link

source

12_modem_run This should work on SmoothWall 2.0 for all Modem revisions. It is 1.2-final which autodetects the modem revision
12_pppoa3 This should work on SmoothWall 2.0 for all Modem revisions.
alcateladslfw_v1 Patched version of /usr/local/bin/alcateladslfw for SmoothWall 2.0 with -v 1 added for more info
KQD6_3.012 Combined Firmware for Green Rev=0.00 and Purple Rev=2.00 SpeedTouch (KQD6P1.eni + KQD6P2.eni)
ZZZL_3.012 Combined Firmware for Silver SpeedTouch Rev=4.00 only (ZZZLP1.eni + ZZZLP2.eni)

Instructions

First check which Rev of the modem you have by typing
cat /proc/bus/usb/devices | grep 4061

You need to install firmware. To install firmware on SmoothWall download the correct combined firmware for your modem revision from Thomson and then upload it to your smoothie using the maintenance / alcatel SpeedTouch usb adsl firmware upload page. SmoothWall 2.0 and 3.0 always upload this internally into /var/smoothwall/adsl/mgmt.o

Smoothwall 2.0

Smoothwall 2.0 - If you need to install 12_pppoa3 and 12_modem_run then download the first two files above and then using winSCP copy them to /usr/local/bin keeping the same names (don't let IE add .txt to the end!). Press the disconnect button on the control page to drop the adsl connection and free up pppoa3 or you won't be able to replace it, and then using a PuTTY or Tools/Shell session on SmoothWall.....

cd /usr/local/bin
chown :nobody 12_pppoa3 <- note the colon before nobody chmod --reference modem_run 12_modem_run chmod --reference pppoa3 12_pppoa3 cp pppoa3 old_pppoa3 cp modem_run old_modem_run cp 12_pppoa3 pppoa3 cp 12_modem_run modem_run

Smoothwall 2.0 - If you want better diagnostics then download the third file above and then using winSCP copy it to /usr/local/bin keeping the same name (don't let IE add .txt to the end!). Using a PuTTY or Tools/Shell session on SmoothWall.....

cd /usr/local/bin
chown :nobody alcateladslfw_v1 <- note the colon before nobody chmod --reference alcateladslfw alcateladslfw_v1 cp alcateladslfw old_alcateladslfw cp alcateladslfw_v1 alcateladslfw

Smoothwall 2.0 - If you need to update ppp-on then, if you are using a Rev 2.00 or Rev 4.00 modem on SmoothWall 2.0 then in /etc/ppp/ppp-on , after sub doadsldialalcatel , using vi or joe change
my @pppoacommand = ('/usr/local/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'});
to
my @pppoacommand = ('/usr/local/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'},'-e','1');

If you are using a Rev 0.00 modem on SmoothWall 2.0 fixes 7 or 8 and are having problems with Error reading usb urb under heavy load then in /etc/ppp/ppp-on , after sub doadsldialalcatel , using vi or joe you may need to change
my @pppoacommand = ('/usr/local/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'});
to
my @pppoacommand = ('/usr/local/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'},'-e','-1');
to revert to the version 1.2 pppoa3 behaviour.

Smoothwall 2.0 - After all that. Press the reboot button on the maintenance / shutdown page to reboot smoothie and run with the new versions. If the modem is connected via a powered hub, then you may need to disconnect the usb cable to power down the modem and allow the firmware to load.

For error reports from modem_run, look in /var/log/messages or patch /home/httpd/cgi-bin/logs.cgi/log.dat as shown below.

For error reports from ppp you can also look in /etc/ppp/connect-errors.

If you are getting 'Dial Failed: -1' in the SmoothWall log then check that the file ownership for /etc/ppp/ppp-on is still -rwsr-x--- root nobody. - Thanks to rogercw1

If you are getting 'pppd Couldn't get channel number: Input/output error ' in the PPP log then check that the file ownership for /usr/local/bin/pppoa3 is still -rwsr-x--- root nobody. If you're getting some other strange errors, check the perms on ALL the files you might have modified, such as modem_run and alcateladslfw... just in case - Thanks to mtxf

SmoothWall 3.0

SmoothWall 3.0 is using Version 1.3.1 of modem_run and pppoa3. It works with both a SpeedTouch 330 Silver Rev 4.00 and Green Rev 0.00 for me. There is a glitch which means you may get a "unable to run command" when loading the firmware from the GUI if your modem is not connected, but ignore it or look at messages from modem_run in /var/log/messages to see what happened.

ppp-on has moved to /usr/bin/smoothwall/ppp-on.

It is possible that if you are using a Rev 0.00 modem on SmoothWall 3.0 and are having problems with Error reading usb urb under heavy load then in /usr/bin/smoothwall/ppp-on, after sub doadsldialalcatel , using vi or joe you may need to change
my @pppoacommand = ('/usr/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'});
to
my @pppoacommand = ('/usr/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'},'-e','-1');
to revert to the version 1.2 pppoa3 behaviour, but I haven't seen the problem or had reports of it yet.

The solution for other distributions

Load the latest released versions from Sourceforge at http://sourceforge.net/project/showfiles.php?group_id=32758 or the beta versions from the CVS at http://sourceforge.net/cvs/?group_id=32758 and the combined firmware from the firmware page or follow the links at the top of this page. For 2.6.4 or later kernels the kernel driver is the way to go and this is further improved after 2.6.10, the user mode driver seems to have problems . Check the mailing list for the SpeedTouch project for more details.

Hardware Versions

Vendor:ProdID:Rev linux name Windows name Usual
Colour
 
06B9:4061:0000 Alcatel Speed Touch ADSL Modem
P: Vendor=06b9 ProdID=4061 Rev= 0.00
S: Manufacturer=ALCATEL
S: Product=Speed Touch USB

Alcatel ADSL adapter
USB\VID_06b9&PID_4061&REV_0000

Green


frog/manta ray

06B9:4061:0001 Alcatel Speed Touch ADSL Modem (ISDN)
P: Vendor=06b9 ProdID=4061 Rev= 0.01
S: Manufacturer=ALCATEL
S: Product=Speed Touch USB
Alcatel ADSL adapter (ISDN)
USB\VID_06b9&PID_4061&REV_0001
Green
06B9:4061:0200 Speed Touch 330 ADSL Modem
P: Vendor=06b9 ProdID=4061 Rev= 2.00
S: Manufacturer=ALCATEL
S: Product=Speed Touch 330
Alcatel ADSL adapter 330
USB\VID_06b9&PID_4061&REV_0200
Mainly Purple Few Silver
cycle helmet
06B9:4061:0300 Speed Touch 500 Series Alcatel ADSL adapter COMBO
USB\VID_06b9&PID_4061&REV_0300
 
06B9:4061:0400 P: Vendor=06b9 ProdID=4061 Rev= 4.00
S: Manufacturer=THOMSON
S: Product=Speed Touch 330
Alcatel ADSL adapter 330 (SACHU3)
USB\VID_06b9&PID_4061&REV_0400
Platinum Silver
cycle helmet
06B9:4061:0400 P: Vendor=06b9 ProdID=4061 Rev= 4.00
S: Manufacturer=THOMSON
S: Product=Speed Touch 330
New shape August 2005 - Slimline" 330SL is a Rev 4.00 which seems to need 3.012 or later firmware (thanks donanak) Black

To check your modem revision in Windows: look in the Registry under HKEY_LOCAL_MACHINE\Enum\USB\VID_06B9&PID_4061\ then keep going down until you find a "HardwareID"="USB\\VID_06B9&PID_4061&REV_0000,USB\\VID_06B9&PID_4061". Or look at the modem name?

To check your modem revision in linux: cat /proc/bus/usb/devices | grep 4061, results as shown above

Not all silver modems are Rev 4 - thanks to Phil ( who has a silver Rev 0200 ) for the information.

The ISDN modem is ADSL over ISDN (Annex B) while the rest are ADSL over Analog (Annex A)...?

The 530 model (with USB and ethernet) is not Linux compatible using USB, see http://www.mail-archive.com/speedtouch@ml.free.fr/msg06638.html for more information.

Latest Firmware Versions

From March 2004 http://www.speedtouch.com/support.htm has had a file ( SpeedTouch330_firmware_3012.zip ) available for download described as "SpeedTouch 330 Embedded Firmware Rel 3.0.1" which contains ZZZL_3.012 and KQD6_3.012 - these are combined firmware files, but with a slightly different format from those I created. KQD6_3.012 works correctly and is the equivalent of KQD6both.eni. ZZZL_3.012 is the equivalent of, and later than, ZZZLboth.eni. Many thanks to Thomson Multimedia for providing these and these are now the preferred version.

Previous versions of firmware are on another page along with the Extended Range firmware for Rev 4.00 modems.
24 Jan 2007: Patch now exists for modem_run to use Extended Reach, see http://www.mail-archive.com/speedtouch@ml.free.fr/index.html . I intend to test this and post the revised modem_run here, in the meantime look at http://g.esp.free.fr/telechargement.htm

On the Generic CD-ROM 4.0.1.3 currently downloadable from Thomson there are firmware versions in STHIW/ST330/service/filesystem/bin for sachu1_2 (KQD6P1.eni = 991, KQD6P2.eni = 762622), sachu3 (ZZZLP1.eni = 935, ZZZLP2.eni = 775545) and sachu4 (totally different format). The version of KQD6P2.eni doesn't match any of the ones I have seen before, but is dated in 2004. I need to test and document it.

PPPoE

SmoothWall and pppoa3 only handles PPPoA. If you need PPPoE there is a now a "-b" option in pppoa3, but you will need more than this to get it working, start here for a Linux Howto and try looking at the mailing list at http://speedtouch.sourceforge.net/index.php?/news.en.html for progress. Roaring Penguin pppoe seems to be the way to go, Portugal is helping with testing, see the SmoothWall forums. More information is available from http://cosmos.oninetspeed.pt/jose.bernardo/speedtouch.html (Feb 2009 - gone, try Google!!) on Mandrake installations.

VC-Mux and LLC/SNAP encapsulation

It seems that modem/pppoa3/pppd/SmoothWall can only handle VC-Mux encapsulation on PPPoA and if your isp uses LLC/SNAP encapsulation on PPPoA then pppd will fail with "LCP: timeout sending Config-Requests". For SmoothWall users this probably means a switch to IPCOP (as LLC on PPPoA is reported to work on IPCOP 1.4A10 - thanks Chris). Anyone know any alternative method?

Line Speed

The maximum achievable downstream speed with the modem on ADSL is 8Mb at the ATM-level (subject to line conditions). The USB v1.1 bus is a half-duplex 12Mb bus that does not have the capacity to allow the maximum ADSL throughput. Using USB Bulk or Isochronous mode also influences the throughput. Rev 0.00 modems can only operate in Bulk transfer mode and will support line speeds of up to 4Mbit/s. Rev 2.00 and Rev 4.00 modems can operate in two transfer modes Bulk (up to 4Mbit/s) and Isochronous (up to 6Mbit/sec). The Windows version of the SpeedTouch 330 drivers can be switched, see http://www.speedtouch.co.uk/330highspeed.asp (Feb 2009 -gone). The Linux User mode drivers are currently Bulk only, but Duncan Sands has patched the Kernel mode drivers to support Isochronous mode, see http://www.mail-archive.com/speedtouch@ml.free.fr/msg07767.html and http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.6/2.6.19-rc2/speedtch-extended-reach.patch

Suggestions for SmoothWall 2.0 changes

(1) In /usr/local/bin/alcateladslfw the command used to load the firmware is fixed in the code and is:

/usr/local/bin/modem_run -f /var/smoothwall/adsl/mgmt.o -m

the -m parameter sets monitoring, but this is obsolete and does nothing, a better command would be

/usr/local/bin/modem_run -f /var/smoothwall/adsl/mgmt.o -v 1 

which writes some useful diagnostics into the log e.g.

Jan 14 00:19:07 smoothwall modem_run[46]: modem_run version 1.2-beta3 started by root uid 0
Jan 14 00:19:07 smoothwall modem_run[46]: Found ALCATEL SpeedTouch USB modem
Jan 14 00:19:07 smoothwall modem_run[46]: Best offset   6463 with probability 100%
Jan 14 00:19:08 smoothwall modem_run[46]: Best offset 526179 with probability 100%
Jan 14 00:19:08 smoothwall modem_run[46]: Firmware information (CRC:0x94a45435, Size:526187, 1.3.3 - GNU/Linux - Win32)
Jan 14 00:19:10 smoothwall modem_run[46]: BLOCK1 :    883 bytes   uploaded : OK
Jan 14 00:19:10 smoothwall modem_run[46]: BLOCK2 :    511 bytes downloaded : OK
Jan 14 00:19:13 smoothwall modem_run[46]: BLOCK3 : 526187 bytes   uploaded : OK
Jan 14 00:19:13 smoothwall modem_run[46]: BLOCK4 :    511 bytes downloaded : OK
Jan 14 00:19:14 smoothwall modem_run[46]: Modem reference : 3EC18607CDAB03
Jan 14 00:19:28 smoothwall modem_run[47]: Sending a signal to notify the adsl up state
Jan 14 00:19:28 smoothwall modem_run[46]: ADSL synchronization has been obtained
Jan 14 00:19:28 smoothwall modem_run[46]: ADSL line is up (576 kbit/s down | 288 kbit/s up)

At the moment I have just hacked the codefile of /usr/local/bin/alcateladslfw where there were some convenient spare nulls at the end of the string (nasty but it works). This has been fixed in all Smoothwall 3.0 releases since the Panda beta- thanks.

(2) Add another option 'USB' to the logs page /home/httpd/cgi-bin/logs.cgi/log.dat (this is now part of the 'Logs mod' of SmoothWall homebrew mods)

        'dhcp' => '(dhcpd)', 
+       'usb' => '(kernel: usb.*|kernel: hub.*|pppoa2\[.*\]|pppoa3\[.*\]|modem_run\[.*\])',
        'ssh' => '(sshd)\[.*\]',

        !($cgiparams{'DAY'} =~ /^(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/) ||
-       !($cgiparams{'SECTION'} =~ /^(smoothwall|ppp|isdn|dhcp|ssh|auth|kernel|ipsec|installpackage|ntp)$/))
+       !($cgiparams{'SECTION'} =~ /^(smoothwall|ppp|isdn|dhcp|ssh|usb|auth|kernel|ipsec|installpackage|ntp)$/))

 $selected{'SECTION'}{'ssh'} = '';
+$selected{'SECTION'}{'usb'} = '';
 $selected{'SECTION'}{'auth'} = '';

        <OPTION $selected{'SECTION'}{'ssh'} VALUE='ssh'>SSH
+       <OPTION $selected{'SECTION'}{'usb'} VALUE='usb'>USB
        <OPTION $selected{'SECTION'}{'auth'} VALUE='auth'>$tr{'loginlogout'}

this produces output like this. Which pulls out enough to diagnose problems with USB ADSL modems on my setup without resorting to putty and vi. If the firmware is already loaded when modem_run starts then it is too verbose as it gives full details of all 10 loading attempts, but that is a small price to pay.

This has been mentioned as a possible inclusion for 3.0 update1 - I will wait and see

(3) It is possible to automate pppoa3 parameter passing by checking firmware revision in /etc/ppp/ppp-on (SmoothWall 2.0) or /usr/bin/smoothwall/ppp-on (SmoothWall 3.0), but this is now unnecessary for 2.00 and 4.00 and the need for a tweak for Rev 0.00 seems to depend on the usb hardware and is fatal if not needed.

  my @pppoacommand = ('/usr/bin/pppoa3','-vpi',$adslsettings{'VPI'},'-vci',$adslsettings{'VCI'});
  # start new code
  my $rev = `grep ' Vendor=06b9 ProdID=4061 ' /proc/bus/usb/devices ` ;
  $rev =~ s/\s+$//;
  $rev =~ s/.*Rev\=.//;
  if ($rev eq '0.00') {
     push(@pppoacommand,('-e','-1')); }
  else {
    if ($rev eq '2.00') {
        push(@pppoacommand,('-e','1')); }
    else {
      if ($rev eq '4.00') {
         push(@pppoacommand,('-e','1')); }
    }
  }
  # end new code
  push(@pppcommand, "@pppoacommand");

so it would be best to leave things to be fixed manually on both 2.0 and 3.0 if you actually have a problem.

Previous solutions to the problem

Taming the SpeedTouch 330 http://www.zen22507.zen.co.uk/
Alcatel SpeedTouch 330 Revision 4 (the Silver modem) http://www.nemohackers.org/speedtouch.php
RPM for Redhat Linux http://www.ottolander.nl/opensource/speedtouch/speedtouch.html
My attempts and solutions history

Speedtouch and Other Linux Distributions - Collected HowTos

Ubuntu 6.10 (Edgy Eft) https://help.ubuntu.com/community/UsbAdslModem/SpeedTouch
   
   

This site was lashed together from various sources, starting in January 2004 and is in a state of flux, so I do need people to tell me ( john.hysted@btinternet.com ) of any errors and omissions. Thanks

October 2005, started updating this lot again after months away dealing with real life.

Current project: Half-Bridge mode modems - an alternative to the Using an Origo 8100/8400, Safecom 4110/ 4114 with Smoothwall

Future project, when I get some really spare time: Extracting line stats from the SpeedTouch 330 (user mode first).

Last Update 20th February 2009. If this is over 6 months ago, please send me an email to remind me that this page needs maintaining.