Re: =?utf-8?B?562U5aSNOg==?= MM: Non QMI Huawei modems without PPP support?



Olof Ermis <olof ermis gmail com> writes:

> 2012/11/12 Bjørn Mork <bjorn mork no>:
>> Olof Ermis <olof ermis gmail com> writes:
>>
>>> Hi!
>>>
>>> I can just verify that on the Huawei E3276 modem i can connect,
>>> disconnect and query using the AT commands below.
>>>
>>> I however don't get any network. I have patched cdc_ncm with:
>>>
>>>       /* 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,
>>>       },
>>>
>>> Any recommendations on what to debug / configure?
>>
>> Verify that you have built and installed the patched cdc_ncm by
>> e.g. doing "modinfo cdc_ncm".  You should see something like this:
>>
>> filename:       /lib/modules/3.7.0-rc3+/kernel/drivers/net/usb/cdc_ncm.ko
>> license:        Dual BSD/GPL
>> description:    USB CDC NCM host driver
>> author:         Hans Petter Selasky
>> alias:          usb:v*p*d*dc*dsc*dp*ic02isc0Dip00in*
>> alias:          usb:v12D1p*d*dc*dsc*dp*icFFisc02ip46in*
>> alias:          usb:v12D1p*d*dc*dsc*dp*icFFisc02ip16in*
>> alias:          usb:v0930p*d*dc*dsc*dp*ic02isc0Dip00in*
>> alias:          usb:v413Cp*d*dc*dsc*dp*ic02isc0Dip00in*
>> alias:          usb:v0BDBp*d*dc*dsc*dp*ic02isc0Dip00in*
>> depends:        usbnet,usbcore
>> vermagic:       3.7.0-rc3+ SMP mod_unload modversions
>>
>>
>> The interesting part is of course the two aliases with 12D1.  You can do a
>>
>>   grep . /sys/bus/usb/devices/*/modalias
>
> I get:
>
> root@oloflinux:~# modinfo cdc_ncm
> filename:       /lib/modules/3.7.0-rc4+/kernel/drivers/net/usb/cdc_ncm.ko
> license:        Dual BSD/GPL
> description:    USB CDC NCM host driver
> author:         Hans Petter Selasky
> srcversion:     93D35726A53CD81FD507A23
> alias:          usb:v*p*d*dc*dsc*dp*ic02isc0Dip00in*
> alias:          usb:v12D1p*d*dc*dsc*dp*icFFisc02ip46in*
> alias:          usb:v12D1p*d*dc*dsc*dp*icFFisc02ip16in*
> alias:          usb:v0930p*d*dc*dsc*dp*ic02isc0Dip00in*
> alias:          usb:v413Cp*d*dc*dsc*dp*ic02isc0Dip00in*
> alias:          usb:v0BDBp*d*dc*dsc*dp*ic02isc0Dip00in*
> depends:        usbnet
> intree:         Y
> vermagic:       3.7.0-rc4+ SMP mod_unload modversions 686
>
>
> root@oloflinux:~# grep . /sys/bus/usb/devices/*/modalias
> /sys/bus/usb/devices/1-0:1.0/modalias:usb:v1D6Bp0002d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/2-0:1.0/modalias:usb:v1D6Bp0002d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/2-6:1.0/modalias:usb:v12D1p1506d0102dc00dsc00dp00icFFisc02ip12in00
> /sys/bus/usb/devices/2-6:1.1/modalias:usb:v12D1p1506d0102dc00dsc00dp00icFFisc02ip16in01
> /sys/bus/usb/devices/2-6:1.2/modalias:usb:v12D1p1506d0102dc00dsc00dp00ic08isc06ip50in02
> /sys/bus/usb/devices/2-6:1.3/modalias:usb:v12D1p1506d0102dc00dsc00dp00ic08isc06ip50in03
> /sys/bus/usb/devices/3-0:1.0/modalias:usb:v1D6Bp0001d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/4-0:1.0/modalias:usb:v1D6Bp0001d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/5-0:1.0/modalias:usb:v1D6Bp0001d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/5-1:1.0/modalias:usb:v045Ep00B4d0143dc00dsc00dp00ic03isc01ip01in00
> /sys/bus/usb/devices/5-1:1.1/modalias:usb:v045Ep00B4d0143dc00dsc00dp00ic03isc00ip00in01
> /sys/bus/usb/devices/5-2:1.0/modalias:usb:v045Ep0039d0300dc00dsc00dp00ic03isc01ip02in00
> /sys/bus/usb/devices/6-0:1.0/modalias:usb:v1D6Bp0001d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/7-0:1.0/modalias:usb:v1D6Bp0001d0307dc09dsc00dp00ic09isc00ip00in00
> /sys/bus/usb/devices/8-0:1.0/modalias:usb:v1D6Bp0001d0307dc09dsc00dp00ic09isc00ip00in00
>
> So it looks like alias  usb:v12D1p*d*dc*dsc*dp*icFFisc02ip16in* should match
>
> /sys/bus/usb/devices/2-6:1.1/modalias:usb:v12D1p1506d0102dc00dsc00dp00icFFisc02ip16in01


Yes, it should.  And given the unnecessarily noisy error path in
cdc_ncm_bind(), you should at least see this message in the log:

	dev_info(&dev->udev->dev, "bind() failure\n");

if anything fails while probing.  Are you sure no other driver is bound
to the #1 interface?  lsusb -t will tell.  Try binding manually with

echo '2-6:1.1' >/sys/bus/usb/drivers/cdc_ncm/bind

If you still don't see anything in the log, then I have no clue...



Bjørn


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]