EMI related problem for USB HUB using HSDPA GSM USB dongle

Started by erwinkendo, September 03, 2014, 10:22:29 PM

Previous topic - Next topic

erwinkendo

Greetings

I am testing HSDPA USB dongle from Olimex in Olimex A13-Olinuxino WiFi (without the included WiFi which never really worked, so I removed it) and I am facing some problems when I plug this USB dongle to the board.

I compiled every kernel module, installed wvdial and used a configuration which worked in a Linux Desktop PC, and connection seems to work sometimes, but other times, when I star wvdial, this message pops up:

root@a13-OLinuXino:~# wvdial hsdpa &                                                                                                                                       
[1] 4235                                                                                                                                                                   
root@a13-OLinuXino:~# --> WvDial: Internet dialer version 1.61                                                                                                             
--> Initializing modem.                                                                                                                                                     
--> Sending: ATZ                                                                                                                                                           
ATZ                                                                                                                                                                         
--> Sending: ATQ0                                                                                                                                                           
ATQ0                                                                                                                                                                       
OK                                                                                                                                                                         
--> Re-Sending: ATZ                                                                                                                                                         
ATZ                                                                                                                                                                         
OK                                                                                                                                                                         
--> Sending: ATZ                                                                                                                                                           
ATZ                                                                                                                                                                         
OK                                                                                                                                                                         
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0                                                                                                                             
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0                                                                                                                                           
OK                                                                                                                                                                         
--> Modem initialized.                                                                                                                                                     
--> Sending: ATDT*99***1#                                                                                                                                                   
--> Waiting for carrier.                                                                                                                                                   
ATDT*99***1#                                                                                                                                                               
CONNECT                                                                                                                                                                     
--> Carrier detected.  Starting PPP immediately.                                                                                                                           
--> Starting pppd at Wed Sep  3 19:09:11 2014                                                                                                                               
--> Pid of pppd: 4381                                                                                                                                                       
--> Using interface ppp0                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> local  IP address 10.11.96.0                                                                                                                                           
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> remote IP address 10.64.64.64                                                                                                                                           
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> primary   DNS address 10.208.90.122                                                                                                                                     
--> pppd:  >u[01] >u[01]                                                                                                                                                   
                                                                                                                                                                           
root@a13-OLinuXino:~# p<5>ub(2.6): stall on control pipe                                                                                                                   
[   70.011871] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.024121] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.031730] ub(2.6): stall on control pipe                                                                                                                               
i<5>ub(2.6): stall on control pipe                                                                                                                                         
[   70.082862] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.090479] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.102495] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.110236] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.149125] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.162241] ub(2.6): stall on control pipe                                                                                                                               
n<5>ub(2.6): stall on control pipe                                                                                                                                         
[   70.183002] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.194002] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.233126] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.240728] ub(2.6): stall on control pipe                                                                                                                               
<3>hub 2-1:1.0: port 1 disabled by hub (EMI?), re-enabling...                                                                                                               
[   70.253895] hub 2-1:1.0: port 1 disabled by hub (EMI?), re-enabling...                                                                                                   
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.265240] ub(2.6): stall on control pipe                                                                                                                               
<5>ub(2.6): stall on control pipe                                                                                                                                           
[   70.273247] ub(2.6): stall on control pipe                                                                                                                               
<6>usb 2-1.1: USB disconnect, device number 6                                                                                                                               
[   70.332225] usb 2-1.1: USB disconnect, device number 6                                                                                                                   
<5>ub(2.6): unable to submit clear (-19)                                                                                                                                   
[   70.341236] ub(2.6): unable to submit clear (-19)                                                                                                                       
<3>option: option_instat_callback: error -108                                                                                                                               
[   70.350483] option: option_instat_callback: error -108                                                                                                                   
<6>option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0                                                                                             
[   70.396962] option1 ttyUSB0: GSM modem (1-port) converter now disconnected from ttyUSB0                                                                                 
<6>option 2-1.1:1.0: device disconnected                                                                                                                                   
[   70.475427] option 2-1.1:1.0: device disconnected                                                                                                                       
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> Connect time 0.1 minutes.                                                                                                                                               
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
--> pppd:  >u[01] >u[01]                                                                                                                                                   
<6>option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1                                                                                             
[   70.519623] option1 ttyUSB1: GSM modem (1-port) converter now disconnected from ttyUSB1                                                                                 
<6>option 2-1.1:1.1: device disconnected                                                                                                                                   
[   70.611989] option 2-1.1:1.1: device disconnected                                                                                                                       
<6>option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2                                                                                             
[   70.664903] option1 ttyUSB2: GSM modem (1-port) converter now disconnected from ttyUSB2                                                                                 
<6>option 2-1.1:1.2: device disconnected                                                                                                                                   
[   70.728429] option 2-1.1:1.2: device disconnected                                                                                                                       
<6>usb 2-1.1: new full-speed USB device number 7 using sw-ehci                                                                                                             
[   71.024485] usb 2-1.1: new full-speed USB device number 7 using sw-ehci                                                                                                 
--> Disconnecting at Wed Sep  3 19:09:17 2014                                                                                                                               


