Hi Chris, > The distribution of Linux I am running is IPCop, which is a > dedicated firewall system. This is currently running kernel > 2.4.31 and as it comes as a dedicated firewall the kernel is > compiled with specific functions. Using a latter kernel is not an > option.
ipcop probably uses the program "modem_run" to upload firmware from userspace (the linux 2.6 driver does this itself). I quickly hacked modem_run to do the extra initialization that the 2.6.19 module does (see patch below). This compiles but is otherwise untested. Please let us know if it helps. > Now to the firmware you kindly sent. I see from a latter posting > that you say it is the extended reach drivers: ZZZLP1.eni & > ZZZLP2.eni. I assume that these are different to those inside the > package on the Thompson site ZZZL3.012. I don't know. Try extracting the firmware from ZZZL3.012 and using md5sum (for example) to see if you get the same files. > And this is my main problem. IPCop expects the modem firmware to > "appear" as a single file, just like the one on the Thompson > site. Is there a way to combine these two files into one which > will work. I have seen that there is a way to extract the two > files from the Thomson file, what I need to do is put two files > back into one. The modem_run changes may also help when using your existing firmware. However the firmware I sent comes from the "extended reach" driver, which is designed for long lines, so it may work better. Duncan. --- modem_run.c.orig 2007-01-23 10:42:16.000000000 +0100 +++ modem_run.c 2007-01-23 10:49:57.000000000 +0100 @@ -77,6 +77,13 @@ #define SIZE_e 1 #define SIZE_f 1 +#define B_MAX_DSL 8128 +#define MODEM_MODE 11 +#define MODEM_OPTION_LENGTH 16 +static unsigned char MODEM_OPTION[MODEM_OPTION_LENGTH] = { + 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + /***************************************************************************** * Global variables ******************************************************************************/ @@ -821,6 +828,30 @@ if (n<0) report(0, REPORT_ERROR, "URB150\n"); + /* Extra initialisation in recent drivers - gives higher speeds */ + + /* URBext1 */ + buf[0] = MODEM_MODE; + n = pusb_control_msg(fdusb, 0x01, 0x40, 0x11, 0x00, buf, 1, 100); + if (n < 0) + report(0, REPORT_ERROR, "URBext1\n"); + + /* URBext2 */ + /* This seems to be the one which actually triggers the higher sync + rate -- it does require the new firmware too, although it works OK + with older firmware */ + n = pusb_control_msg(fdusb, 0x01, 0x40, 0x14, 0x00, MODEM_OPTION, + MODEM_OPTION_LENGTH, 100); + if (n < 0) + report(0, REPORT_ERROR, "URBext2\n"); + + /* URBext3 */ + buf[0] = B_MAX_DSL & 0xff; + buf[1] = B_MAX_DSL >> 8; + n = pusb_control_msg(fdusb, 0x01, 0x40, 0x12, 0x00, buf, 2, 100); + if (n < 0) + report(0, REPORT_ERROR, "URBext3\n"); + } /* Liste de diffusion modem ALCATEL SpeedTouch USB Pour se dىsinscrire : mailto:[EMAIL PROTECTED]