[OpenWrt-Devel] mbim / Sierra Wireless AirCard 340U

Bjørn Mork bjorn at mork.no
Tue Apr 7 07:07:39 EDT 2015

John Crispin <blogic at openwrt.org> writes:

> On 07/04/2015 12:31, Bjørn Mork wrote:
>> David Hutchison <dhutchison at bluemesh.net> writes:
>>> Hello John,
>>> One of our customers use the 340U, and the latest firmware
>>> revision that fixes Windows 8 support.. broke linux support ( 
>>> http://mtekk.us/archives/guides/netgear-aircard-340u-linux/ ) We
>>> had to downgrade the firmware on the 340u itself.
>> Is this broken on linux with libmbim+ModemManager, or only with
>> umbim? Or is it just that the new version forces MBIM mode, while
>> the older allows QMI?  Or is the problem related to the QMI issues
>> discussed here: 
>> http://lists.freedesktop.org/archives/libqmi-devel/2014-August/000883.html
> the bug report comes from umbim it is a segfault that happens, not nice.

Ah, see that now. But I don't think that segfault should prevent things
from working?  The "Subscriber Ready" command is not critical/mandatory
(unless you make it so in your scripts).

Looking briefly at umbim, I believe this might fix the segfault
(completely untested):

bjorn at nemi:/usr/local/src/git/umbim$ git diff
diff --git a/cli.c b/cli.c
index e6b34d7..6f496e1 100644
--- a/cli.c
+++ b/cli.c
@@ -152,7 +152,7 @@ mbim_subscriber_response(void *buffer, int len)
        if (le32toh(state->readyinfo) & MBIM_READY_INFO_FLAG_PROTECT_UNIQUE_ID)
                printf("  dont display subscriberID: 1\n");
        for (nr = 0; nr < le32toh(state->telephonenumberscount); nr++) {
-               struct mbim_string *str = buffer + le32toh(state->telephonenumbers) + (nr * sizeof(struct mbim_string));
+               struct mbim_string *str = state->telephonenumbers + (nr * sizeof(struct mbim_string));
                char *number = mbim_get_string(str, buffer);
                printf("  number: %s\n", number);

openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list