| 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/
|
| Thomson multimedia global |
http://www.thomson.net/dsl -> xDSL Gateways & Accessories -> Residential Wired -> Other Supported Products -> Thomson ST330 |
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 .
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
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 |
| SmoothWall Express 2.0 fix 7 and 8 |
Firmware KQD6_3.012 and |
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 - 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 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.
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.
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.
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.
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.
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?
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
(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.
| 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 |
| 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.