Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
sierra wireless mc8035
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
grey_dot
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2012
Posts: 142

PostPosted: Mon Jun 10, 2013 2:49 pm    Post subject: sierra wireless mc8035 Reply with quote

I've got this device in my shiny new laptop, but I can't get it working. It's a broadband 3g modem, and it should be dealt with using several serial devices in /dev (ttyUSBx) and a network interface (wwan0). I've got only the second one, but since I cannot submit the required options (like APN and stuff) or upload the firmware, it is pretty useless to me. Anyone got any luck dealing with similiar devices using the latest kernel?

Some info:
Kernel 3.9.4, drivers sierra, qcserial and their dependencies enabled.
Bus 003 Device 005: ID 1199:9011 Sierra Wireless, Inc.

dmesg|grep serial shows this among other stuff:
[ 21.315863] usbserial: USB Serial support registered for Qualcomm USB modem

That means that usb-serial module worked, but the device nodes are still absent.
Back to top
View user's profile Send private message
grey_dot
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2012
Posts: 142

PostPosted: Tue Jun 11, 2013 10:02 am    Post subject: Reply with quote

Looks like my device just isnt supported by the qcserial driver (despite the latter having the id of my device listed in it), qcprobe() function throws error at qcserial.c:186. GobiSerial (https://github.com/casastorta/gobiserial) doesn't work either.

Last edited by grey_dot on Tue Jun 11, 2013 1:27 pm; edited 1 time in total
Back to top
View user's profile Send private message
Anon-E-moose
Watchman
Watchman


Joined: 23 May 2008
Posts: 6098
Location: Dallas area

PostPosted: Tue Jun 11, 2013 11:11 am    Post subject: Reply with quote

A cursory google of that pci id shows several posts,
perhaps this one will fix it http://forums.linuxmint.com/viewtopic.php?f=90&t=96743
It has a link to another post but the gist is that the pci id isn't in the sierra.c file.

Good luck

Edit to add: I'm running 3.9.1 and that id isn't listed in the sierra.c file in this version.
_________________
PRIME x570-pro, 3700x, 6.1 zen kernel
gcc 13, profile 17.0 (custom bare multilib), openrc, wayland
Back to top
View user's profile Send private message
grey_dot
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2012
Posts: 142

PostPosted: Tue Jun 11, 2013 12:24 pm    Post subject: Reply with quote

Anon-E-moose wrote:
A cursory google of that pci id shows several posts,
perhaps this one will fix it http://forums.linuxmint.com/viewtopic.php?f=90&t=96743
It has a link to another post but the gist is that the pci id isn't in the sierra.c file.

Good luck

Edit to add: I'm running 3.9.1 and that id isn't listed in the sierra.c file in this version.


Tried that already. The ID is listed in qcserial.c. I have already tried blacklisting qcserial and adding that id to sierra.c, but sierra driver starts throwing errors and eventually causes the system to hang :(
The driver you linked is for the older kernels, and it seems to be included in the mainline kernel since around 3.5.0. I have also tried older distributions reported to work (suse 12.1, ubuntu 11.xx), but no luck. I'll try to check out the windows driver internals later.
Back to top
View user's profile Send private message
Anon-E-moose
Watchman
Watchman


Joined: 23 May 2008
Posts: 6098
Location: Dallas area

PostPosted: Tue Jun 11, 2013 12:39 pm    Post subject: Reply with quote

I didn't do any in depth research :) , but I did run across this.
I don't know if you already have it enabled but it deals with the internet part of that chip

http://cateee.net/lkddb/web-lkddb/USB_NET_QMI_WWAN.html

Quote:
This driver will only drive the ethernet part of the chips. The devices require additional configuration to be usable.


Good luck
_________________
PRIME x570-pro, 3700x, 6.1 zen kernel
gcc 13, profile 17.0 (custom bare multilib), openrc, wayland
Back to top
View user's profile Send private message
grey_dot
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2012
Posts: 142

PostPosted: Tue Jun 11, 2013 12:45 pm    Post subject: Reply with quote

Anon-E-moose wrote:
I didn't do any in depth research :) , but I did run across this.
I don't know if you already have it enabled but it deals with the internet part of that chip

http://cateee.net/lkddb/web-lkddb/USB_NET_QMI_WWAN.html

Quote:
This driver will only drive the ethernet part of the chips. The devices require additional configuration to be usable.


Good luck


Thats what I'm talking about. To configure the device I need the serial nodes (ttyUSBx) present in /dev. They are absent, and that's what I'm trying to fix.
Back to top
View user's profile Send private message
grey_dot
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2012
Posts: 142

PostPosted: Tue Jun 11, 2013 12:48 pm    Post subject: Reply with quote

After building the kernel with qmi_wwan enabled, I get this in dmesg. I had to load qcserial by hand this time because it wasnt loaded by the device manager for some reason.
Code:
[   35.883628] usb 3-1.5: new high-speed USB device number 5 using ehci-pci
[   35.968950] usb 3-1.5: config 2 has an invalid interface number: 5 but max is 1
[   35.968962] usb 3-1.5: config 2 has an invalid interface number: 6 but max is 1
[   35.968964] usb 3-1.5: config 2 has an invalid interface number: 6 but max is 1
[   35.968965] usb 3-1.5: config 2 has no interface number 0
[   35.968966] usb 3-1.5: config 2 has no interface number 1
[   35.969696] usb 3-1.5: New USB device found, idVendor=1199, idProduct=9011
[   35.969706] usb 3-1.5: New USB device strings: Mfr=4, Product=3, SerialNumber=0
[   35.969712] usb 3-1.5: Product: MC8305
[   35.969717] usb 3-1.5: Manufacturer: Sierra Wireless Inc
[   36.166522] usbcore: registered new interface driver cdc_wdm
[   36.200861] qmi_wwan: probe of 3-1.5:2.5 failed with error -22
[   36.200899] usbcore: registered new interface driver qmi_wwan
[   36.223947] usbcore: registered new interface driver cdc_ncm
[   36.265636] cdc_mbim 3-1.5:2.5: cdc-wdm0: USB WDM device
[   36.265813] cdc_mbim 3-1.5:2.5 wwan0: register 'cdc_mbim' at usb-0000:00:1a.0-1.5, CDC MBIM, 1e:5a:79:14:82:99
[   36.265848] usbcore: registered new interface driver cdc_mbim
/* modprobe qcserial */
[  392.522249] usbcore: registered new interface driver usbserial
[  392.522285] usbcore: registered new interface driver usbserial_generic
[  392.522308] usbserial: USB Serial support registered for generic
[  392.538277] usbcore: registered new interface driver qcserial
[  392.538324] usbserial: USB Serial support registered for Qualcomm USB modem
Back to top
View user's profile Send private message
Anon-E-moose
Watchman
Watchman


Joined: 23 May 2008
Posts: 6098
Location: Dallas area

PostPosted: Tue Jun 11, 2013 12:57 pm    Post subject: Reply with quote

http://cateee.net/lkddb/web-lkddb/USB_SERIAL_QUALCOMM.html - serial nodes (assumption on my part)

http://cateee.net/lkddb/web-lkddb/USB_USBNET.html - I believe this got triggered on by select QMI, but you might check

Edit to add: I have no idea why they aren't all interrelated and selected as a group.
_________________
PRIME x570-pro, 3700x, 6.1 zen kernel
gcc 13, profile 17.0 (custom bare multilib), openrc, wayland
Back to top
View user's profile Send private message
bmork
n00b
n00b


Joined: 12 Jun 2013
Posts: 1

PostPosted: Wed Jun 12, 2013 6:14 am    Post subject: Reply with quote

Hello,

I tried sending you the below, but your email bounced. I've resent it juts now in case this was a temporary problem, but I thought you'd want to know in any case (your address is of course anonymized):
Code:

   ----- The following addresses had permanent fatal errors -----
<user@example.com>
    (reason: 554 Recipient is not recognized. Relay access denied.)

   ----- Transcript of session follows -----
... while talking to mx.example.com.:
>>> DATA
<<< 554 Recipient is not recognized. Relay access denied.
554 5.0.0 Service unavailable
<<< 503 Bad sequence of commands.

Reporting-MTA: dns; mymta.example.net
Arrival-Date: Tue, 11 Jun 2013 22:00:03 +0200

Final-Recipient: RFC822; user@example.com
Action: failed
Status: 5.0.0
Remote-MTA: DNS; mx.example.com
Diagnostic-Code: SMTP; 554 Recipient is not recognized. Relay access denied.
Last-Attempt-Date: Wed, 12 Jun 2013 00:58:00 +0200


And saving the data here for Google is useful in any case I believe:

Quote:

Thanks for the info. This is the first time I've seen anyone mention
the existence of MBIM firmware for the MC8305. That's very useful
information, and I am hopig you will start exploring the wonderful world
of MBIM as soon as the ModemManager support is there :)

But first, let's make your device work the old fashioned way. Looking
at the kernel log, I see that your firmware has 2 configurations where
the second one is MBIM. This configuration has neither QMI nor serial,
only a single MBIM function using 2 interfaces:


[ 35.883628] usb 3-1.5: new high-speed USB device number 5 using ehci-pci
[ 35.968950] usb 3-1.5: config 2 has an invalid interface number: 5 but max is 1
[ 35.968962] usb 3-1.5: config 2 has an invalid interface number: 6 but max is 1
[ 35.968964] usb 3-1.5: config 2 has an invalid interface number: 6 but max is 1
[ 35.968965] usb 3-1.5: config 2 has no interface number 0
[ 35.968966] usb 3-1.5: config 2 has no interface number 1
[ 35.969696] usb 3-1.5: New USB device found, idVendor=1199, idProduct=9011
[ 35.969706] usb 3-1.5: New USB device strings: Mfr=4, Product=3, SerialNumber=0
[ 35.969712] usb 3-1.5: Product: MC8305
[ 35.969717] usb 3-1.5: Manufacturer: Sierra Wireless Inc
[ 36.166522] usbcore: registered new interface driver cdc_wdm
[ 36.200861] qmi_wwan: probe of 3-1.5:2.5 failed with error -22
[ 36.200899] usbcore: registered new interface driver qmi_wwan
[ 36.223947] usbcore: registered new interface driver cdc_ncm
[ 36.265636] cdc_mbim 3-1.5:2.5: cdc-wdm0: USB WDM device
[ 36.265813] cdc_mbim 3-1.5:2.5 wwan0: register 'cdc_mbim' at usb-0000:00:1a.0-1.5, CDC MBIM, 1e:5a:79:14:82:99
[ 36.265848] usbcore: registered new interface driver cdc_mbim


But I am pretty sure config #1 has both QMI and serial. You only need
to switch to it:

echo 1 > /sys/bus/usb/devices/3-1.5/bConfigurationValue

That should make the qmi_wwan and serial ports work. Maybe. There are
caveats. See below.

Linux selects config #2 by default because it prefers proper classes
(which MBIM is) to vendor specific interfaces. This is similar to what
happens with my Sierra Wireless MC7710 module. The easiest way to see
all configurations is by mounting debugfs and look in
/sys/kernel/debug/usb/devices:

mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/usb/devices


My MC7710 look like this, and I assume your MC8305 is similar (but with
slightly different interface numbers):


T: Bus=03 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 21 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 2
P: Vendor=1199 ProdID=68a2 Rev= 0.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=MC7710
S: SerialNumber=3581780400xxxxx
C: #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#=19 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#=20 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
C:* #Ifs= 2 Cfg#= 2 Atr=e0 MxPwr= 0mA
A: FirstIf#=12 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#=12 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I: If#=13 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#=13 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms



In theory, switching between these two alternate confis should work
pretty much like unplugging a MBIM modem and plugging a QMI modem
instead. But if your module is like mine, then there are a few firmware
bugs which makes the switch safe only immediately after booting the
module. Otherwise the device may appear to have switched, but not work
properly. In some cases it might also cause an infinite number of very
short packets, which will make your CPU load go up to extreme heights
for no apparent reason.

Based on this I believe the safest is to create an udev rule to select
the wanted configuration at device hotplug time. There is an example
rule for the MC7710 here:
http://ubuntuforums.org/showthread.php?t=2121838&p=12550186#post12550186

You'll need to adapt the device ID, but other than that the rule should
just work.


But I am very interested in any experiences with MBIM on this module.
In particular if it requires the same quirks as the MC7710 (because that
means we need to add a quirk to the driver). If you want to explore it
further then you should start with libmbim:
http://www.freedesktop.org/wiki/Software/libmbim/


In case a driver quirk is needed, then that will be an entry like this
in drivers/net/usb/cdc_mbim.c next to the one for the MC7710:

{ USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x9011, USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
.driver_info = (unsigned long)&cdc_mbim_info_zlp,
},

The symptoms if this is needed is that very short packets (e.g small
pings) work fine, but longer packets and comunication in general fails
completely. It just stalls.


And I also hope you can help meavoid this ugly error from qmi_wwan:

[ 36.200861] qmi_wwan: probe of 3-1.5:2.5 failed with error -22

That error appears because qmi_wwan matches exclusively on interface
number, so it matches the MBIM control interface which obviously is
interface #5 on this device. The match is actually a very odd and
unconfirmed entry I got from looking at a Windows driver. It even got a
question mark in the driver:

{QMI_GOBI_DEVICE(0x1199, 0x9011)}, /* Sierra Wireless Gobi 2000 Modem device (MC8305) */
{QMI_FIXED_INTF(0x1199, 0x9011, 5)}, /* alternate interface number!? */

Based on your log above, I am starting to wonder if this entry is just
plain wrong and should be removed. If you could send me either the
/sys/kernel/debug/usb/devices part describing your modem or the output
of "lsusb -vd 1199:9011", then I think we can verify that based on it.
Back to top
View user's profile Send private message
grey_dot
Tux's lil' helper
Tux's lil' helper


Joined: 15 Jul 2012
Posts: 142

PostPosted: Thu Jun 13, 2013 11:32 am    Post subject: Reply with quote

bmork wrote:
Hello,

I tried sending you the below, but your email bounced. I've resent it juts now in case this was a temporary problem, but I thought you'd want to know in any case (your address is of course anonymized):
Code:

   ----- The following addresses had permanent fatal errors -----
<user@example.com>
    (reason: 554 Recipient is not recognized. Relay access denied.)

   ----- Transcript of session follows -----
... while talking to mx.example.com.:
>>> DATA
<<< 554 Recipient is not recognized. Relay access denied.
554 5.0.0 Service unavailable
<<< 503 Bad sequence of commands.

Reporting-MTA: dns; mymta.example.net
Arrival-Date: Tue, 11 Jun 2013 22:00:03 +0200

Final-Recipient: RFC822; user@example.com
Action: failed
Status: 5.0.0
Remote-MTA: DNS; mx.example.com
Diagnostic-Code: SMTP; 554 Recipient is not recognized. Relay access denied.
Last-Attempt-Date: Wed, 12 Jun 2013 00:58:00 +0200


And saving the data here for Google is useful in any case I believe:

Quote:

Thanks for the info. This is the first time I've seen anyone mention
the existence of MBIM firmware for the MC8305. That's very useful
information, and I am hopig you will start exploring the wonderful world
of MBIM as soon as the ModemManager support is there :)

