Thomas Schäfer <tschaefer@xxxxxxxxxxx> writes: > Hi, > > Yesterday I have had a access to a new notebook with built in UMTS-device. > > The live-cd with kernel 3.7 tried qmi_wwan, but failed: > > [ 12.115215] qmi_wwan 1-1.5:2.5: CDC functional descriptors missing Wow, that brings back memories of old bugs... The qmi_wwan probing had some pretty bad built-in assumptions up to and including v3.8. This one in particular, would make it require a CDC header and Union descriptor if the probed interface had anything but 3 endpoints. We've also later discovered that interface #5 on this device never should have been handled by qmi_wwan, and it was removed from the driver in Linux v3.11. AFAIK it is not a QMI interface, but more likely a MBIM interface? > [ 12.115226] qmi_wwan: probe of 1-1.5:2.5 failed with error -1 > [ 12.115244] usbcore: registered new interface driver qmi_wwan > > I tried manually the option-driver, but then the system is crashed. > > Any hints, test proposals? > > > Thomas > > > > > > Bus 001 Device 008: ID 1199:9011 Sierra Wireless, Inc. > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.00 > bDeviceClass 239 Miscellaneous Device > bDeviceSubClass 2 ? > bDeviceProtocol 1 Interface Association > bMaxPacketSize0 64 > idVendor 0x1199 Sierra Wireless, Inc. > idProduct 0x9011 > bcdDevice 0.02 > iManufacturer 4 Sierra Wireless Inc > iProduct 3 MC8305 > iSerial 0 > bNumConfigurations 2 Good. You have two alternate configs here. > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 157 > bNumInterfaces 4 > bConfigurationValue 1 > iConfiguration 1 Qualcomm Configuration The first one is assumed to be a standard Gobi2K config, and 4 interfaces is correct: * 0: QMI/net * 1: DM/DIAG (use libqcdm from ModemManager for communication) * 2: AT-capable modem port * 3: NMEA > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 3 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 255 Vendor Specific Subclass > bInterfaceProtocol 255 Vendor Specific Protocol > iInterface 0 > ** UNRECOGNIZED: 05 24 00 10 01 > ** UNRECOGNIZED: 05 24 15 00 01 > ** UNRECOGNIZED: 05 24 06 03 03 > ** UNRECOGNIZED: 15 24 12 20 01 98 b0 6a 49 b0 9e 48 96 94 46 d9 9a 28 ca 4e 5d > ** UNRECOGNIZED: 06 24 13 00 01 20 Hmm, MDLM and OBEX descriptors. Uhm, OK. > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 200 > bNumInterfaces 5 > bConfigurationValue 2 > iConfiguration 2 Qualcomm Configuration Then there is a second config, which is the interesting one. > bmAttributes 0xe0 > Self Powered > Remote Wakeup > MaxPower 500mA > Interface Association: > bLength 8 > bDescriptorType 11 > bFirstInterface 5 > bInterfaceCount 2 > bFunctionClass 2 Communications > bFunctionSubClass 14 > bFunctionProtocol 0 > iFunction 0 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 5 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 2 Communications > bInterfaceSubClass 14 > bInterfaceProtocol 0 > iInterface 0 > CDC Header: > bcdCDC 1.10 > UNRECOGNIZED CDC: 0c 24 1b 00 01 00 10 10 80 e0 0f 20 Yes, that's a Sierra MBIM function all right. And the reason Linux selects this configuration by default: The first interface has a proper class instead of ff. But do note the lack of a CDC Union descriptor here. This is a well known Sierra bug. But it shouldn't be a problem. We got a workaround in the initial cdc_mbim version already. > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 255 Vendor Specific Subclass > bInterfaceProtocol 255 Vendor Specific Protocol The rest of these interfaces look like the same serial functions as in cfg #1. If that works, then it is interesting. I can configure my MC7710 to do something similar, but all configurations mixing serial functions and MBIM crashes the firmware. I guess you could be luckier... Anyway, if you want to use this device with any Linux version before v3.8 then you just have to use cfg #1. That's the one with a QMI function. And if this device has the same ZLP bug as the other Sierra MBIM devices we've seen, then the MBIM function won't work in v3.8 to v3.12 either so you are stuck with cfg #1 there as well. But v3.13 should work. Any MBIM success with this device would be interesting to register. Note that there are also most likely firmware bugs affecting configuration switching. My MC7710 will auto-detect the management protocol instead of using the USB configuration number to set it, meaning that a QMI probe will make the MBIM function speak QMI... And switching from MBIM mode to QMI mode "too late" (I don't have an exact number here, but fast manual switching does work so it's probably a few seconds) makes the firmware send 0 bytes packets as fast as it can after receiving a DHCP request. Which won't kill your PC anymore (but probably will in v3.7!). You'll still notice that the wwan interface doesn't work and your fan starts going faster... So use a recent kernel and use udev to set the wanted configuration on device discovery… Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html