Uqmi hangs when modem is active

On a GL-X750 (spitz) I can easily use uqmi to get info about the connection, such as

uqmi -d /dev/cdc-wdm0 -s --get-data-status
uqmi -d /dev/cdc-wdm0 -s --get-signal-info
uqmi -d /dev/cdc-wdm0 -s --get-serving-system

but uqmi only seems to work when the connection is relatively idle. When I have active traffic it just hangs. It’s also possible that it is not an active/idle issue but rather that it got stuck at about the same time as the connection became busy. Is this a known issue and is there a work-around? I’m trying to get the signal info in particular for my monitoring system…

After some more testing I discovered I had a pile of uqmi processes hanging. After killing them all now I get

root@cellgw:~# uqmi -d /dev/cdc-wdm0 -s --get-signal-info
"Failed to connect to service"

The modem is transferring data just fine…

After a reboot uqmi works fine. So it seems to have a way to get itself stuck… Is there a way to reset whatever service it’s trying to connect to without a reboot?

The engineer who is well versed in qmi is in holiday. I don’t have an answer for you.

Is there any way to reset the modem when uqmi gets stuck?

After some desperation I finally figured out that the following “does something”:

usbreset 001/004

The help says:

# usbreset
Usage:
  usbreset PPPP:VVVV - reset by product and vendor id
  usbreset BBB/DDD   - reset by bus and device number
  usbreset "Product" - reset by product name

Devices:
  Number 001/003  ID 05e3:0752  USB Storage
  Number 001/002  ID 05e3:0618  USB2.0 Hub
  Number 001/004  ID 2c7c:0306  LTE-A Module

Not sure how uncool this is, but it does seem to get things unstuck… Expert advice would be awesome…

usbreset is a utility to send a USB port reset to a USB device. This way is reset by software.

I’m finding that uqmi or the uqmi interface for the EP06-A are really unreliable. I’m running a test on a Spitz that reads uqmi --get-signal-info every 20 minutes and performs some bandwidth tests (curl from a web server). After a few hours of running uqmi stops working. Traffic continues to pass fine. How do I troubleshoot where this is coming from? I’m not seeing any error messages in either logread or dmesg. Does uqmi or the driver have a debug option? Is this likely to be a bug in the EP06 firmware?

What I’m getting is:

root@cellgw:~# timeout -t 2 uqmi -d /dev/cdc-wdm0 -s --get-signal-info
"Unknown error"
root@cellgw:~# timeout -t 2 uqmi -d /dev/cdc-wdm0 -s --get-signal-info
"Failed to connect to service"

Hello there!

Just a follow-up comment about this topic. I had a lot of trouble because of uqmi, for instance I can only make a few uqmi calls before it hangs forever and causes connectivity issues in x750 and XE300.

To be honest, as gl_monitor being killed again and again (until the device is rebooted) was the most notorious symptom, I thought the problem was gl_monitor itself.

After a lot of tests, we found it was actually uqmi, although we couldn't really found exactly why it happens.

My recommendation is to avoid using uqmi and use AT commands or gl_modem instead. By the way, I find gl_modem as well as other gl-inet software really useful. It's just unfortunate that basic how-to-use documentation is not always available. Most of the time we need to dig in the forum for useful tricks.