But first, let's make your device work the old fashioned way. Looking
at the kernel log, I see that your firmware has 2 configurations where
the second one is MBIM. This configuration has neither QMI nor serial,
only a single MBIM function using 2 interfaces:


[ 35.883628] usb 3-1.5: new high-speed USB device number 5 using ehci-pci
[ 35.968950] usb 3-1.5: config 2 has an invalid interface number: 5 but max is 1
[ 35.968962] usb 3-1.5: config 2 has an invalid interface number: 6 but max is 1
[ 35.968964] usb 3-1.5: config 2 has an invalid interface number: 6 but max is 1
[ 35.968965] usb 3-1.5: config 2 has no interface number 0
[ 35.968966] usb 3-1.5: config 2 has no interface number 1
[ 35.969696] usb 3-1.5: New USB device found, idVendor=1199, idProduct=9011
[ 35.969706] usb 3-1.5: New USB device strings: Mfr=4, Product=3, SerialNumber=0
[ 35.969712] usb 3-1.5: Product: MC8305
[ 35.969717] usb 3-1.5: Manufacturer: Sierra Wireless Inc
[ 36.166522] usbcore: registered new interface driver cdc_wdm
[ 36.200861] qmi_wwan: probe of 3-1.5:2.5 failed with error -22
[ 36.200899] usbcore: registered new interface driver qmi_wwan
[ 36.223947] usbcore: registered new interface driver cdc_ncm
[ 36.265636] cdc_mbim 3-1.5:2.5: cdc-wdm0: USB WDM device
[ 36.265813] cdc_mbim 3-1.5:2.5 wwan0: register 'cdc_mbim' at usb-0000:00:1a.0-1.5, CDC MBIM, 1e:5a:79:14:82:99
[ 36.265848] usbcore: registered new interface driver cdc_mbim