The critical line appears to be:

<3>hub 2-1:1.0: port 1 disabled by hub (EMI?), re-enabling...                                                                                                               

Does this ever happened to any one out there? Any suggested solutions? I have used several USB dongles (USB mass storage, USB, Bluetooth) and I have never faced this issue. Even after leaving the GMS USB dongle connected without other dongles, this problem continues.

I use default startup script and almost the same default kernel.

Any help will be appreciated.

Kind regards, 

MBR

Have you tried a powered USB hub? The HSDPA USB can draw too much current from the port in short peaks and this may cause the described problems. The other dongles are relatively low-power compared to HSDPA, because the GSM peak TX power is 2W!

erwinkendo

Thank you MBR

I did tried your solution, but not before confirming that without an external USB HUB the dongle can't work.

With the Sd image I had, I encountered several problems, the first being a kernel crash after some time with the USB HSDPA connected (the few times it did work)

<3>INFO: task kworker/0:2:13411 blocked for more than 120 seconds.
[ 5521.747813] INFO: task kworker/0:2:13411 blocked for more than 120 seconds.
<3>"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 5521.803579] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this
message.
<6>kworker/0:2     D[ 5521.861422] kworker/0:2     D<c> c04f24a8  c04f24a8 <c>
  0 13411      2 0x00000000
    0 13411      2 0x00000000
[<c04f24a8>] (__schedule+0x314/0x62c) from [<c04f12dc>] (schedule_timeout+0x19c/
0x21c)
[ 5521.949507] [<c04f24a8>] (__schedule+0x314/0x62c) from [<c04f12dc>] (schedule
_timeout+0x19c/0x21c)
[<c04f12dc>] (schedule_timeout+0x19c/0x21c) from [<c04f2ab0>] (wait_for_common+0
x110/0x178)
[ 5522.039490] [<c04f12dc>] (schedule_timeout+0x19c/0x21c) from [<c04f2ab0>] (wa
it_for_common+0x110/0x178)
[<c04f2ab0>] (wait_for_common+0x110/0x178) from [<c0048988>] (kthread_create_on_
node+0x8c/0xf0)
[ 5522.143277] [<c04f2ab0>] (wait_for_common+0x110/0x178) from [<c0048988>] (kth
read_create_on_node+0x8c/0xf0)
[<c0048988>] (kthread_create_on_node+0x8c/0xf0) from [<c004399c>] (create_worker
.constprop.41+0x140/0x1d0)
[ 5522.237101] [<c0048988>] (kthread_create_on_node+0x8c/0xf0) from [<c004399c>]
(create_worker.constprop.41+0x140/0x1d0)
[<c004399c>] (create_worker.constprop.41+0x140/0x1d0) from [<c0043ca4>] (manage_
workers.isra.40+0x278/0x328)
[ 5522.385971] [<c004399c>] (create_worker.constprop.41+0x140/0x1d0) from [<c004
3ca4>] (manage_workers.isra.40+0x278/0x328)
[<c0043ca4>] (manage_workers.isra.40+0x278/0x328) from [<c0044714>] (worker_thre
ad+0x360/0x39c)
[ 5522.474592] [<c0043ca4>] (manage_workers.isra.40+0x278/0x328) from [<c0044714
>] (worker_thread+0x360/0x39c)
[<c0044714>] (worker_thread+0x360/0x39c) from [<c0048d8c>] (kthread+0x90/0x94)
[ 5522.533389] [<c0044714>] (worker_thread+0x360/0x39c) from [<c0048d8c>] (kthre
ad+0x90/0x94)
[<c0048d8c>] (kthread+0x90/0x94) from [<c000f96c>] (kernel_thread_exit+0x0/0x8)
[ 5522.618925] [<c0048d8c>] (kthread+0x90/0x94) from [<c000f96c>] (kernel_thread
_exit+0x0/0x8)


