I’ve signed the NDA, after looking closer at the command references I found the command I was looking for and switched the modem to PID 68a3. sierra_net was throwing all sorts of errors:
Dec 3 21:41:11 localhost kernel: sierra_net 1-1.4:1.7: wwan0: Submit SYNC failed -32
Dec 3 21:41:11 localhost kernel: sierra_net 1-1.4:1.7: wwan0: Send SYNC failed, status -32
And I couldn’t access the control channel. This was kernel 3.4.19 with the stock sierra.c/sierra_net.c. I grabbed the updated sierra drivers from here and manually merged in the usb-serial changes to get them to compile (usb driver registration APIs had changed). I can now successfully connect to a cellular network with Direct IP.
Now this is a new platform with no legacy compatibility to deal with, so I don’t have anything invested in either technology. I will investigate ModemManager, when I had initially looked at building libqmi it looked to have fairly heavy Gnome dependencies that substantially increased our filesystem image size. I will talk to our rep about the Linux QMI SDK, that sounds promising.
I don’t think my requirements are anything special, I’d like to:
- create a reliable persistent connection to a cell network for M2M TCP traffic
- have the driver deal with reconnection logic so I don’t have to constantly validate network connectivity and reconnect when the connection drops
- poll connection statistics (RSSI, bytes transferred) on a fixed interval
And of course, being a lazy programmer I would like to have as much of this handled by existing libraries as possible
Thanks for all your help!
Blake