Error: couldn't start network: QMI protocol error (14): 'CallFailed'

I’m using the 3G/4G LTE Base Hat and the Quectel EC25-AFX on Verizon. I’ve been able to connect a couple times over the past 2-3 days, but as soon as I reboot, it no longer works. I’ve tried reinstalling all the kernel drivers and associated installs with no luck. Everything looks fine from what I can tell until I go to start the network and then get error: couldn’t start network: QMI protocol error (14): ‘CallFailed’, call end reason (1): generic-unspecified.

I also tried connecting using the quectel-CM -s vzwinternet and have never been able to connect in this way.

Maybe someone can see something in these logs or explain what this message means and how to resolve.

pi@raspberrypi:~ $ uname -sr
Linux 5.10.17-v7l+

pi@raspberrypi:~ $ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@raspberrypi:~ $ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 3, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 480M

pi@raspberrypi:~ $ ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3

pi@raspberrypi:~ $ dmesg |grep tty
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=HDMI-A-1:1920x1080M@60 smsc95xx.macaddr=DC:A6:32:CA:CF:73 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[ 0.001103] printk: console [tty1] enabled
[ 1.447895] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 36, base_baud = 0) is a PL011 rev2
[ 1.455178] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 37, base_baud = 62500000) is a 16550
[ 6.249186] systemd[1]: Created slice system-getty.slice.
[ 12.419823] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0
[ 12.420595] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1
[ 12.421276] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2
[ 12.421937] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB3
pi@raspberrypi:~ $ sudo cat /sys/kernel/debug/usb/devices

T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 5.10
S: Manufacturer=Linux 5.10.17-v7l+ xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:01:00.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 4
D: Ver= 2.10 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=2109 ProdID=3431 Rev= 4.21
S: Product=USB2.0 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms

T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=2c7c ProdID=0125 Rev= 3.18
S: Manufacturer=Quectel
S: Product=EC25-AFX
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E: Ad=89(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 4
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 5.10
S: Manufacturer=Linux 5.10.17-v7l+ xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=0000:01:00.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
pi@raspberrypi:~ $


AT Commands


pi@raspberrypi:~ $ sudo minicom -b 115200 -D /dev/ttyUSB2

Welcome to minicom 2.7.1

OPTIONS: I18n
Compiled on Aug 13 2017, 15:25:34.
Port /dev/ttyUSB2, 11:18:27

Press CTRL-A Z for help on special keys

at
OK
ate1
OK
ati
Quectel
EC25
Revision: EC25AFXGAR07A03M1G

OK
at+qgmr
EC25AFXGAR07A03M1G_01.002.01.002

OK
at+cpin?
+CPIN: READY

OK
at+cpas
+CPAS: 0

OK
at+fun?
ERROR
at+cfun?
+CFUN: 1

OK
at+cops?
+COPS: 0,0,“Verizon Wireless”,7

OK
at+qcfg=“usbnet”
+QCFG: “usbnet”,0

OK
at+qcfg=“band”
+QCFG: “band”,0x260,0x42000000000000381a,0x0

OK
at+creg?
+CREG: 0,3

OK
at+cgdcont?
+CGDCONT: 1,“IP”,“vzwinternet”,“0.0.0.0”,0,0,0,0
+CGDCONT: 2,“IPV4V6”,“VZWADMIN”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 3,“IPV4V6”,“VZWINTERNET”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 4,“IPV4V6”,“VZWAPP”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0
+CGDCONT: 5,“IPV4V6”,“VZWEMERGENCY”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,1
+CGDCONT: 6,“IPV4V6”,“VZWCLASS6”,“0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0”,0,0,0,0

OK
at+csq
+CSQ: 31,99

OK
at+cgatt?
+CGATT: 1

OK
at+qcfg=“nwscanseq”
+QCFG: “nwscanseq”,0501030402

OK
at+qcfg=“nwscanmode”
+QCFG: “nwscanmode”,0

OK
at+qcfg=“iotopmode”
ERROR

at+qcsq
+QCSQ: “LTE”,43,-74,160,-12

OK
at+qnwinfo
+QNWINFO: “FDD LTE”,“311480”,“LTE BAND 4”,2125

OK


Signal Info


pi@raspberrypi:~ $ sudo qmicli -p -d /dev/cdc-wdm0 --nas-get-signal-strength
[/dev/cdc-wdm0] Successfully got signal strength
Current:
Network ‘lte’: ‘-43 dBm’
RSSI:
Network ‘lte’: ‘-43 dBm’
ECIO:
Network ‘lte’: ‘-2.5 dBm’
IO: ‘-106 dBm’
SINR (8): ‘9.0 dB’
RSRQ:
Network ‘lte’: ‘-12 dB’
SNR:
Network ‘lte’: ‘12.2 dB’
RSRP:
Network ‘lte’: ‘-74 dBm’
pi@raspberrypi:~ $ sudo qmicli -p -d /dev/cdc-wdm0 --nas-get-signal-info
[/dev/cdc-wdm0] Successfully got signal info
LTE:
RSSI: ‘-43 dBm’
RSRQ: ‘-12 dB’
RSRP: ‘-74 dBm’
SNR: ‘12.2 dB’
pi@raspberrypi:~ $ sudo qmicli -p -d /dev/cdc-wdm0 --nas-get-home-network
[/dev/cdc-wdm0] Successfully got home network:
Home network:
MCC: ‘311’
MNC: ‘480’
Description: ‘Verizon’
pi@raspberrypi:~ $


Attempt to make connection


pi@raspberrypi:~ $ sudo qmicli -d /dev/cdc-wdm0 --dms-get-operating-mode
[/dev/cdc-wdm0] Operating mode retrieved:
Mode: ‘online’
HW restricted: ‘no’
pi@raspberrypi:~ $ sudo ip link set wwan0 down
pi@raspberrypi:~ $ echo ‘Y’ | sudo tee /sys/class/net/wwan0/qmi/raw_ip
Y
pi@raspberrypi:~ $ sudo ip link set wwan0 up
pi@raspberrypi:~ $ sudo qmicli -d /dev/cdc-wdm0 --wda-get-data-format
[/dev/cdc-wdm0] Successfully got data format
QoS flow header: no
Link layer protocol: ‘raw-ip’
Uplink data aggregation protocol: ‘disabled’
Downlink data aggregation protocol: ‘disabled’
NDP signature: ‘0’
Uplink data aggregation max size: ‘0’
Downlink data aggregation max size: ‘0’
pi@raspberrypi:~ $ sudo qmicli -p -d /dev/cdc-wdm0 --device-open-net=‘net-raw-ip|net-no-qos-header’ --wds-start-network=“apn=vzwinternet,ip-type=4” --client-no-release-cid
error: couldn’t start network: QMI protocol error (14): ‘CallFailed’
call end reason (1): generic-unspecified
verbose call end reason (2,241): [internal] (null)
[/dev/cdc-wdm0] Client ID not released:
Service: ‘wds’
CID: ‘5’
pi@raspberrypi:~ $

Hi @glenn.miles ,

Thank you for your very useful information.

+COPS: 0
+CREG: 0,3
means that registration is denied.
It seems that the device isn’t able to properly communicate with the SIM card provider. Usually, the troubleshooting steps for this issue are these:

  • Try a different SIM card, preferably a SIM card from a different carrier than you already have.
  • Try to get connected when the device is in an area with stronger mobile coverage.
  • Make sure to power it up with enough supply.

I determined through Verizon this modem, although approved, is not certified and therefore the IMEI was not loaded in their database as a valid device. I also learned from Verizon that this would only be able to be used as a development device unless I signed up with their Open Development group and went through the process of getting all the pieces, modem, hat, and rpi, certified as a complete device. I ended up buying your certified IOT device and it is works fine with the same sim card.

In the end, your hardware and setup instructions were all good; it was Verizon!

1 Like

Which device did you buy to work with verizon?