[FS#1252] No IP Assigned to Interface with QMI on Quectel EC-25A

LEDE Bugs lede-bugs at lists.infradead.org
Tue Apr 3 04:04:13 PDT 2018


The following task has a new comment added:

FS#1252 - No IP Assigned to Interface with QMI on Quectel EC-25A
User who did this - Evren Yurtesen (yurtesen)

----------
@Koen , unfortunately I do not have a way to block the signal to test re-connection. I am able to test initial connection. In my card, it works same as you described.

Perhaps it is a bug in either ec25 or uqmi. Hopefully it would be fixed at some point. It would have been easier to test if I somebody who has another hardware which uses QMI could help testing.

By the way, I had a problem after 36 days uptime that QMI would not respond at all anymore. It felt like it was crashed. I had to send `AT+CFUN=0` then `AT+CFUN=1,1` to reboot EC-25.

So I found out that the sure way to fix the issue once for all was to not rely on so called autoconnect. Instead now I use a script to check internet connectivity and do a full reset upon failure. Actually I used to use this script with NCM connection and [[https://wiki.openwrt.org/doc/recipes/ethernetoverusb_ncm#troubleshooting|put it to OpenWRT wiki way back]], just had to modify it for purpose...

In case it comes handy, my poor man's solution is here :)
#!/bin/sh

# Device for AT commands
DEVICE="/dev/ttyUSB2"

# Enter the FQDNs you want to check with ping (space separated)
# Script does nothing if any tries to any FQDN succeeds
FQDN="www.google.com"
FQDN="$FQDN www.amd.com"
FQDN="$FQDN www.juniper.net"

# Sleep between ping checks of a FQDN (seconds between pings)
SLEEP=3                         # Sleep time between each retry
RETRY=3                         # Retry each FQDN $RETRY times
SLEEP_MAIN=300                  # Main loop sleep time in seconds

check_connection()
{
  for NAME in $FQDN; do
    for i in $(seq 1 $RETRY); do
      ping -c 1 $NAME > /dev/null 2>&1
      if [ $? -eq 0 ]; then
        return 0
      fi
      sleep $SLEEP
    done
  done
  # If we are here, it means all failed
  return 1
}

while true; do
  check_connection
  if [ $? -ne 0 ]; then
    #/etc/init.d/ncm-network start
    logger conncheck.sh: Restarting EC-25
    ifdown wwan
    echo -ne "AT+CFUN=0\r\n" > ${DEVICE}
    echo -ne "AT+CFUN=1,1\r\n" > ${DEVICE}
    # Reset takes about 30 sec on Quectel EC-25
    sleep 60
    ifup wwan
  fi
  sleep $SLEEP_MAIN
done



----------

More information can be found at the following URL:
https://bugs.openwrt.org/index.php?do=details&task_id=1252#comment4551



More information about the lede-bugs mailing list