[EC25] Is it possible to have data connection without using Quectel-CM?


I switched from Huawei LTE modules to Quectel EC25.

With the Huawei modules, I could easily establish data connections over Internet only with AT commands. Is it possible to do it with Quectel ? I can establish a connection by entering some AT commands and then running Quectel-CM but I can’t do it without this software.

I’m on Linux 4.14. My device is shown like this :
Bus 001 Device 009: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem

Modules used when EC25 is connected are : usb_wwan, usbnet, cdc_wdm, qmi_wwan, option, mii.

I can give more information if necessary.


I could achieve what I wanted by using the ‘cdc_ether’ driver.

I’ve changed the operating mode of the LTE module with AT+QCFG="usbnet",1.

It is recommended to use quectel-CM.
If you do not use quectel-CM, in the case of usbnet=0, use GobiNet driver and configure qcrmcall_mode to 1, you can use AT$QCRMCALL=1,1 to set up data call, and quectel-CM can also be replaced with some open source tools like ModemManager、libqmi.

Hello Bean,

Thanks for your answer.

I will stick with qmi_wwan and quectel-CM. My issue is that I’m launching my wwan0 interface through ifup command and this last command from NodeJS exec() in a X11 application. Due to X11, the callback of exec() is never called because quectel-CM never exits (even tried with &, nohup, disown, sh -c). I don’t know why but it’s not specific to quectel-CM, it would happen why any software running forever in background.
But I’ve found I could use udevd to start it instead of a script in if-pre-up.d/. So it seems fine now.

Note for users wanting to use ECM (usbnet=1) :

  • EC25ECGAR06A06M1G → This firmware version doesn’t work well with ECM.
  • EC25ECGAR06A08M1G → This firmware version and newer is OK with ECM.
  • I didn’t try ‘07’ as I don’t have it.

That’s why I didn’t go with ECM. Updating remotely the firmware (55MB) on thousands of devices would be a pain.

Hello Carton,

Did you find the solution to exit or get a return value of quectel-CM?
If yes then please share the solution


Yes. I’m launching quectel-cm with a udev rule :

SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0125", NAME="gsm0", RUN+="/bin/sh -c '/usr/sbin/start-quectel-cm | at now'"
SUBSYSTEM=="net", ACTION=="remove", ATTRS{idVendor}=="2c7c", ATTRS{idProduct}=="0125", RUN+="/bin/sleep 2", RUN+="/bin/sh -c 'killall quectel-CM'"

I get some warnings after a few minutes from udev that it will kill the quectel-cm process because it has not exited but, in fact, it does not kill it. I use this trick on >2500 devices.

FYI: On openwrt, it is standard to use Quectel modems, i.g. EC25, in QMI mode, without quectel-cm. I am doing this with EC25-AF, EC25-E, EC25-A, EC25-V. On openwrt there is a utility, uqmi, to allow QMI-cmds to the modem from CLI. When running “full” LINUX, you might use “modemnanager” or copy/modify the relevant files from openwrt.