Tell me more ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have problem with my new huawei E3276 usb modem. I have found a solution which I quote (original post: https://answers.launchpad.net/ubuntu/+source/gnome-nettool/+question/211095):

"With the support of linux community the Huawei E3276 is supported now (see thread here http://lists.freedesktop.org/archives/libqmi-devel/2012-November/thread.html) . You need an updated cdc_ncm.ko driver and then connect with

echo -e "AT^NDISDUP=1,1,\"online.telia.se\"\r" > /dev/ttyUSB0 dhclient wwan0

Assuming you have configured usb modeswitch beforehand with:

echo "12d1 1506" > /sys/bus/usb-serial/drivers/option1/new_id

Works with telia in Sweden.

Bjorn will push this into the linux main branch soon, but if you are eager to hack, you can update

drivers/net/usb/cdc_ncm.c

with this:

diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c index 4cd582a..74fab1a 100644 --- a/drivers/net/usb/cdc_ncm.c +++ b/drivers/net/usb/cdc_ncm.c @@ -540,10 +540,12 @@ advance: (ctx->ether_desc == NULL) || (ctx->control != intf)) goto error;

  • /* claim interfaces, if any */
  • temp = usb_driver_claim_interface(driver, ctx->data, dev);
  • if (temp)
  • goto error;
  • /* claim data interface, if different from control */
  • if (ctx->data != ctx->control) {
  • temp = usb_driver_claim_interface(driver, ctx->data, dev);
  • if (temp)
  • goto error;
  • }

    iface_no = ctx->data->cur_altsetting->desc.bInterfaceNumber;

@@ -623,6 +625,10 @@ static void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf)

tasklet_kill(&ctx->bh);

  • /* handle devices with combined control and data interface */
  • if (ctx->control == ctx->data)
  • ctx->data = NULL; + /* disconnect master --> disconnect slave */ if (intf == ctx->control && ctx->data) { usb_set_intfdata(ctx->data, NULL); @@ -1245,6 +1251,14 @@ static const struct usb_device_id cdc_devs[] = { .driver_info = (unsigned long) &wwan_info, },

  • /* Huawei NCM devices disguised as vendor specific */

  • { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, 0xff, 0x02, 0x16),
  • .driver_info = (unsigned long)&wwan_info,
  • },
  • { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, 0xff, 0x02, 0x46),
  • .driver_info = (unsigned long)&wwan_info,
  • }, + /* Generic CDC-NCM devices */ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_NCM, USB_CDC_PROTO_NONE),"

I have a fresh installation of Ubuntu 12.10 and my problem is first of all I don't know how to edit in

drivers/net/usb/cdc_ncm.c.

Do I have to install something before I can edit cdc_ncm.c? Thanks for your help!

share|improve this question

Know someone who can answer? Share a link to this question via email, Google+, Twitter, or Facebook.

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.