Page 1 of 1

Huawei E1550 Doesn't work with DWC_OTG USB in OpenWrt

Posted: 22 Apr 2011, 04:44
by hsdpafever
It's been a while since my last visit here...

Hi, I am having problems getting the E1550 USB dongle to work on my OpenWrt based DWC-OTG USB port. E220, E170, E169, E1762, and E230 work great

It is a good and working E1550 as it works on both of my Fedora and Ubuntu machines.

Software version:
Kernel-2.6.37.6
usb_modeswitch-1.1.4 (I have also tried 1.1.3 and 1.1.7 with no luck)
usb_modeswitch-data-20100826 (I have also tried out 20110227)

***********************************
Here's the syslog during bootup:
***********************************
Jan 1 00:00:14 WiHot kern.info kernel: usbcore: registered new interface driver usb-storage
Jan 1 00:00:14 WiHot kern.info kernel: USB Mass Storage support registered.
Jan 1 00:00:14 WiHot kern.info kernel: hso: drivers/net/usb/hso.c: Option Wireless
Jan 1 00:00:14 WiHot kern.info kernel: usbcore: registered new interface driver hso
Jan 1 00:00:15 WiHot kern.info kernel: USB Serial support registered for GSM modem (1-port)
Jan 1 00:00:15 WiHot kern.info kernel: usbcore: registered new interface driver option
Jan 1 00:00:15 WiHot kern.info kernel: option: v0.7.2:USB Driver for GSM modems
Jan 1 00:00:15 WiHot kern.notice kernel: scsi 0:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
Jan 1 00:00:15 WiHot kern.notice kernel: scsi 1:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
Jan 1 00:00:15 WiHot kern.notice kernel: sd 1:0:0:0: [sda] Attached SCSI removable disk

*****************************************************
If I do it manually at the prompt, here's what I get
*****************************************************
root@WiHot:~# usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1001 -s 20 -W -M
"55534243123456780000000000000011060000000000000000000000000000"
Taking all parameterusb 1-1: usbfs: process 2117 (usb_modeswitch) did not claim interface 0 before use
s from the command line

* usb_modeswitch: handle USB devices with multiple modes
* Version 1.1.4 (C) Josua Dietze 2010
* Based on libusb0 (0.1.12 and above)

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetVendor= 0x12d1
TargetProduct= 0x1001
TargetClass= not set
TargetProductList=""

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
GCTMode=0
MessageEndpoint= not set
MessageContent="55534243123456780000000000000011060000000000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00

InquireDevice enabled (default)
Success check enabled, max. wait time 20 seconds
System integration mode disabled

usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 001
usb_os_find_busses: Skipping non bus directory devices
usb_os_find_devices: Found 004 on 001
usb_os_find_devices: Found 001 on 001
error obtaining child information: Inappropriate ioctl for device

Looking for target devices ...
searching devices, found USB ID 12d1:1446
found matching vendor ID
searching devices, found USB ID 1d6b:0002
No devices in target mode or class found
Looking for default devices ...
searching devices, found USB ID 12d1:1446
found matching vendor ID
found matching product ID
adding device
searching devices, found USB ID 1d6b:0002
Found devices in default mode or class (1)
Accessing device 004 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
USB error: could not get bound driver: No data available
No driver found. Either detached before or never attached

SCSI inquiry data (for identification)
-------------------------
Vendor String: HUAWEI
Model String: Mass Storage
Revision String: 2.31
-------------------------

USB description data (for identification)
-------------------------
Manufacturer: HUAWEI Technology
Product: HUAWEI Mobile
Serial No.: not provided
-------------------------
Setting up communication with interface 0 ...
Using endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
OK, message successfully sent
Resetting response endpoint 0x81
Resetting message endpoint 0x01

Checking for mode switch (max. 20 times, once per second) ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Waiting for original device to vanish ...
Original device still present after the timeout

Mode switch most likely failed. Bye.
#
#

******************************************************************
Tried out the simple detach approach - Same result as above
******************************************************************
root@WiHot:~# usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1001 -s 20 -W -d
1


**************************************************
Tried a different Message content - it hung!
**************************************************
root@WiHot:~# usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1001 -s 20 -W -M
"55534243000000000000000000000011060000000000000000000000000000"
Taking all parameters from the command line

* usb_modeswitch: handle USB devices with multiple modes
* Version 1.1.4 (C) Josua Dietze 2010
* Based on libusb0 (0.1.12 and above)

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetVendor= 0x12d1
TargetProduct= 0x1001
TargetClass= not set
TargetProductList=""

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
GCTMode=0
MessageEndpoint= not set
MessageContent="55534243000000000000000000000011060000000000000000000000000000"
NeedResponse=0
ResponseEndpoint= not set
Interface=0x00

InquireDevice enabled (default)
Success check enabled, max. wait time 20 seconds
System integration mode disabled

usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 001
usb_os_find_busses: Skipping non bus directory devices
usb_os_find_devices: Found 004 on 001
usb_os_find_devices: Found 001 on 001
error obtaining child information: Inappropriate ioctl for device

Looking for target devices ...
searching devices, found USB ID 12d1:1446
found matching vendor ID
searching devices, found USB ID 1d6b:0002
No devices in target mode or class found
Looking for default devices ...
searching devices, found USB ID 12d1:1446
found matching vendor ID
found matching product ID
adding device
searching devices, found USB ID 1d6b:0002
Found devices in default mode or class (1)
Accessing device 004 on bus 001 ...
Using endpoints 0x01 (out) and 0x81 (in)
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
USB error: could not get bound driver: No data available
No driver found. Either detached before or never attached

Posted: 22 Apr 2011, 12:50
by Josh
There was a hint from annother OpenWRT user in a recent thread:

Use the -I parameter to skip the SCSI inquiry. This command seems to be a problem on some embedded platforms.

Ah, and make sure to re-plug before every manual switching attempt.

Posted: 25 Apr 2011, 09:01
by hsdpafever
Hi Josh,
Thanks for the indicator.

Here's what I have put down in the script. However, it only works at hotplug, i.e., allow the unit to bootup first, then plug in the modem. Any idea how I can make it to switch at bootup?

########################################################
# Huawei, newer modems

DefaultVendor= 0x12d1
DefaultProduct=0x1446

TargetVendor= 0x12d1
TargetProductList="1001,1406,140b,140c,1412,141b,14ac"

CheckSuccess=20

InquireDevice=0

MessageContent="55534243123456780000000000000011060000000000000000000000000000"

ResetUSB=1

Posted: 26 Apr 2011, 08:17
by Josh
The whole "framework" of usb_modeswitch is working well at boot time on all major desktop distributions.

I don't know how it will integrate into OpenWRT - you need to have at least udev and tcl, and a fairly recent kernel (> 2.6.26) to have it fully operational.


Posted: 26 Apr 2011, 08:28
by hsdpafever
I will post the problem in OpenWrt forum to see if anybody has seen it.

OpenWrt uses hotplug instead of udev and the kernel is 2.6.37.6.

Thanks.