Quectel EC21 with internal GSM MUX

Christian Meusel <[email protected]> Thu, 25 Sep 2025 14:55:51 +0000
Newsgroups dev.linux.lists.ofono
Message-ID <[email protected]>
--Apple-Mail=_94C00879-6570-4EA2-A508-8E8663BBF4F1
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hello,

I'm updating an embedded Linux system and reached the point where most =
things work but I'm still struggling with getting a Quectel EC21 back =
into operation.

I updated from Linux 5.12 with oFono 1.34 to Linux 6.1 with oFono 2.18. =
I also switched from using n_gsm as GSM MUX to oFono's internal MUX =
because n_gsm does not seem to receive responses from the modem when =
transitioning from plain AT to GSM MUX-ing on the serial line in Kernel =
6.1. I can tell more of that story upon request, but I'm trying to cut =
the effort for debugging and fixing by using oFono's MUX for the moment.

For a Quectel M95 this is the end of the story as I can use a cellular =
data connection again.

But this is not the case for a Quectel EC21 in the same setup. After =
adding a delay for the modem to switch into GSM MUX mode, communication =
stalls after the first message from setup_aux [1] from =
plugins/quectel.c, I can see the first of the AT commands issued from =
this function on the wire, an OK response from the modem is received, =
and then communications stalls. None of the other commands appears on =
the wire. The other commands got queued according to further =
instrumentation of g_at_chat_send.

    Sep 25 14:45:48 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:ate_cb() =
0x4f6400
    Sep 25 14:45:48 target ofonod[4030]: at_chat_send_common: enqueued =
"AT+CMUX=3D0,0,5,127,10,3,30,10,2", len is 1
    Sep 25 14:45:48 target ofonod[4030]: UART: > =
AT+CMUX=3D0,0,5,127,10,3,30,10,2\r
    Sep 25 14:45:48 target ofonod[4030]: UART: < \r\n
    Sep 25 14:45:48 target ofonod[4030]: UART: < OK\r\n
    Sep 25 14:45:48 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:cmux_cb() =
0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/src/modem.c:get_modem_property()=
 modem 0x4f6400 property Mux
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:cmux_activatio=
n_delay_cb() 0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:cmux_gatmux() =
0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:create_chat() =
0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:create_chat() =
0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:identify_model=
() 0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: at_chat_send_common: enqueued =
"AT+CGMM", len is 1
    Sep 25 14:45:49 target ofonod[4030]: Aux: > AT+CGMM\r
    Sep 25 14:45:49 target ofonod[4030]: Aux: < \r\nEC21\r\n\r\nOK\r\n
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:cgmm_cb() =
0x4f6400 ok 1
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:cgmm_cb() =
0x4f6400 model EC21
    Sep 25 14:45:49 target ofonod[4030]: =
../../../../../../workspace/sources/ofono/plugins/quectel.c:setup_aux() =
0x4f6400
    Sep 25 14:45:49 target ofonod[4030]: at_chat_send_common: enqueued =
"ATE0; &C0; +CMEE=3D1", len is 1
    Sep 25 14:45:49 target ofonod[4030]: at_chat_send_common: enqueued =
"AT+QURCCFG=3D"urcport","uart1"", len is 2
    Sep 25 14:45:49 target ofonod[4030]: at_chat_send_common: enqueued =
"AT+CFUN?", len is 3
    Sep 25 14:45:49 target ofonod[4030]: Aux: > ATE0; &C0; +CMEE=3D1\r
    Sep 25 14:45:49 target ofonod[4030]: Aux: < \r\nOK\r\n
    Sep 25 14:45:54 target ofonod[4030]: Aux: < \r\nNORMAL POWER =
DOWN\r\n
    Sep 25 14:45:54 target ofonod[4030]: Modem: < \r\nPOWERED DOWN\r\n
    Sep 25 14:45:54 target ofonod[4030]: Aux: < \r\nPOWERED DOWN\r\n

I'm digging into oFono's codebase for the first time. In setup_aux, I'm =
seeing g_at_chat_send-ing multiple requests in a row and =
g_at_chat_send-ing without a callback for the first time. Is this =
supposed to work or might this be the cause of the current "roadblock" =
on my way?


Best regards,

Christian

--=20
[1] =
https://git.kernel.org/pub/scm/network/ofono/ofono.git/tree/plugins/quecte=
l.c?h=3D2.18#n824=

--Apple-Mail=_94C00879-6570-4EA2-A508-8E8663BBF4F1
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEIhqZz/J2souq/IKUfmJl21on4+EFAmjVV90ACgkQfmJl21on
4+HyQw/+KcIMKFYFYxq0Y32ZPBgnicedswVrHtPJSZy5aGb13lUqheRFpVHv021S
/WYNptWE3XIw0SGnI8+A0fr+cLxIwsjrHj0M6mdbMHJV0oySuv0N0ChcbZor2j06
s+exfVcRKrBQOb/v/49ilvMtp3mpFT1cAIWws/WD162twL0s1oKSOdZSlQ6da5No
LJk3KqWfbATvaZIEAL8SrGjOMVeNM6Q9sZNOFu7JXncy7TXpV2rP2DSRnguZmAD9
9FLr8pSYZYru73XTJta3Cu9kMNYjSSRGyy6tPuTXZD5/cS9DQ7TBFfAKyveWMP/l
XPV1eUsS7N2kCtUIFT79Wd9YA1t9Mmbl8hACORAS2wGax0QI9gs2iRxAG2yMUCjV
C+ZtQUtFHE47QysTkXmnJ63EuN4CH79AA7S0fueOd8VpFMBQo5Bop5IFwwb8//fq
/GpmgJ8pSdG0U0utBVuYoxsuJNboFqI0Kf5KHFh8iCx6abxaQLe3Fmwz8iVYRG10
4u1MOpECBqhbAJK3ewepsEhvszocH2HjchDH395cbt91iax+swDHgiccAJMUZwZp
bBE1Kzr/3+EzjjVemX1TonT6U1XXr+LhO+K5nk66KSyt2yWRsvQ/9/HpnfqWZUZl
ePL1cHFBu/1pU4/K4CYVKTWsmOV4uQA2d8T7Dn0mOs5tHZZKoe0=
=G+v+
-----END PGP SIGNATURE-----

--Apple-Mail=_94C00879-6570-4EA2-A508-8E8663BBF4F1--