After that I pluged a USB HUB powered externally and started testing. A message appeared from time to time:

<3>option: option_instat_callback: error -32
[ 4829.797505] option: option_instat_callback: error -32


But the modem didn't hung up. After that I did some testing for about 1 day straight and face a different problem, memory swap was full:

Normal: [54074.520808] Normal: 0*4kB 0*4kB 0*8kB 0*8kB 0*16kB 0*16kB 0*32kB 0*32
kB 0*64kB 0*64kB 0*128kB 0*128kB 0*256kB 0*256kB 0*512kB 0*512kB 0*1024kB 0*1024
kB 0*2048kB 0*2048kB 0*4096kB 0*4096kB = 0kB
= 0kB
3308 total pagecache pages
[54074.541265] 3308 total pagecache pages
0 pages in swap cache
[54074.547011] 0 pages in swap cache
Swap cache stats: add 0, delete 0, find 0/0
[54074.554230] Swap cache stats: add 0, delete 0, find 0/0
Free swap  = 0kB
[54074.561015] Free swap  = 0kB
Total swap = 0kB
[54074.565458] Total swap = 0kB
<4>SLUB: Unable to allocate memory on node -1 (gfp=0x8020)
[54074.573544] SLUB: Unable to allocate memory on node -1 (gfp=0x8020)
<4>  cache: kmalloc-64, object size: 64, buffer size: 64, default order: 0, min
order: 0


This line pointed me to the problem:

[54076.376106] Xorg: page allocation failure: order:0, mode:0x20

So I disabled Xorg, disabled the hardware kernel modules and everything worked out.

When having the USB HUB powered externally connected, I receive the following message at startup, which delays the boot around 2 minutes:

udevadm settle - timeout of 120 seconds reached, the event queue contains:
  /sys/devices/platform/sw-ehci.1/usb2/2-1/2-1.1/2-1.1.4/2-1.1.4:1.3/block/uba (
6512)
[ ok done (timeout).


Nevertheless, this whole behaviour seems weird. I did current testing and the board never required more than 500mA and I have a 1200mA power source. When powering the external USB HUB, its current never went higher than 100mA.

So far, sometimes the USB HSDPA works, sometimes it doesn't..., even more troublesome. EMI related trouble seems to go away with external USB HUB BUT the internal USB HUB sometimes recognizes all the attached devices, but sometimes it doesn't! Any suggestion for this last problem.

Kind regards,

erwinkendo

Again I tested the HSDPA with Olinuxino, using other SD card and even powering the board using a laboratory power source, upgrading the kernel, compiling the modules by hand and nothing worked, the connection keeps failling again and again, only using an external USB HUB does the problem reduces... but only for some time, after a while, the USB stops working completely.

Has anyone had this kind of problems, or has anyone succesfuly used this board with a 3G dongle? maybe other dongle works best.

Kind regards,