QMI via MBIM for "FCC Authentication" fix
Collin McMillan
cmc at nd.edu
Sat Jul 25 16:16:30 PDT 2015
The output is:
AT!UDUSBCOMP=?
0 - reserved NOT SUPPORTED
1 - DM AT SUPPORTED
I do not know why the value is 6, when only 1 and 0 are listed as options.
On Sat, Jul 25, 2015 at 12:35 PM, Markus Gothe <nietzsche at lysator.liu.se>
wrote:
> And what does "AT!UDUSBCOMP=?" gives you?
>
> //M
>
> Den 25 jul 2015 3:21 fm skrev Collin McMillan <cmc at nd.edu>:
> >
> > I power cycled and then changed the configuration to 1 again. Then I
> ran lsusb -v (output below), and then ran the AT commands:
> >
> >
> AT
>
> >
>
>
> >
> OK
>
> >
> AT!ENTERCND="A710"
>
> >
>
>
> >
> OK
>
> >
> AT!UDUSBCOMP?
>
> >
>
>
> > !UDUSBCOMP:
> 6
>
> >
> > OK
> >
> > And below, here is the output of lsusb -v just after I changed the
> configuration.
> >
> > Bus 001 Device 002: ID 1199:901f Sierra Wireless, Inc.
> > Device Descriptor:
> > bLength 18
> > bDescriptorType 1
> > bcdUSB 2.00
> > bDeviceClass 0 (Defined at Interface level)
> > bDeviceSubClass 0
> > bDeviceProtocol 0
> > bMaxPacketSize0 64
> > idVendor 0x1199 Sierra Wireless, Inc.
> > idProduct 0x901f
> > bcdDevice 0.06
> > iManufacturer 1
> > iProduct 2
> > iSerial 3
> > bNumConfigurations 1
> > Configuration Descriptor:
> > bLength 9
> > bDescriptorType 2
> > wTotalLength 160
> > bNumInterfaces 4
> > bConfigurationValue 1
> > iConfiguration 0
> > bmAttributes 0xe0
> > Self Powered
> > Remote Wakeup
> > MaxPower 500mA
> > Interface Descriptor:
> > bLength 9
> > bDescriptorType 4
> > bInterfaceNumber 0
> > bAlternateSetting 0
> > bNumEndpoints 2
> > bInterfaceClass 255 Vendor Specific Class
> > bInterfaceSubClass 255 Vendor Specific Subclass
> > bInterfaceProtocol 255 Vendor Specific Protocol
> > iInterface 0
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x81 EP 1 IN
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x01 EP 1 OUT
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Interface Descriptor:
> > bLength 9
> > bDescriptorType 4
> > bInterfaceNumber 2
> > bAlternateSetting 0
> > bNumEndpoints 3
> > bInterfaceClass 255 Vendor Specific Class
> > bInterfaceSubClass 0
> > bInterfaceProtocol 0
> > iInterface 0
> > ** UNRECOGNIZED: 05 24 00 10 01
> > ** UNRECOGNIZED: 05 24 01 00 00
> > ** UNRECOGNIZED: 04 24 02 02
> > ** UNRECOGNIZED: 05 24 06 00 00
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x83 EP 3 IN
> > bmAttributes 3
> > Transfer Type Interrupt
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x000c 1x 12 bytes
> > bInterval 9
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x82 EP 2 IN
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x02 EP 2 OUT
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Interface Descriptor:
> > bLength 9
> > bDescriptorType 4
> > bInterfaceNumber 3
> > bAlternateSetting 0
> > bNumEndpoints 3
> > bInterfaceClass 255 Vendor Specific Class
> > bInterfaceSubClass 0
> > bInterfaceProtocol 0
> > iInterface 0
> > ** UNRECOGNIZED: 05 24 00 10 01
> > ** UNRECOGNIZED: 05 24 01 00 00
> > ** UNRECOGNIZED: 04 24 02 02
> > ** UNRECOGNIZED: 05 24 06 00 00
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x85 EP 5 IN
> > bmAttributes 3
> > Transfer Type Interrupt
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x000c 1x 12 bytes
> > bInterval 9
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x84 EP 4 IN
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x03 EP 3 OUT
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Interface Descriptor:
> > bLength 9
> > bDescriptorType 4
> > bInterfaceNumber 8
> > bAlternateSetting 0
> > bNumEndpoints 3
> > bInterfaceClass 255 Vendor Specific Class
> > bInterfaceSubClass 255 Vendor Specific Subclass
> > bInterfaceProtocol 255 Vendor Specific Protocol
> > iInterface 0
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x87 EP 7 IN
> > bmAttributes 3
> > Transfer Type Interrupt
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x000a 1x 10 bytes
> > bInterval 9
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x86 EP 6 IN
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> > Endpoint Descriptor:
> > bLength 7
> > bDescriptorType 5
> > bEndpointAddress 0x04 EP 4 OUT
> > bmAttributes 2
> > Transfer Type Bulk
> > Synch Type None
> > Usage Type Data
> > wMaxPacketSize 0x0200 1x 512 bytes
> > bInterval 0
> >
> >
> >
> > On Fri, Jul 24, 2015 at 7:25 PM, Markus Gothe <nietzsche at lysator.liu.se>
> wrote:
> >>
> >> Please after switching it send an ‘lsusb -v’ of the device.
> >> Either you are in 'QMI-mode’ or you are not.
> >>
> >> It is not a tristate…
> >> However try doing the ‘A710’-trick and then 'AT!UDUSBCOMP?'
> >>
> >> //M
> >>
> >> On 25 Jul 2015, at 00:55 , Collin McMillan <cmc at nd.edu> wrote:
> >>
> >>> Hi Folks,
> >>>
> >>> 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).
> >>>
> >>> The other problem is the "FCC Authentication" trick discussed here:
> >>> https://bugzilla.kernel.org/show_bug.cgi?id=92101
> >>>
> >>> 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:
> >>>
> >>> =============================================
> >>> # qmicli -d /dev/cdc-wdm0 --dms-get-capabilities --verbose
> >>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Opening device with
> flags 'none'...
> >>> [24 Jul 2015, 18:33:31] [Debug] QMI Device at '/dev/cdc-wdm0' ready
> >>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Assuming service 'dms'
> is supported...
> >>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Allocating new client
> ID...
> >>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Sent message...
> >>> <<<<<< RAW:
> >>> <<<<<< length = 16
> >>> <<<<<< data = 01:0F:00:00:00:00:00:01:22:00:04:00:01:01:00:02
> >>>
> >>> [24 Jul 2015, 18:33:31] [Debug] [/dev/cdc-wdm0] Sent message
> (translated)...
> >>> <<<<<< QMUX:
> >>> <<<<<< length = 15
> >>> <<<<<< flags = 0x00
> >>> <<<<<< service = "ctl"
> >>> <<<<<< client = 0
> >>> <<<<<< QMI:
> >>> <<<<<< flags = "none"
> >>> <<<<<< transaction = 1
> >>> <<<<<< tlv_length = 4
> >>> <<<<<< message = "Allocate CID" (0x0022)
> >>> <<<<<< TLV:
> >>> <<<<<< type = "Service" (0x01)
> >>> <<<<<< length = 1
> >>> <<<<<< value = 02
> >>> <<<<<< translated = dms
> >>>
> >>> error: couldn't create client for the 'dms' service: CID allocation
> failed in the CTL client: Transaction timed out
> >>> =============================================
> >>>
> >>> In addition, ModemManager reports:
> >>> ....
> >>> ModemManager[2839]: <debug> [1437767847.000186] [mm-port-probe.c:435]
> port_qmi_open_ready(): (usbmisc/cdc-wdm0) error checking QMI support:
> 'Transaction timed out'
> >>> ModemManager[2839]: <debug> [1437767847.000226] [mm-port-probe.c:290]
> mm_port_probe_set_result_qmi(): (usbmisc/cdc-wdm0) port is not QMI-capable
> >>> ....
> >>>
> >>> I have also read reports of some of these modems not supporting QMI,
> only MBIM. I do have the latest firmware from Sierra.
> >>>
> >>> SO, I am now trying to get the QMI over MBIM procedure going, which is
> rumored to exist. :-)
> >>>
> http://lists.freedesktop.org/archives/modemmanager-devel/2015-July/002087.html
> >>>
> >>> 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:
> >>> mbimcli -d /dev/cdc-wdm0 --query-device-services
> >>>
> >>> 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.
> >>>
> >>> 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. :-)
> >>>
> >>> Thanks in advance!
> >>>
> >>> Collin
> >>>
> >>> _______________________________________________
> >>> libmbim-devel mailing list
> >>> libmbim-devel at lists.freedesktop.org
> >>> http://lists.freedesktop.org/mailman/listinfo/libmbim-devel
> >>
> >>
> >> //Markus - The panama-hat hacker
> >>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libmbim-devel/attachments/20150725/e6b6511f/attachment-0001.html>
More information about the libmbim-devel
mailing list