AW: AW: AW: 03f0:521d Hewlett-Packard again

Harald Jung harald.jung at ecos.de
Tue Nov 8 12:35:13 UTC 2016


Hi,

I tried again with mbim, because its a branded huawei mu736.
Same results as before:
ifconfig shows errors and I don't receive any bytes.

option 1-3:2.2: GSM modem (1-port) converter detected
usb 1-3: GSM modem (1-port) converter now attached to ttyUSB0
usbcore: registered new interface driver cdc_ncm
usbcore: registered new interface driver cdc_wdm
cdc_mbim 1-3:2.0: setting rx_max = 16384
cdc_mbim 1-3:2.0: setting tx_max = 16384
cdc_mbim 1-3:2.0: NDP will be placed at end of frame for this device.
cdc_mbim 1-3:2.0: cdc-wdm0: USB WDM device
cdc_mbim 1-3:2.0 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-3, CDC 
MBIM, 8e:1b:bf:b0:35:62
usbcore: registered new interface driver cdc_mbim
8021q: adding VLAN 0 to HW filter on device wwan0

wwan0     Link encap:Ethernet  HWaddr 8E:1B:BF:B0:35:62
           inet addr:37.84.135.42  Bcast:37.84.135.43 Mask:255.255.255.252
           inet6 addr: fe80::8c1b:bfff:feb0:3562%lo/64 Scope:Link
           UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:41 dropped:0 overruns:0 frame:0
           TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:0 (0.0 B)  TX bytes:5622 (5.4 KiB)



Has someone any ideas?
should we go on with option, or mbim?
could it help to disable ipv6?



Here is a pdf doc from huawei:
http://consumer.huawei.com/en/solutions/m2m-solutions/products/support/application-guides/detail/mu736-en.htm?id=17942

These are my patches so far:
--- drivers/usb/serial/option.c~        2014-09-06 01:34:59.000000000 +0200
+++ drivers/usb/serial/option.c 2014-09-16 15:50:45.000000000 +0200
@@ -79,6 +79,8 @@
  #define OPTION_PRODUCT_ETNA_KOI_MODEM          0x7100
  #define OPTION_PRODUCT_GTM380_MODEM            0x7201

+#define HP_VENDOR_ID                            0x03F0
+
  #define HUAWEI_VENDOR_ID                       0x12D1
  #define HUAWEI_PRODUCT_E173                    0x140C
  #define HUAWEI_PRODUCT_E1750                   0x1406
@@ -980,6 +982,12 @@
         { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 
0x7C) },


+        { USB_VENDOR_AND_INTERFACE_INFO(HP_VENDOR_ID, 0xff, 0x02, 0x01) },
+        { USB_VENDOR_AND_INTERFACE_INFO(HP_VENDOR_ID, 0xff, 0x02, 0x02) },
+        { USB_VENDOR_AND_INTERFACE_INFO(HP_VENDOR_ID, 0xff, 0x02, 0x03) },
+        { USB_VENDOR_AND_INTERFACE_INFO(HP_VENDOR_ID, 0xff, 0x02, 0x04) },
+        { USB_VENDOR_AND_INTERFACE_INFO(HP_VENDOR_ID, 0xff, 0x02, 0x05) },
+
         { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 
NOVATELWIRELESS_PRODUCT_V640) },
         { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 
NOVATELWIRELESS_PRODUCT_V620) },
         { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 
NOVATELWIRELESS_PRODUCT_V740) },
--- drivers/usb/serial/usb_wwan.c.orig  2016-11-08 12:24:25.240201286 +0100
+++ drivers/usb/serial/usb_wwan.c       2016-11-08 12:29:53.320201286 +0100
@@ -21,6 +21,8 @@

  #define DRIVER_AUTHOR "Matthias Urlichs <smurf at smurf.noris.de>"
  #define DRIVER_DESC "USB Driver for GSM modems"
+#define HW_bcdUSB 0x0110
+#define HP_VENDOR_ID 0x03F0

  #include <linux/kernel.h>
  #include <linux/jiffies.h>
@@ -220,6 +222,7 @@
         int i;
         int left, todo;
         struct urb *this_urb = NULL;    /* spurious */
+       struct usb_host_endpoint *ep=NULL;
         int err;
         unsigned long flags;

@@ -256,6 +259,17 @@
                 memcpy(this_urb->transfer_buffer, buf, todo);
                 this_urb->transfer_buffer_length = todo;

+                if((HP_VENDOR_ID == port->serial->dev->descriptor.idVendor)
+                  && (HW_bcdUSB != port->serial->dev->descriptor.bcdUSB)){
+                  ep = usb_pipe_endpoint(this_urb->dev, this_urb->pipe);
+                  if(ep && (0 != this_urb->transfer_buffer_length)
+                    && (0 == this_urb->transfer_buffer_length %
+                    ep->desc.wMaxPacketSize)){
+                    this_urb->transfer_flags |= URB_ZERO_PACKET;
+                    }
+                }
+
+
                 spin_lock_irqsave(&intfdata->susp_lock, flags);
                 if (intfdata->suspended) {
                         usb_anchor_urb(this_urb, &portdata->delayed);

--- drivers/net/usb/cdc_mbim.c.orig     2016-11-08 12:33:55.430201286 +0100
+++ drivers/net/usb/cdc_mbim.c  2016-11-08 12:39:56.800201286 +0100
@@ -626,6 +626,9 @@
         { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, USB_CLASS_COMM, 
USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
           .driver_info = (unsigned long)&cdc_mbim_info_ndp_to_end,
         },
+       { USB_VENDOR_AND_INTERFACE_INFO(0x03f0, USB_CLASS_COMM, 
USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
+         .driver_info = (unsigned long)&cdc_mbim_info_ndp_to_end,
+       },
         /* default entry */
         { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, 
USB_CDC_PROTO_NONE),
           .driver_info = (unsigned long)&cdc_mbim_info_zlp,


regards
Harald



More information about the ModemManager-devel mailing list