<p dir="ltr">And what does "AT!UDUSBCOMP=?" gives you?<br></p>
<p dir="ltr">//M</p>
<p dir="ltr">Den 25 jul 2015 3:21 fm skrev Collin McMillan <cmc@nd.edu>:<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 <nietzsche@lysator.liu.se> 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 <cmc@nd.edu> 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 (https://bugs.freedesktop.org/show_bug.cgi?id=91351).<br>
>>><br>
>>> The other problem is the "FCC Authentication" trick discussed here:<br>
>>> https://bugzilla.kernel.org/show_bug.cgi?id=92101<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>
>>> http://lists.freedesktop.org/archives/modemmanager-devel/2015-July/002087.html<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>
>>> libmbim-devel@lists.freedesktop.org<br>
>>> http://lists.freedesktop.org/mailman/listinfo/libmbim-devel<br>
>><br>
>><br>
>> //Markus - The panama-hat hacker<br>
>><br>
><br>
</p>