kern/178773: [patch] Huawei E303 USB 3G modem support
Peter Sopko
peter.sopko at backbone.sk
Sun May 19 15:40:03 UTC 2013
>Number: 178773
>Category: kern
>Synopsis: [patch] Huawei E303 USB 3G modem support
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun May 19 15:40:02 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Peter Sopko
>Release: 9.1-RELEASE
>Organization:
BACKBONE, s.r.o.
>Environment:
FreeBSD avantgarde.backbone.sk 9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0: Sun May 19 16:43:43 CEST 2013 root at avantgarde.backbone.sk:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
Huawei E303 USB 3G modem is considered as an unknown device. It is possible to use camcontrol and/or sysutils/usb_modeswitch port to manually force it to become a 3g modem recognised by cdce, u3g and ue drivers, but no /dev/cua* and /dev/ttyU* /dev-entires are created.
After usb_modeswitch* there is a message in dmesg stating
May 19 16:05:03 avantgarde root: Unknown USB device: vendor 0x12d1 product 0x1506 bus uhub1
*usb_modeswitch command used was 'usb_modeswitch -v 0x12d1 -p 0x14fe -V 0x12d1 -P 0x1506 -s 20 -M "55534243123456780000000000000a11062000000000000100000000000000"'
>How-To-Repeat:
Just plug the usb 3g modem into the machine
>Fix:
Please see the attached patch (two-line additions to sys/dev/usb/usbdevs and sys/dev/usb/serial/u3g.c). Apply in /usr/src using 'patch -p0 <usb_huawei_e303.txt'
output of usbconfig after the patch:
ugen1.2: <HUAWEI Mobile HUAWEI> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
ugen1.2.0: u3g0: <HUAWEI HUAWEI Mobile, class 0/0, rev 2.00/1.02, addr 2>
ugen1.2.1: cdce0: <HUAWEI HUAWEI Mobile, class 0/0, rev 2.00/1.02, addr 2>
ugen1.2.4: umass0: <HUAWEI HUAWEI Mobile, class 0/0, rev 2.00/1.02, addr 2>
ugen1.2.5: umass1: <HUAWEI HUAWEI Mobile, class 0/0, rev 2.00/1.02, addr 2>
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x12d1
idProduct = 0x1506
bcdDevice = 0x0102
iManufacturer = 0x0003 <HUAWEI>
iProduct = 0x0002 <HUAWEI Mobile>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
Patch attached with submission follows:
diff -rupN original/u3g.c new/u3g.c
--- sys/dev/usb/serial/u3g.c 2013-05-19 17:20:38.000000000 +0200
+++ sys/dev/usb/serial/u3g.c 2013-05-19 17:21:32.000000000 +0200
@@ -280,6 +280,8 @@ static const STRUCT_USB_HOST_ID u3g_devs
U3G_DEV(HUAWEI, E143D, U3GINIT_HUAWEI),
U3G_DEV(HUAWEI, E143E, U3GINIT_HUAWEI),
U3G_DEV(HUAWEI, E143F, U3GINIT_HUAWEI),
+ U3G_DEV(HUAWEI, E303, 0),
+ U3G_DEV(HUAWEI, E303_INIT, U3GINIT_HUAWEISCSI),
U3G_DEV(HUAWEI, E173, 0),
U3G_DEV(HUAWEI, E173_INIT, U3GINIT_HUAWEISCSI),
U3G_DEV(HUAWEI, E180V, U3GINIT_HUAWEI),
diff -rupN original/usbdevs new/usbdevs
--- sys/dev/usb/usbdevs 2013-05-19 17:20:49.000000000 +0200
+++ sys/dev/usb/usbdevs 2013-05-19 17:21:37.000000000 +0200
@@ -1885,6 +1885,8 @@ product HUAWEI E143F 0x143f 3G modem
product HUAWEI E1752 0x1446 3G modem
product HUAWEI K3765 0x1465 3G modem
product HUAWEI E1820 0x14ac E1820 HSPA+ USB Slider
+product HUAWEI E303_INIT 0x14fe 3G modem initial
+product HUAWEI E303 0x1506 3G modem
product HUAWEI K3765_INIT 0x1520 K3765 Initial
product HUAWEI E173 0x1c05 3G modem
product HUAWEI E173_INIT 0x1c0b 3G modem initial
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list