problem with Sierra MC7750 (and a workaround)

Tim Harvey tharvey at gateworks.com
Thu Dec 12 10:40:29 PST 2013


On Mon, Dec 9, 2013 at 4:35 AM, Aleksander Morgado
<aleksander at lanedo.com> wrote:
> On 06/12/13 16:29, Tim Harvey wrote:
>>>> I was trying to get an MC7750-based USB modem working with libqmi. The
>>>> >> kernel modules sierra and qmi_wwan are loaded when the device is
>>>> >> connected; I can use qmi-network to start the data connection, and
>>>> >> everything seems to work except there's no data flow. No packets get
>>>> >> sent or received.
>>>> >>
>>>> >> Turns out the problem is that the modem needs to be explicitly told to
>>>> >> use QMI_CTL_DATA_LINK_PROTOCOL_802_3 via CtlSetDataFormat. And since
>>>> >> qmicli basically uses the default flags to qmi_device_open, libqmi
>>>> >> doesn't send a CtlSetDataFormat.
>>>> >>
>>>> >> As a quick-and-dirty workaround, I hacked qmicli.c to add
>>>> >> QMI_DEVICE_OPEN_FLAGS_NET_802_3 and
>>>> >> QMI_DEVICE_OPEN_FLAGS_NET_NO_QOS_HEADER to open_flags. With that
>>>> >> change, the MC7750 works.
>>>> >>
>>>> >> I was thinking I could extend qmicli.c to add a new option to be able
>>>> >> to set those flags. Something like:
>>>> >>
>>>> >>    --device-open-net=<mode> where mode is:
>>>> >>             "en"  : 802_3 + NO_QOS_HEADER
>>>> >>             "eq" : 802_3 + QOS_HEADER
>>>> >>             "rn" : RAW_IP + NO_QOS_HEADER
>>>> >>             "rq" : RAW_IP + QOS_HEADER
>>>> >>
>>>> >> If the option is not given, the behavior will be like it is now (no
>>>> >> flags, which means no CtlSetDataFormat is sent).
>>>> >>
>>>> >> Thoughts?
>>> >
>>> > Adding the option, indluding the ability to not send CtlSetDataFormat at
>>> > all, seems like a very good idea to me.
>>> >
>>> > But I wonder if maybe the default should be set to "802_3 +
>>> > NO_QOS_HEADER"? That's the only mode currently supported by the driver,
>>> > and I don't see any immediate change coming up.  So this is most likely
>>> > to just Make Stuff Work.  Unless there is some buggy device which barfs
>>> > on this command, of course.  But I haven't heard of that yet, and as you
>>> > note: MM will send this command on open.
>>> >
>>> >
>>> > Bjørn
>> Did anything ever come of this idea?  It appears to me that this patch
>> is necessary for a 4G/LTE connection but not a CDMA-1X/EVDO
>> connection.
>
> I don't think anyone ended up implementing that change, no; or maybe I
> missed it. Anyone up to it? This is what I suggested:
>
>   --device-open-net="net-802-3,net-no-qos-header"
>   --device-open-net="net-802-3,net-qos-header"
>   --device-open-net="net-raw-ip,net-no-qos-header"
>   --device-open-net="net-raw-ip,net-qos-header"
>
> So, --device-open-net would accept a list of up to 2 strings; where each
> string given is one of the "nicknames" of the QmiDeviceOpenFlags.
>
>
> --
> Aleksander

Aleksander,

I'll take a stab at it.

Thanks,

Tim


More information about the libqmi-devel mailing list