|
#1
|
|||
|
|||
|
Hello everyone,
I was wondering if one of the wizards here could give me hand in compiling a patched usbserial module that supports high speed HSDPA/UMTS devices such as the Huawei E220 HSDPA dongle sold by Vodafone. The patch is very simple, it's described at http://www.junxion.com/opensource/li...usbserial.html . I've tested it on an X86 system with a Huawei E220 USB modem and the results are pretty amazing, the download speed goes up from 30K/second (240kbps) to about 120K/second (960kbps). That's 4 times the non-patched speed. A patched module would allow you to connect HSDPA or EVDO modems and use them at full speed. As a side note, I've tried compiling the patched module myself on the device itself (I have the toolchain installed) and it does compile but when I insert it I get the following: ---------------------- usbserial.c: USB Serial support registered for Generic Unhandled kernel unaligned access in unaligned.c::emulate_load_store_insn, line 481: $0 : 00000000 1000fc00 00000000 00001003 000012d1 735f6f6e c00a7508 00000003 $8 : 81878800 735f6f6e 00000000 00000000 fffffffb ffffffff 0000000a 00000000 $16: c00a74a8 c008705c c00a74ec 00000001 00000000 c00a7498 81878800 735f6f6e $24: 81849b80 00000002 81848000 81849cc8 c00986a0 c00a538c Hi : 00000000 Lo : 0000000a epc : c008716c Not tainted Status: 1000fc03 Cause : 80000010 Process insmod (pid: 347, stackpage=81848000) Stack: 57415548 54204945 6e686365 676f6c6f 00736569 00000000 00000000 00000000 57415548 4d204945 6c69626f 00000065 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 12d11003 00000000 00000000 801d3040 802f37a0 00000000 00000000 00000000 00000000 00000000 00000006 80022514 c00d5af8 c00d51e0 c00a73a0 c00a73c0 ... Call Trace: [<80022514>] [<c00d5af8>] [<c00d51e0>] [<c00a73a0>] [<c00a73c0>] [<c00fcc18>] [<c00986a0>] [<c008750c>] [<80030198>] [<c008721c>] [<c0086f14>] [<c0086f98>] [<80010e64>] [<c0086f14>] [<c0086fd4>] [<c008721c>] [<c0086f14>] [<c0086f14>] [<c0086fd4>] [<c0086f98>] [<800111cc>] [<c00986a8>] [<c0086f14>] [<c00986a8>] [<c0086f14>] [<c00986a8>] [<c00861a8>] [<c00a6460>] [<c00a7064>] [<c00a68bc>] [<c00a6588>] [<c00a653c>] [<8001259c>] [<80030198>] [<c00a3060>] [<800085a4>] Code: 5462ffce 24c60014 30e20040 <50400006> 8d230004 90c3000c 910200e6 5462ffc7 24c60014 -------------------------------- Also, here's a dump of the (successful?) compilation process: ------------------------------ [admin@Asus linux-2.4.20]$ make SUBDIRS=drivers/usb/serial modules make -C drivers/usb/serial CFLAGS="-D__KERNEL__ -I/opt/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I /opt/src/linux-2.4.20/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -mips2 -Wa,--trap -DMODULE -mlong-calls" MAKING_MODULES=1 modules make[1]: Entering directory `/opt/src/linux-2.4.20/drivers/usb/serial' gcc -D__KERNEL__ -I/opt/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I /opt/src/linux-2.4.20/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -mips2 -Wa,--trap -DMODULE -mlong-calls -nostdinc -iwithprefix include -DKBUILD_BASENAME=usbserial -DEXPORT_SYMTAB -c usbserial.c In file included from /opt/src/linux-2.4.20/include/linux/interrupt.h:46, from /opt/src/linux-2.4.20/include/linux/usb.h:139, from usbserial.c:300: /opt/src/linux-2.4.20/include/asm/softirq.h: In function `cpu_bh_disable': /opt/src/linux-2.4.20/include/asm/softirq.h:18: warning: use of compound expressions as lvalues is deprecated /opt/src/linux-2.4.20/include/asm/softirq.h: In function `__cpu_bh_enable': /opt/src/linux-2.4.20/include/asm/softirq.h:25: warning: use of compound expressions as lvalues is deprecated gcc -D__KERNEL__ -I/opt/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -I /opt/src/linux-2.4.20/include/asm/gcc -G 0 -mno-abicalls -fno-pic -pipe -mips2 -Wa,--trap -DMODULE -mlong-calls -nostdinc -iwithprefix include -DKBUILD_BASENAME=pl2303 -c -o pl2303.o pl2303.c In file included from /opt/src/linux-2.4.20/include/linux/interrupt.h:46, from /opt/src/linux-2.4.20/include/linux/usb.h:139, from pl2303.c:45: /opt/src/linux-2.4.20/include/asm/softirq.h: In function `cpu_bh_disable': /opt/src/linux-2.4.20/include/asm/softirq.h:18: warning: use of compound expressions as lvalues is deprecated /opt/src/linux-2.4.20/include/asm/softirq.h: In function `__cpu_bh_enable': /opt/src/linux-2.4.20/include/asm/softirq.h:25: warning: use of compound expressions as lvalues is deprecated make[1]: Leaving directory `/opt/src/linux-2.4.20/drivers/usb/serial' ------------------------------------------------ Any ideas as to what I'm doing wrong? Or could someone apply the patch and compile the module for me/us ? Thank you, Razvan -- Razvan Dragomirescu Chief Technology Officer Cayenne Graphics SRL |
|
#1
|
|||
|
|||
|
#2
|
|||
|
|||
|
Ok, how do I set up a bounty? Looks like nobody wants to do this for free, so I'm willing to pay someone to compile a working module for me. The module would need to work on Oleg's latest firmware and contain the patches described above. If you can do it, name your price and preferred payment method.
Razvan |
|
#3
|
|||
|
|||
|
Do you need this for original wl500g or deluxe or perhaps premium box?
|
|
#4
|
|||
|
|||
|
Preferably for the Premium although my Premium has just died so I'm left with a Deluxe to test on. Does it make a difference?
|
|
#5
|
|||
|
|||
|
#6
|
|||
|
|||
|
Thanks Oleg but it doesn't appear to work. It doesn't seem to recognize the maxSize parameter (that is supposed to be added by the Junxion patch)
[admin@Asus root]$ insmod /tmp/local/root/usbserial.o vendor=0x12d1 product=0x1003 maxSize=2048 insmod: invalid parameter maxSize If I try to simply insert it without that parameter, I get a Segmentation Fault and this in the dmesg: ----------------------------------------------- usbserial.c: USB Serial support registered for Generic Unable to handle kernel paging request at virtual address 00000004, epc == c008716c, ra == c00f788c Oops in fault.c::do_page_fault, line 192: $0 : 00000000 1000fc00 00000000 00001003 000012d1 00000000 c00f96a4 00000003 $8 : 81a63800 00000000 00000008 c00f5060 c00f94ab 2abb24a8 00000000 c00f93e0 $16: c00f9554 c008705c c00f95d0 00000000 c00f0c18 81a63800 00000000 c00f9544 $24: 00000018 2ac14e20 818b0000 818b1cf8 00000000 c00f788c Hi : 00000000 Lo : 00000480 epc : c008716c Not tainted Status: 1000fc03 Cause : 80000008 Process insmod (pid: 271, stackpage=818b0000) Stack: 00008000 818b1d30 81a150dc 819e7380 802f37a0 80190bec 802f37a0 00000001 10031000 819e7380 00249603 8103c244 80190aec 80022514 2ac5ff80 011f968b 81045f30 80190bec 81a150c4 00000001 00000000 80000000 00000001 815de5b4 815df000 815df000 1d283a50 00000000 801e0f28 00000000 00000000 00000000 00000000 00000000 c00f9598 c00f95b8 81a1caa0 00000001 c00f0c18 00000001 ... Call Trace: [<80190bec>] [<80190aec>] [<80022514>] [<80190bec>] [<c00f9598>] [<c00f95b8>] [<c00f0c18>] [<c00986a0>] [<c008750c>] [<c008721c>] [<c0086f14>] [<c0086f98>] [<c008721c>] [<c0086f14>] [<c0086f14>] [<c0086fd4>] [<c0086f98>] [<800111cc>] [<c00986a8>] [<c0086f14>] [<c00986a8>] [<c0086f14>] [<c00986a8>] [<c00861a8>] [<c00f95d8>] [<c00f95d8>] [<c00f8860>] [<c00f9370>] [<c00f89b0>] [<c00f8750>] [<c00f8708>] [<80030500>] [<c00597d8>] [<8001259c>] [<800163f4>] [<c00f5060>] [<800085a4>] Code: 5462ffce 24c60014 30e20040 <50400006> 8d230004 90c3000c 910200e6 5462ffc7 24c60014 -------------------------------------------------------------- Razvan |
|
#7
|
|||
|
|||
|
Doesn't work.
I have a Asus WL-500g Premium and are also having problems with the slow usb. I can't seem to get my HSDPA modem to go faster then 30KB/s.
I tried the usbserial.o driver that was posted here, but i got the same problem as the topic starter. I also can't give any maxSize option to the module. I am using oleg WL500gp-1.9.2.7-7f. Does anyone have a usbserial.o for me with the correct (maxSize) patch. Thanks! |
|
#8
|
|||
|
|||
|
So, any takers for the bounty? I'm still interested in getting that module patched by someone who knows how to do it and is interested in getting paid for it too.
Thanks, Razvan |
|
#9
|
|||
|
|||
|
Ok. I take it. Here is the patched module. Here seems to work ok (no segmentation fault). Using 1.9.2.7-7f and wl-500gd. I couldn't test if it really work because I haven't got any device to do it.
|
|
#10
|
|||
|
|||
|
Thank you Daniel but unfortunately it does the exact same thing as Oleg's try:
---------------- usb.c: registered new driver serial usbserial.c: USB Serial support registered for Generic Unable to handle kernel paging request at virtual address 00000004, epc == c008716c, ra == c00a588c Oops in fault.c::do_page_fault, line 192: $0 : 00000000 1000fc00 00000000 00001003 000012d1 00000000 c00a7684 00000003 $8 : 819ce800 00000000 00000008 00000000 00000000 2abb24a8 00000000 00000000 $16: c00a7538 c008705c c00a75b8 00000000 c00acec0 819ce800 00000000 c00a7528 $24: 00000018 2ac14e20 81916000 81917cf8 00000000 c00a588c Hi : 00000000 Lo : 00000500 epc : c008716c Not tainted Status: 1000fc03 Cause : 80000008 Process insmod (pid: 147, stackpage=81916000) Stack: 802f3620 1001f000 8000a8dc 80030198 1002f000 2aac0000 802f3620 00000001 1002f000 81ca1200 81917e18 00000001 802f363c 80022514 81917d38 0051d6ac 81e14aa0 80183ac8 819100bc 819374a0 81aafea0 81917d58 81da5800 80183b50 8000a8dc 00000000 801e1910 80055e34 801e0f28 00000000 00000000 00000000 00000000 00000000 c00a7580 c00a75a0 819e85a0 00000001 c00acec0 00000001 ... Call Trace: [<8000a8dc>] [<80030198>] [<80022514>] [<80183ac8>] [<80183b50>] [<8000a8dc>] [<80055e34>] [<c00a7580>] [<c00a75a0>] [<c00acec0>] [<c00986a0>] [<c008750c>] [<c008721c>] [<c0086f14>] [<c0086f98>] [<c008721c>] [<c0086f14>] [<c0086f14>] [<c0086fd4>] [<c0086f98>] [<800111cc>] [<c00986a8>] [<c0086f14>] [<c00986a8>] [<c0086f14>] [<c00986a8>] [<c00861a8>] [<c00a75c0>] [<c00a75c0>] [<c00a6874>] [<c00a7380>] [<c00a69c0>] [<c00a6764>] [<c00a671c>] [<80030500>] [<8001259c>] [<8002be40>] [<80030198>] [<c00a3060>] [<800085a4>] Code: 5462ffce 24c60014 30e20040 <50400006> 8d230004 90c3000c 910200e6 5462ffc7 24c60014 ------------------------------------------------------- You're right, if the device is not plugged in it doesn't mind (doesn't segfault) but when the message above pops up when the device is plugged in ... could this somehow be a hardware issue with the dongle itself? I doubt that it's my router that's doing this, others seem to be reporting the same thing. What I don't get is how come the original driver works... could the patch break things up so badly? It looked like a really simple patch to me... Razvan |
|
#11
|
|||
|
|||
|
BTW, I think you could try it with any USB modem dongle, just do "insmod usbserial vendor=<your vendor> device=<your device> maxSize=2048". If it doesn't segfault, that's good.
R. |
|
#12
|
|||
|
|||
|
Sorry, I haven't got any USB modem dongle at hand so I couldn't test it myself.
So, could you try using as maxSize the value of 64 instead of 2048? And if it works, could you try again with 128, 256, 512 and 1024? |
|
#13
|
|||
|
|||
|
Same thing unfortunately .... I've tried 1024, 512, 256, 128, 64 and even 0. I've also tried to leave out the parameter altogether (no maxSize at the end). The same oops .... I'm really lost
.Razvan |
|
#14
|
|||
|
|||
|
That's really strange. With 64 as the maxSize value, it should work exactly like the the unpatched usbserial.o ......because the unpatched usbserial.o works, doesn't it? Have you tried it?.
Because if it also fails, the problem is not in the patch but in other place. Could you confirm me that the unpatched (and slow) usbserial.o works? |
|
#14
|
|||
|
|||
|
#15
|
|||
|
|||
|
Yes, I can confirm that the unpatched usbserial.o (the one that comes with the firmware) works just fine (slow but fine). Which leads me to think that there's a problem with the way we are compiling it. Even the version that Oleg sent (that didn't seem to have the patch applied) exhibited the same problem. What could cause this? How is that module compiled (differently from how you compiled it)?
Razvan P.S. Would it help you if I sent you the binary of the module that I currently use? You can probably get it anyway from the firmware but maybe it could help, I don't know. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| linuxrc bug? - WL-500g not booting from usb drive with hub | daniel632 | WL-500g Custom Development | 5 | 08-08-2009 11:08 |
| Unstable boot from USB | Tamadite | WL-500g Q&A | 6 | 20-08-2008 15:19 |
| WL500g 2 USB Drucker und ein LPT | Trebron | German Discussion - Deutsch (DE) | 1 | 27-01-2006 23:48 |
| Wl500g > 2 USB and 1 LPT Printer | Trebron | WL-500g Q&A | 0 | 27-01-2006 22:17 |
| Please help... USB HDD doesn't work | jirina42 | WL-500g Q&A | 6 | 05-01-2006 19:04 |