libqmi / Quectel EC21/EC25

Bjørn Mork bjorn at
Tue Sep 20 07:10:37 UTC 2016

Sebastian Sjoholm <sebastian.sjoholm at> writes:

> Hi,
> What would be best way for me to debug qmi_wwan.c to see what I am missing
> regarding the QMI communication with EC25. The EC25 (as the EC21) support
> does not exists in the 4.7.4 kernel, but I have added it to option.c as
> well as in the qmi_wwan.c.

I guess the only way to figure out what we're missing is by comparing
usbmon snoops from a working connection with the failing one.  But that
requires a working connection...

Anyway, looking at usbmon dumps is a start.  It will probably only
confirm what you already see: The driver sends a request and gets no
reply.  But confirming it is usefull, since it eliminates other more unlikely
errors.  See for
instructions.  Note that libpcap also can be built with usbmon support,
enabling USB captures in wireshark/tshark/tcpdump.  Much easier to use
wireshark dissectors than trying to make sense of of the hex dumps
yourself :)

Have you tried to follow the Quectel instructions and see if that makes
it work?  Using GobiNet is probably easiest.  If it works, then
a comparison of a short probe + one request with the same from qmi_wwan
should provide some answers.

> error: couldn't create client for the 'nas' service: CID allocation failed
> in the CTL client: Transaction timed out

The only thing I can think of is that these modems might need the same
DTR toggling as the MC7455 etc. If so, then my simple assumption that we
could automatically apply this based on USB3 support could be failing.

These modems are based on relatively new Qualcomm chips, but without
USB3 support, is that correct?

Look for the

	if (le16_to_cpu(dev->udev->descriptor.bcdUSB) >= 0x0201) {
		qmi_wwan_manage_power(dev, 1);
		qmi_wwan_change_dtr(dev, true);

part and enable that unconditionally.  Does that make a difference?

If it does, then it's time to figure out another strategy I guess.
Unfortunately, I don't think we can do that for all the old devices out
there. But let's find out if it is necessary for the QC21/QC25 first.

More information about the libqmi-devel mailing list