Quectel UC20: Correct way to get it up and running on embedded?

Einar Jón tolvupostur at gmail.com
Tue Mar 28 15:24:23 UTC 2017


Thanks for the update.
A couple of more question about resetting the modem, but I should
probably start a new thread for follow-up questions.
TLDR:
1) Once I have PolicyMismatch, I'm stuck until I reset. What to do
then? See -- 1 --- below
2) I can't reset this modem using "mmcli -r -m0". What alternatives do
I have? See -- 2 --- below

Full version:
-------- 1 --------
On 23 March 2017 at 02:42, Dan Williams <dcbw at redhat.com> wrote:
>
> RE PolicyMismatch: we're not quite sure what that error represents;
> we've determined that in some cases it means IPv4 vs. IPv6 mismatch and
> profiles in the modem, but that doesn't seem to always be the case.

I'm not sure what is causing it, but it's quite easy to reproduce by
messing with the kernel module (e.g. reloading it):
$ sudo rmmod qmi_wwan
$ sudo modprobe qmi_wwan

After that I'm stuck in the following loop - I have moved ifup to
CONNECTED state, so it is not interrupting this flow:
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Disabling modem...
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Modem state: REGISTERED
-> DISABLING
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Registration State: UNKNOWN
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Modem state: DISABLING -> DISABLED
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Enabling modem...
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Modem state: DISABLED -> ENABLING
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Operator Code: 20404
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Operator Name: DATA ONLY
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Registration State: HOME
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Modem state: ENABLING -> REGISTERED
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Current operator: 20404
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Modem state: REGISTERED
-> CONNECTING
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Modem state: CONNECTING
-> REGISTERED
Mar 28 16:21:05 ubuntu12 modemmonitor[1383]: Bearer connect failed
(attempt 1): org.freedesktop.libqmi.Error.Protocol.PolicyMismatch: QMI
protocol error (79): 'PolicyMismatch'
Mar 28 16:21:06 ubuntu12 modemmonitor[1383]: Disabling modem...

According to this:
https://lists.freedesktop.org/archives/libqmi-devel/2014-August/000901.html
a modem reset should be sufficient.

But if I don't reset, this loop will continue about once a second,
which is now what I want.
* Any suggestions on what to do when my system gets in a mess like this?

-------- 2 --------
Unfortunately the UC20 doesn't seem to support a reset using the DBUS.
Is this a limitation of ModemManager or the UC20 modem?
$ mmcli -m 0 -rv
[28 Mar 2017, 16:27:35] [Debug] ModemManager process found at ':1.3'
[28 Mar 2017, 16:27:35] [Debug] Assuming '0' is the modem index
[28 Mar 2017, 16:27:35] [Debug] Modem found at
'/org/freedesktop/ModemManager1/Modem/0'

[28 Mar 2017, 16:27:35] [Debug] Synchronously reseting modem...
error: couldn't reset the modem:
'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported:
Cannot reset the modem: operation not supported'

I have a couple of other ways to reset the modem, but no easy ones:
1)  The Quectel manual says that the command
AT+QRST=1,0
will reset the modem immediately, but I don't know how to send AT
commands to the modem.
There's no /dev/ttyUSB*, although the device is connected via USB:
$ mmcli -m 0 | grep devices
  System   |         device:
'/sys/devices/pci0000:00/0000:00:17.0/0000:01:00.0/0000:02:08.3/usb2/2-3'

2) There's also a Control Signal Pin PERST# on the UC20 Mini PCIe board:
- You can reset the module by driving the PERST# to a low level
voltage of more than 150ms and then release it.
Messing with the pins seems a bit drastic...

3) Rebooting the linux machine also seems to work, but this kills our uptime.

-- 
Best regards
Einar Jón


More information about the ModemManager-devel mailing list