But I am pretty sure config #1 has both QMI and serial. You only need
to switch to it:

echo 1 > /sys/bus/usb/devices/3-1.5/bConfigurationValue

That should make the qmi_wwan and serial ports work. Maybe. There are
caveats. See below.

Linux selects config #2 by default because it prefers proper classes
(which MBIM is) to vendor specific interfaces. This is similar to what
happens with my Sierra Wireless MC7710 module. The easiest way to see
all configurations is by mounting debugfs and look in
/sys/kernel/debug/usb/devices:

mount -t debugfs none /sys/kernel/debug
cat /sys/kernel/debug/usb/devices


My MC7710 look like this, and I assume your MC8305 is similar (but with
slightly different interface numbers):


T: Bus=03 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 21 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 2
P: Vendor=1199 ProdID=68a2 Rev= 0.06
S: Manufacturer=Sierra Wireless, Incorporated
S: Product=MC7710
S: SerialNumber=3581780400xxxxx
C: #Ifs= 6 Cfg#= 1 Atr=e0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#=19 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#=20 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
C:* #Ifs= 2 Cfg#= 2 Atr=e0 MxPwr= 0mA
A: FirstIf#=12 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#=12 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I: If#=13 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#=13 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms



In theory, switching between these two alternate confis should work
pretty much like unplugging a MBIM modem and plugging a QMI modem
instead. But if your module is like mine, then there are a few firmware
bugs which makes the switch safe only immediately after booting the
module. Otherwise the device may appear to have switched, but not work
properly. In some cases it might also cause an infinite number of very
short packets, which will make your CPU load go up to extreme heights
for no apparent reason.

