Connecting an EG25

I am trying to get the EG25 up and working.
I tried following the direction at Setting up a data connection over QMI interface using libqmi
and was not successful. When I try to run any qmi commands, the interface just hangs.
Also, if I run AT+CFUN=1,1 the modem reboots and does not show up as a USB device anymore until it is power cycled.
Sometimes, I get the error
couldn't create client for the 'dms' service: CID allocation failed in the CTL client: Transaction timed out

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 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 2: Dev 3, If 1, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 2: Dev 3, If 2, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 2: Dev 3, If 3, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 2: Dev 3, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 480M

AT+QCFG="usbnet"
+QCFG: "usbnet",0

OK

AT+CGMI
Quectel

OK
AT+CGMM
EG25

OK
AT+CGMR
EG25GGBR07A08M2G

I am getting the messages

[ 1451.641629] usb 1-1.2: new high-speed USB device number 8 using xhci_hcd
[ 1451.741894] usb 1-1.2: device descriptor read/64, error -71
[ 1451.961866] usb 1-1.2: device descriptor read/64, error -71
[ 1452.181634] usb 1-1.2: new high-speed USB device number 9 using xhci_hcd
[ 1452.281889] usb 1-1.2: device descriptor read/64, error -71
[ 1452.501867] usb 1-1.2: device descriptor read/64, error -71
[ 1452.622308] usb 1-1-port2: attempt power cycle
[ 1453.281614] usb 1-1.2: new high-speed USB device number 10 using xhci_hcd
[ 1453.281926] usb 1-1.2: Device not responding to setup address.
[ 1453.501905] usb 1-1.2: Device not responding to setup address.
[ 1453.721616] usb 1-1.2: device not accepting address 10, error -71
[ 1453.821650] usb 1-1.2: new high-speed USB device number 11 using xhci_hcd
[ 1453.821946] usb 1-1.2: Device not responding to setup address.
[ 1454.041879] usb 1-1.2: Device not responding to setup address.
[ 1454.261621] usb 1-1.2: device not accepting address 11, error -71
[ 1454.262235] usb 1-1-port2: unable to enumerate USB device

when the module stops showing up on the device tree.

Hello,

Before the dialup/running libqmi command to establish the internet connection, did you check if the network registration was successful?

Yes. I configured the device via PPP and was able to pass traffic over PPP.

Specifically, over the serial interface. The problem with the USB device not enumerating means I can’t use the serial AT interface.

[ 167.242517] qmi_wwan_q 1-1.4:1.4 wwan0: unregister ‘qmi_wwan_q’ usb-0000:01:00.0-1.4, WWAN/QMI device
[ 167.612177] usb 1-1.4: new high-speed USB device number 6 using xhci_hcd
[ 167.712394] usb 1-1.4: device descriptor read/64, error -71
[ 167.932385] usb 1-1.4: device descriptor read/64, error -71
[ 168.152180] usb 1-1.4: new high-speed USB device number 7 using xhci_hcd
[ 168.252446] usb 1-1.4: device descriptor read/64, error -71
[ 168.482464] usb 1-1.4: device descriptor read/64, error -71
[ 168.602938] usb 1-1-port4: attempt power cycle
[ 169.262256] usb 1-1.4: new high-speed USB device number 8 using xhci_hcd
[ 169.262562] usb 1-1.4: Device not responding to setup address.
[ 169.482493] usb 1-1.4: Device not responding to setup address.
[ 169.702236] usb 1-1.4: device not accepting address 8, error -71
[ 169.802275] usb 1-1.4: new high-speed USB device number 9 using xhci_hcd
[ 169.802573] usb 1-1.4: Device not responding to setup address.
[ 170.022521] usb 1-1.4: Device not responding to setup address.
[ 170.242247] usb 1-1.4: device not accepting address 9, error -71
[ 170.242874] usb 1-1-port4: unable to enumerate USB device

Okay, modem manager was on. I think this was causing some of my issues, but it’s still not working :frowning:

I think the modem might be rebooting or having power issues. Is there a good way to check this? dmesg doesn’t indicate the pi has power issues.

So, it’s passing traffic, just not in a useful way. I can use qping to pass traffic, and PPP, but I’d like to have a faster link speed than what PPP can afford.

pi@pi:~ $ sudo ip link set wwan0 down
pi@pi:~ $ echo 'Y' | sudo tee /sys/class/net/wwan0/qmi/raw_ip
Y
pi@pi:~ $ sudo ip link set wwan0 up
pi@pi:~ $ sudo qmicli -p -d /dev/cdc-wdm0 --device-open-net='net-raw-ip|net-no-qos-header' --wds-start-network="apn='broadband',ip-type=4" --client-no-release-cid
[/dev/cdc-wdm0] Network started
        Packet data handle: '2268759760'
