<div dir="ltr"><div><div>The output is:<br><br>AT!UDUSBCOMP=?<br><br>0  - reserved                                     NOT SUPPORTED<br>1  - DM   AT                                      SUPPORTED<br><br></div>I do not know why the value is 6, when only 1 and 0 are listed as options.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jul 25, 2015 at 12:35 PM, Markus Gothe <span dir="ltr"><<a href="mailto:nietzsche@lysator.liu.se" target="_blank">nietzsche@lysator.liu.se</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">And what does "AT!UDUSBCOMP=?" gives you?<span class="HOEnZb"><font color="#888888"><br></font></span></p><span class="HOEnZb"><font color="#888888">
<p dir="ltr">//M</p></font></span><div class="HOEnZb"><div class="h5">
<p dir="ltr">Den 25 jul 2015 3:21 fm skrev Collin McMillan <<a href="mailto:cmc@nd.edu" target="_blank">cmc@nd.edu</a>>:<br>
><br>
> I power cycled and then changed the configuration to 1 again.  Then I ran lsusb -v (output below), and then ran the AT commands:<br>
><br>
> AT                                                                                           <br>
>                                                                                              <br>
> OK                                                                                           <br>
> AT!ENTERCND="A710"                                                                           <br>
>                                                                                              <br>
> OK                                                                                           <br>
> AT!UDUSBCOMP?                                                                                <br>
>                                                                                              <br>
> !UDUSBCOMP: 6                                                                                <br>
><br>
> OK<br>
><br>
> And below, here is the output of lsusb -v just after I changed the configuration.<br>
><br>
> Bus 001 Device 002: ID 1199:901f Sierra Wireless, Inc. <br>
> Device Descriptor:<br>
>   bLength                18<br>
>   bDescriptorType         1<br>
>   bcdUSB               2.00<br>
>   bDeviceClass            0 (Defined at Interface level)<br>
>   bDeviceSubClass         0 <br>
>   bDeviceProtocol         0 <br>
>   bMaxPacketSize0        64<br>
>   idVendor           0x1199 Sierra Wireless, Inc.<br>
>   idProduct          0x901f <br>
>   bcdDevice            0.06<br>
>   iManufacturer           1 <br>
>   iProduct                2 <br>
>   iSerial                 3 <br>
>   bNumConfigurations      1<br>
>   Configuration Descriptor:<br>
>     bLength                 9<br>
>     bDescriptorType         2<br>
>     wTotalLength          160<br>
>     bNumInterfaces          4<br>
>     bConfigurationValue     1<br>
>     iConfiguration          0 <br>
>     bmAttributes         0xe0<br>
>       Self Powered<br>
>       Remote Wakeup<br>
>     MaxPower              500mA<br>
>     Interface Descriptor:<br>
>       bLength                 9<br>
>       bDescriptorType         4<br>
>       bInterfaceNumber        0<br>
>       bAlternateSetting       0<br>
>       bNumEndpoints           2<br>
>       bInterfaceClass       255 Vendor Specific Class<br>
>       bInterfaceSubClass    255 Vendor Specific Subclass<br>
>       bInterfaceProtocol    255 Vendor Specific Protocol<br>
>       iInterface              0 <br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x81  EP 1 IN<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x01  EP 1 OUT<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>     Interface Descriptor:<br>
>       bLength                 9<br>
>       bDescriptorType         4<br>
>       bInterfaceNumber        2<br>
>       bAlternateSetting       0<br>
>       bNumEndpoints           3<br>
>       bInterfaceClass       255 Vendor Specific Class<br>
>       bInterfaceSubClass      0 <br>
>       bInterfaceProtocol      0 <br>
>       iInterface              0 <br>
>       ** UNRECOGNIZED:  05 24 00 10 01<br>
>       ** UNRECOGNIZED:  05 24 01 00 00<br>
>       ** UNRECOGNIZED:  04 24 02 02<br>
>       ** UNRECOGNIZED:  05 24 06 00 00<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x83  EP 3 IN<br>
>         bmAttributes            3<br>
>           Transfer Type            Interrupt<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x000c  1x 12 bytes<br>
>         bInterval               9<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x82  EP 2 IN<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x02  EP 2 OUT<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>     Interface Descriptor:<br>
>       bLength                 9<br>
>       bDescriptorType         4<br>
>       bInterfaceNumber        3<br>
>       bAlternateSetting       0<br>
>       bNumEndpoints           3<br>
>       bInterfaceClass       255 Vendor Specific Class<br>
>       bInterfaceSubClass      0 <br>
>       bInterfaceProtocol      0 <br>
>       iInterface              0 <br>
>       ** UNRECOGNIZED:  05 24 00 10 01<br>
>       ** UNRECOGNIZED:  05 24 01 00 00<br>
>       ** UNRECOGNIZED:  04 24 02 02<br>
>       ** UNRECOGNIZED:  05 24 06 00 00<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x85  EP 5 IN<br>
>         bmAttributes            3<br>
>           Transfer Type            Interrupt<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x000c  1x 12 bytes<br>
>         bInterval               9<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x84  EP 4 IN<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x03  EP 3 OUT<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>     Interface Descriptor:<br>
>       bLength                 9<br>
>       bDescriptorType         4<br>
>       bInterfaceNumber        8<br>
>       bAlternateSetting       0<br>
>       bNumEndpoints           3<br>
>       bInterfaceClass       255 Vendor Specific Class<br>
>       bInterfaceSubClass    255 Vendor Specific Subclass<br>
>       bInterfaceProtocol    255 Vendor Specific Protocol<br>
>       iInterface              0 <br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x87  EP 7 IN<br>
>         bmAttributes            3<br>
>           Transfer Type            Interrupt<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x000a  1x 10 bytes<br>
>         bInterval               9<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x86  EP 6 IN<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
>       Endpoint Descriptor:<br>
>         bLength                 7<br>
>         bDescriptorType         5<br>
>         bEndpointAddress     0x04  EP 4 OUT<br>
>         bmAttributes            2<br>
>           Transfer Type            Bulk<br>
>           Synch Type               None<br>
>           Usage Type               Data<br>
>         wMaxPacketSize     0x0200  1x 512 bytes<br>
>         bInterval               0<br>
><br>
><br>
><br>
> On Fri, Jul 24, 2015 at 7:25 PM, Markus Gothe <<a href="mailto:nietzsche@lysator.liu.se" target="_blank">nietzsche@lysator.liu.se</a>> wrote:<br>
>><br>
>> Please after switching it send an ‘lsusb -v’ of the device.<br>
>> Either you are in 'QMI-mode’ or you are not.<br>
>><br>
>> It is not a tristate… <br>
>> However try doing the ‘A710’-trick and then 'AT!UDUSBCOMP?'<br>
>><br>
>> //M<br>
>><br>
>> On 25 Jul 2015, at 00:55 , Collin McMillan <<a href="mailto:cmc@nd.edu" target="_blank">cmc@nd.edu</a>> wrote:<br>
>><br>
>>> Hi Folks,<br>
>>><br>
>>> I am poking around with a new Sierra Wireless EM7355 in a Lenovo T440p.  I've had two big problems getting it to work, one being easily solvable (<a href="https://bugs.freedesktop.org/show_bug.cgi?id=91351" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=91351</a>).<br>
>>><br>
>>> The other problem is the "FCC Authentication" trick discussed here:<br>
>>> <a href="https://bugzilla.kernel.org/show_bug.cgi?id=92101" target="_blank">https://bugzilla.kernel.org/show_bug.cgi?id=92101</a><br>
>>><br>
>>> That trick doesn't work on my modem because the EM7355 apparently doesn't support a QMI interface.  It starts up in MBIM mode.  I can switch it to QMI mode by setting bConfiguationValue in /sys/bus/usb/devices/1-10 to 1.  The device reattaches with the proper ttyUSB devices.  I can connect to ttyUSB2 with minicom and issue AT commands.  The password A701 even lets me change the maintenance settings just fine.  However, no QMI commands are possible.  Just for example:<br>
>>><br>
>>> =============================================<br>
>>> # qmicli -d /dev/cdc-wdm0 --dms-get-capabilities --verbose<br>
>>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Opening device with flags 'none'...<br>
>>> [24 Jul 2015, 18:33:31] [Debug] QMI Device at '/dev/cdc-wdm0' ready<br>
>>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Assuming service 'dms' is supported...<br>
>>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Allocating new client ID...<br>
>>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Sent message...<br>
>>> <<<<<< RAW:<br>
>>> <<<<<<   length = 16<br>
>>> <<<<<<   data   = 01:0F:00:00:00:00:00:01:22:00:04:00:01:01:00:02<br>
>>><br>
>>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Sent message (translated)...<br>
>>> <<<<<< QMUX:<br>
>>> <<<<<<   length  = 15<br>
>>> <<<<<<   flags   = 0x00<br>
>>> <<<<<<   service = "ctl"<br>
>>> <<<<<<   client  = 0<br>
>>> <<<<<< QMI:<br>
>>> <<<<<<   flags       = "none"<br>
>>> <<<<<<   transaction = 1<br>
>>> <<<<<<   tlv_length  = 4<br>
>>> <<<<<<   message     = "Allocate CID" (0x0022)<br>
>>> <<<<<< TLV:<br>
>>> <<<<<<   type       = "Service" (0x01)<br>
>>> <<<<<<   length     = 1<br>
>>> <<<<<<   value      = 02<br>
>>> <<<<<<   translated = dms<br>
>>><br>
>>> error: couldn't create client for the 'dms' service: CID allocation failed in the CTL client: Transaction timed out<br>
>>> =============================================<br>
>>><br>
>>> In addition, ModemManager reports:<br>
>>> ....<br>
>>> ModemManager[2839]: <debug> [1437767847.000186] [mm-port-probe.c:435] port_qmi_open_ready(): (usbmisc/cdc-wdm0) error checking QMI support: 'Transaction timed out'<br>
>>> ModemManager[2839]: <debug> [1437767847.000226] [mm-port-probe.c:290] mm_port_probe_set_result_qmi(): (usbmisc/cdc-wdm0) port is not QMI-capable<br>
>>> ....<br>
>>><br>
>>> I have also read reports of some of these modems not supporting QMI, only MBIM.  I do have the latest firmware from Sierra.<br>
>>><br>
>>> SO, I am now trying to get the QMI over MBIM procedure going, which is rumored to exist. :-)<br>
>>> <a href="http://lists.freedesktop.org/archives/modemmanager-devel/2015-July/002087.html" target="_blank">http://lists.freedesktop.org/archives/modemmanager-devel/2015-July/002087.html</a><br>
>>><br>
>>> Apparently it is straight forward once you know what to do -- just send a QMI message to MBIM service d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3.  I can verify that my modem has this service with:<br>
>>> mbimcli -d /dev/cdc-wdm0 --query-device-services<br>
>>><br>
>>> This is where I am stuck.  I suppose this is not possible with mbimcli, so I am trying to write a utility using libmbim to send the QMI FCC auth command through MBIM.  Once I figure that out I am looking at adding that functionality to mbimcli.<br>
>>><br>
>>> Would anyone on the list have a few more clues?  Specifically, do I need to create the QMI command to wrap in libqmi first, or can it be done manually?  Is there a simplified/minimized API usage example somewhere for sending MBIM commands?  If not, mbimcli's code will do. :-)<br>
>>><br>
>>> Thanks in advance!<br>
>>><br>
>>> Collin<br>
>>><br>
>>> _______________________________________________<br>
>>> libmbim-devel mailing list<br>
>>> <a href="mailto:libmbim-devel@lists.freedesktop.org" target="_blank">libmbim-devel@lists.freedesktop.org</a><br>
>>> <a href="http://lists.freedesktop.org/mailman/listinfo/libmbim-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/libmbim-devel</a><br>
>><br>
>><br>
>> //Markus - The panama-hat hacker<br>
>><br>
><br>
</p>
</div></div></blockquote></div><br></div>