How force EC21 with ModemManager to use cdc primary port

We are trying to setup our EC21 Modem with the ModemManager 1.10.8 (open embedded zeus) and with the kernel 5.4. Randomly it takes the correct primary port, but 1 of 10 times.

defconfig is cofigured like the pdf description says and wwan0 is available and also /cdc-wdm0 is there. With ModemManager —debug it says qmi not availabel after a reset.

The file qmi_wwan_q.c/o isnt installed.

How can I fix this issue?
Which logs would help for debug?

BR
Cris

If you would like to use ModemManager to set up datacall, please use the original qmi_wwan.c in the kernel source.

jouralctl -xu ModemManager > log.txt

Hi Bean Wang

Thank you very much for your response.

I tried to reply you over the platform, but it tells me, that new users are not allowed to upload files.

So I wrote you on forums@quectel.com.

In this logs.zip you will find four logfiles:

  • journalctl -xu ModemManager > log.txt

  • journalctl > kernel_log.txt

  • sudo /usr/sbin/ModemManager --debug --log-file ./ModemManager_debug_log.txt

  • Same but with a hard reset of the modem (power off / power on)

  • sudo /usr/sbin/ModemManager --debug --log-file ./ModemManager_debug_after_modem_reset_log.txt

Do you see anything, where indicate the issue? What I see, it is communicating over /dev/cdc-wdm0 but “finishes with QMI port open operation finished”.

Thanks in advance.

BR

Cris

Please show the result:

cat /sys/kernel/debug/usb/devices

systemctl status ModemManager

and send the ModemManager log to bean.wang@quectel.com.

If possible, please try the lastest version of ModemManager such as 1.18.x.

I’ve tried it.

I’ve found the issue.

With yocto openembedded, the “packagegroup-base” has a RDEPEND for “ofono”.

When you analise on the target who wants to acces the “cdc-wdm0” device with “lsof”, you see dbus and “ofono”. This is the reason for the broken pipes with the modemmanager.

For all yocto developers around there.
Write a packagegroup-base.bbappend with this content:
RDEPENDS_packagegroup-base-3g_remove = "
ofono"

Good luck!

Cheers
Cris

2 Likes

Good to hear that.

You can use the tool fuser and lsof to find it out.