[/dev/cdc-wdm0] Client ID not released:
        Service: 'wds'
            CID: '17'
pi@pi:~ $ sudo udhcpc -q -f -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending select for 10.90.48.233
udhcpc: lease of 10.90.48.233 obtained, lease time 7200
pi@pi:~ $ ifconfig wwan0
wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.90.48.233  netmask 255.255.255.252  destination 10.90.48.233
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 2  bytes 612 (612.0 B)
        RX errors 46  dropped 0  overruns 0  frame 0
        TX packets 51  bytes 7931 (7.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

pi@pi:~ $ ping -4 -I wwan0 -c 5 sixfab.com
PING  (172.66.43.141) from 10.90.48.233 wwan0: 56(84) bytes of data.

---  ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4133ms
pi@pi:~ $ ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.141  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 2603:8001:3200:60d0::b7d8  prefixlen 128  scopeid 0x0<global>
        inet6 fe80::a794:317:b445:6526  prefixlen 64  scopeid 0x20<link>
        ether e4:5f:01:3c:91:06  txqueuelen 1000  (Ethernet)
        RX packets 1071  bytes 107612 (105.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1023  bytes 151697 (148.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 21  bytes 2481 (2.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 2481 (2.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether e4:5f:01:3c:91:07  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.90.48.233  netmask 255.255.255.252  destination 10.90.48.233
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 4  bytes 812 (812.0 B)
        RX errors 17979  dropped 0  overruns 0  frame 0
        TX packets 55  bytes 8299 (8.1 KiB)
        TX errors 22  dropped 0 overruns 0  carrier 0  collisions 0
1 Like

Modem info

at
OK
ati
Quectel
EG25
Revision: EG25GGBR07A08M2G

OK
AT+QGMR
EG25GGBR07A08M2G_01.002.01.002

OK
AT+CPIN?
+CPIN: READY

OK
AT+CPAS
+CPAS: 0

OK
AT+CFUN?
+CFUN: 1

OK
AT+COPS?
+COPS: 0,0,"AT&T",7

OK
AT+QCFG=”usbnet”
ERROR
AT+QCFG="usbnet"
+QCFG: "usbnet",0

OK
AT+QCFG="band"
+QCFG: "band",0xbff,0x1e00b0e18df,0x0

OK
AT+CREG?
+CREG: 0,5

OK
AT+CGDCONT?
+CGDCONT: 1,"IP","broadband","0.0.0.0",0,0,0,0
+CGDCONT: 2,"IPV4V6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 3,"IPV4V6","","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,1

OK
AT+CSQ
+CSQ: 18,99

OK
AT+CGATT?
+CGATT: 1

OK
AT+QCFG="nwscanseq"
+QCFG: "nwscanseq",0403010502

OK
AT+QCFG="nwscanmode"
+QCFG: "nwscanmode",0

OK
AT+QCFG="iotopmode"
ERROR
AT+QCSQ
+QCSQ: "LTE",78,-114,148,-14

OK
AT+QNWINFO
+QNWINFO: "FDD LTE","310410","LTE BAND 2",700

OK

host info

pi@pi:~ $ cat /etc/os-release
me -a
 lsusb
 lsusb -t
 usb-devices
 dmesg | grep tty
 ls -l /sys/bus/usb-serial/devices
 ls -l /dev/serial/by-id
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@pi:~ $  uname -a
Linux sailplamast 5.15.74-v7l+ #1595 SMP Wed Oct 26 11:05:08 BST 2022 armv7l GNU/Linux
pi@pi:~ $  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@pi:~ $  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 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 4: Dev 3, If 1, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 4: Dev 3, If 2, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 4: Dev 3, If 3, Class=Vendor Specific Class, Driver=option, 480M
        |__ Port 4: Dev 3, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
pi@pi:~ $  usb-devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 1
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=05.15
S:  Manufacturer=Linux 5.15.74-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#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

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=04.21
S:  Product=USB2.0 Hub
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:  If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub

T:  Bus=01 Lev=02 Prnt=02 Port=03 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=03.18
S:  Manufacturer=Quectel
S:  Product=EG25-G
C:  #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
I:  If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 4
D:  Ver= 3.00 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev=05.15
S:  Manufacturer=Linux 5.15.74-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#=0x0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
pi@pi:~ $  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  smsc95xx.macaddr=E4:5F:01:3C:91:06 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=tty1 root=PARTUUID=3f0bf429-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[    0.000434] printk: console [tty1] enabled
[    1.703970] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 34, base_baud = 0) is a PL011 rev2
[    1.713161] fe215040.serial: ttyS0 at MMIO 0xfe215040 (irq = 35, base_baud = 62500000) is a 16550
[    3.503864] systemd[1]: Created slice system-getty.slice.
[    6.808652] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB0
[    6.822680] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB1
[    6.964287] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2
[    6.982043] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB3
pi@pi:~ $  ls -l /sys/bus/usb-serial/devices
total 0
lrwxrwxrwx 1 root root 0 Nov  3 00:30 ttyUSB0 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.0/ttyUSB0
lrwxrwxrwx 1 root root 0 Nov  3 00:30 ttyUSB1 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.1/ttyUSB1
lrwxrwxrwx 1 root root 0 Nov  3 00:30 ttyUSB2 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.2/ttyUSB2
lrwxrwxrwx 1 root root 0 Nov  3 00:30 ttyUSB3 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.4/1-1.4:1.3/ttyUSB3
pi@pi:~ $  ls -l /dev/serial/by-id
total 0
lrwxrwxrwx 1 root root 13 Nov  3 00:18 usb-Quectel_EG25-G-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Nov  3 00:18 usb-Quectel_EG25-G-if01-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Nov  3 00:18 usb-Quectel_EG25-G-if02-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Nov  3 00:18 usb-Quectel_EG25-G-if03-port0 -> ../../ttyUSB3

After the removal of modemmanager the modem should work fine.

What do you mean by not in useful way?

The signal strength seems to be weak.
Are you getting similar strength all the time?
Check the antennas are connected firmly.
You can check signal strength in a different location.

Additionally,
Since you are using the Quectel module, the cm-tool provided by the module OEM is recommended. It also recommends using the qmi_wwan_q driver instead of the qmi_wwan driver.

We have prepared an installation script for Raspberry Pi OS mentioned in the following tutorial.

What I mean is that the ifconfig traffic counters indicate bytes are moving, but they aren’t getting to the application. You can see the stats indicate good rx and tx traffic, but ping/curl/wget don’t work.

Still doesn’t work.

sailplan@sailplamast:/opt/qmi_files/quectel-CM $ sudo ./quectel-CM -s 'orbogd1.vp'
[11-03_17:04:18:230] QConnectManager_Linux_V1.6.1
[11-03_17:04:18:233] Find /sys/bus/usb/devices/1-1.4 idVendor=0x2c7c idProduct=0x125, bus=0x001, dev=0x003
[11-03_17:04:18:235] Auto find qmichannel = /dev/cdc-wdm0
[11-03_17:04:18:235] Auto find usbnet_adapter = wwan0
[11-03_17:04:18:235] netcard driver = qmi_wwan_q, driver version = V1.2.1
[11-03_17:04:18:236] Modem works in QMI mode
[11-03_17:04:18:277] cdc_wdm_fd = 7
[11-03_17:04:18:374] Get clientWDS = 17
[11-03_17:04:18:407] Get clientDMS = 1
[11-03_17:04:18:439] Get clientNAS = 3
[11-03_17:04:18:471] Get clientUIM = 2
[11-03_17:04:18:502] Get clientWDA = 1
[11-03_17:04:18:535] requestBaseBandVersion EG25GGBR07A08M2G
[11-03_17:04:18:663] requestGetSIMStatus SIMStatus: SIM_READY
[11-03_17:04:18:695] requestGetProfile[1] orbogd1.vp///0/IPV4
[11-03_17:04:18:695] requestSetProfile[1] orbogd1.vp///0/IPV4
[11-03_17:04:18:695] no need to set skip the rest
[11-03_17:04:18:727] requestRegistrationState2 MCC: 310, MNC: 410, PS: Attached, DataCap: LTE
[11-03_17:04:18:758] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
[11-03_17:04:18:758] ifconfig wwan0 0.0.0.0
[11-03_17:04:18:773] ifconfig wwan0 down
[11-03_17:04:18:824] requestSetupDataCall WdsConnectionIPv4Handle: 0x873f2310
[11-03_17:04:18:952] ifconfig wwan0 up
[11-03_17:04:18:965] busybox udhcpc -f -n -q -t 5 -i wwan0
udhcpc: started, v1.30.1
No resolv.conf for interface wwan0.udhcpc
udhcpc: sending discover
udhcpc: sending select for 10.90.0.127
udhcpc: lease of 10.90.0.127 obtained, lease time 7200
[11-03_17:04:19:289] /etc/udhcpc/default.script: Resetting default routes
SIOCDELRT: No such process
[11-03_17:04:19:295] /etc/udhcpc/default.script: Adding DNS 10.49.254.20
[11-03_17:04:19:295] /etc/udhcpc/default.script: Adding DNS 10.49.254.21

after a little bit, I get a steady stream of

[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval
[11-03_17:09:20:000] poll fd = 7, events = 0x0008
[11-03_17:09:20:000] QmiWwanThread poll err/hup/inval

I tried restarting from scratch (fresh pi install, etc.) and had the same results.

Could you please share the output of the following?
route -n
ping -I wwan0 google.com

What is the signal strength in the location of the test?
AT+CSQ
AT+QCSQ