<div dir="ltr">That's very helpful, thanks.  I'm going to hack at it a bit and get back to the list.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 27, 2015 at 2:57 AM, Aleksander Morgado <span dir="ltr"><<a href="mailto:aleksander@aleksander.es" target="_blank">aleksander@aleksander.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Sat, Jul 25, 2015 at 12:55 AM, Collin McMillan <<a href="mailto:cmc@nd.edu">cmc@nd.edu</a>> wrote:<br>
><br>
> I have also read reports of some of these modems not supporting QMI, only<br>
> 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<br>
> rumored to exist. :-)<br>
> <a href="http://lists.freedesktop.org/archives/modemmanager-devel/2015-July/002087.html" rel="noreferrer" target="_blank">http://lists.freedesktop.org/archives/modemmanager-devel/2015-July/002087.html</a><br>
><br>
</span><span class="">> Apparently it is straight forward once you know what to do -- just send a<br>
> QMI message to MBIM service d1a30bc2-f97a-6e43-bf65-c7e24fb0f0d3.  I can<br>
> 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<br>
> am trying to write a utility using libmbim to send the QMI FCC auth command<br>
> through MBIM.  Once I figure that out I am looking at adding that<br>
> functionality to mbimcli.<br>
><br>
> Would anyone on the list have a few more clues?  Specifically, do I need to<br>
> create the QMI command to wrap in libqmi first, or can it be done manually?<br>
> Is there a simplified/minimized API usage example somewhere for sending MBIM<br>
> commands?  If not, mbimcli's code will do. :-)<br>
<br>
</span>Sending a message through an MbimDevice is just about calling<br>
mbim_device_command() and getting the response with<br>
mbim_device_command_finish(); mbimcli is full of examples for that.<br>
<br>
The issue you have here is that QMI is not as easy; i.e. in order to<br>
send the QMI DMS Set FCC Auth command you first need to allocate a DMS<br>
client using the CTL service; then use the allocated DMS client ID in<br>
the QMI DMS Set FCC Auth command, and then release the DMS client<br>
using the CTL service again. I'm not sure if all these steps are<br>
required when using QMI over MBIM, but I'd assume that's the case. And<br>
the problem here is that all those steps (allocating DMS client,<br>
building and sending DMS Set FCC Auth, releasing DMS client) are done<br>
internally in libqmi. Otherwise, you'll need to use the raw QMI<br>
message API to build those messages:<br>
<a href="http://www.freedesktop.org/software/libqmi/libqmi-glib/1.12.0/libqmi-glib-QmiMessage.html" rel="noreferrer" target="_blank">http://www.freedesktop.org/software/libqmi/libqmi-glib/1.12.0/libqmi-glib-QmiMessage.html</a><br>
<br>
Anyway, if I were to do it, I'd instead try to mix both libqmi and<br>
libmbim. E.g. Create a MbimDevice, which will take care of sending the<br>
MBIM messages and receiving responses. But then also create a<br>
QmiDevice, and pass the MbimDevice as 'transport' to the QmiDevice<br>
somehow. Then you would be able to use the QmiDevice transparently,<br>
using the underlying MbimDevice. This would require libqmi to depend<br>
on libmbim, but we could do it conditional with a configure switch, I<br>
don't think it's a big deal.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Aleksander<br>
<a href="https://aleksander.es" rel="noreferrer" target="_blank">https://aleksander.es</a><br>
</font></span></blockquote></div><br></div>