Based on this I believe the safest is to create an udev rule to select
the wanted configuration at device hotplug time. There is an example
rule for the MC7710 here:
http://ubuntuforums.org/showthread.php?t=2121838&p=12550186#post12550186

You'll need to adapt the device ID, but other than that the rule should
just work.


But I am very interested in any experiences with MBIM on this module.
In particular if it requires the same quirks as the MC7710 (because that
means we need to add a quirk to the driver). If you want to explore it
further then you should start with libmbim:
http://www.freedesktop.org/wiki/Software/libmbim/


In case a driver quirk is needed, then that will be an entry like this
in drivers/net/usb/cdc_mbim.c next to the one for the MC7710:

{ USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x9011, USB_CLASS_COMM, USB_CDC_SUBCLASS_MBIM, USB_CDC_PROTO_NONE),
.driver_info = (unsigned long)&cdc_mbim_info_zlp,
},

The symptoms if this is needed is that very short packets (e.g small
pings) work fine, but longer packets and comunication in general fails
completely. It just stalls.


And I also hope you can help meavoid this ugly error from qmi_wwan:

[ 36.200861] qmi_wwan: probe of 3-1.5:2.5 failed with error -22

That error appears because qmi_wwan matches exclusively on interface
number, so it matches the MBIM control interface which obviously is
interface #5 on this device. The match is actually a very odd and
unconfirmed entry I got from looking at a Windows driver. It even got a
question mark in the driver:

{QMI_GOBI_DEVICE(0x1199, 0x9011)}, /* Sierra Wireless Gobi 2000 Modem device (MC8305) */
{QMI_FIXED_INTF(0x1199, 0x9011, 5)}, /* alternate interface number!? */

Based on your log above, I am starting to wonder if this entry is just
plain wrong and should be removed. If you could send me either the
/sys/kernel/debug/usb/devices part describing your modem or the output
of "lsusb -vd 1199:9011", then I think we can verify that based on it.


Thanks for your reply. I've mailed you the lsusb output. The udev rules to work around this issue would be
Code:


ACTION!="add|change", GOTO="mbim_to_qmi_rules_end"

SUBSYSTEM!="usb", GOTO="mbim_to_qmi_rules_end"

# ignore any device with only one configuration
ATTR{bNumConfigurations}=="1", GOTO="mbim_to_qmi_rules_end"

# force Sierra Wireless MC8035 to configuration #1
ATTR{idVendor}=="1199",ATTR{idProduct}=="9011",ATTR{bConfigurationValue}="1"

LABEL="mbim_to_qmi_rules_end"

in case anybody needs it. I suppose the problem is solved for now.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum