Page 1 of 4 123 ... LastLast
Results 1 to 15 of 56

Thread: USB serial high speed patch

  1. #1

    Exclamation USB serial high speed patch

    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

  2. #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. #3
    Join Date
    Dec 2003
    Location
    Russian Federation
    Posts
    8,356
    Do you need this for original wl500g or deluxe or perhaps premium box?

  4. #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. #5
    Join Date
    Dec 2003
    Location
    Russian Federation
    Posts
    8,356

  6. #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. #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. #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. #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.
    Attached Files Attached Files

  10. #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. #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. #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. #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. #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?

  15. #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.

Page 1 of 4 123 ... LastLast

Similar Threads

  1. linuxrc bug? - WL-500g not booting from usb drive with hub
    By daniel632 in forum WL-500g Custom Development
    Replies: 5
    Last Post: 14-03-2012, 15:28
  2. Unstable boot from USB
    By Tamadite in forum WL-500g Q&A
    Replies: 6
    Last Post: 20-08-2008, 15:19
  3. WL500g 2 USB Drucker und ein LPT
    By Trebron in forum German Discussion - Deutsch (DE)
    Replies: 1
    Last Post: 27-01-2006, 23:48
  4. Wl500g > 2 USB and 1 LPT Printer
    By Trebron in forum WL-500g Q&A
    Replies: 0
    Last Post: 27-01-2006, 22:17
  5. Please help... USB HDD doesn't work
    By jirina42 in forum WL-500g Q&A
    Replies: 6
    Last Post: 05-01-2006, 19:04

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •