Help needed in bringup of EC25-E modem with i.MX8M mini on Android 13

Hi,

I am trying to bring up EC25-E modem on NXP i.MX8m mini evaluation kit. I am using USB interface.
i.MX8m mini is running latest Android 13.

Will EC25-E work with Android 13?

Can you please let me know the steps to be followed to get 4G mobile data, call and SMS operational on i.MX8m mini evaluation kit with EC25-E modem?

I see Android RIL driver files of different versions. Please let me know which version to use.
Also please point me to the right version of documents, porting guide etc to follow to get EC25-E working with i.MX8m mini Android 13.

Thanks,
Somesh

Dear @someshwar.ms

It is possible to make EC25 work well on Android 13.

What you need to do:

Follow the Quectel_UMTS_LTE_5G_Linux_USB_Driver_User_Guide_V3.1.pdf
to make sure the kernel drivers are done.

Follow the Quectel_Android_RIL_Driver_User_Guide_V2.0.pdf
to port RIL driver.

I will send you the RIL driver and the qmi_wwan_q by email.

Thanks a lot for your timely help.

Thanks,
Somesh

Dear Bean,

We are following the steps in Quectel_Android_RIL_Driver_User_Guide_V2.0.pdf.

In 3.4. RIL Driver Integration by Library
there is a path into which the .so (library) has to be copied.
10.x/11.x /vendor/lib/hw/libreferece-ril.so /vendor/lib64/hw/libreferece-ril.so

In NXP i.MX8m mini Android 13 source tree, we are unable to see this path.
We contacted NXP regarding this. They asked us to get an updated path from Quectel for Android 13.

Here is the reply by NXP.

Also we need to follow this default IRadio version right?

  1. IRadio 1.0 (Default)

Can you please help us in this?

Thanks,
Somesh

For Android 13, by default the IRadio 1.6 should be applied.
But Quectel couldn’t support the IRadio 1.6 till now.
IRadio 1.0/1.4/1.5 is also supported on Android 13.
I think you can try the IRadio1.0 first.
If it fail, we could the IRadio 1.5.
To support the IRadio 1.5, Quectel will provide the libril.so instead of the original one.

Thank you for your reply.

Does this path
10.x/11.x /vendor/lib/hw/libreferece-ril.so /vendor/lib64/hw/libreferece-ril.so
is still the same for Android 13 or will this path change for Android 13?
We are unable to find /vendor/lib64/hw/ path in Android 13 source tree of NXP i.MX8m mini.
Can you please clarify this as well?

Thanks,
Somesh

Is it 32 bit version Android?

Hi Bean,

The Android version is 64 bit.

We figured out where to put the .so files.
It was inside this path.
android-13/android_build/out/target/product/evk_8mm/vendor/

Actually NXP-imx8m mini evk source already had the same .so file present.

So we tested the stock android 13 image provided by NXP and connected EC25-E module over USB.
It is getting detected without any software code changes in the stock Android 13 image provided by NXP.

In the console log we see the below error.

[ 72.759065][ T156] usb 2-1.1: Product: EC25-E
[ 72.763953][ T156] usb 2-1.1: Manufacturer: Quectel
[ 73.905146][ T156] usb 2-1.1: USB disconnect, device number 7
[ 78.441031][ T466] healthd: battery l=85 v=3 t=35.0 h=2 st=2 c=400000 fc=4000000 cc=32 chg=a
[ 87.451543][ T156] usb 2-1.1: new high-speed USB device number 8 using ci_hdrc
[ 87.593431][ T156] usb 2-1.1: New USB device found, idVendor=2c7c, idProduct=0125, bcdDevice= 3.18
[ 87.602593][ T156] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 87.610849][ T156] usb 2-1.1: Product: EC25-E
[ 87.615607][ T156] usb 2-1.1: Manufacturer: Quectel
[ 105.857391][ T301] type=1400 audit(1675793289.808:88): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 105.884305][ T301] type=1400 audit(1675793289.808:89): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 105.908127][ T301] type=1400 audit(1675793289.808:90): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 105.932270][ T301] type=1400 audit(1675793289.816:91): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 105.955982][ T301] type=1400 audit(1675793289.880:92): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 105.966511][ T1915] audit: audit_lost=1 audit_rate_limit=5 audit_backlog_limit=64
[ 105.979847][ T301] type=1400 audit(1675793289.908:93): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 105.986877][ T1915] audit: rate limit exceeded
[ 106.009893][ T301] type=1400 audit(1675793289.912:94): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 106.037838][ T301] type=1400 audit(1675793289.912:95): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
[ 106.061459][ T301] type=1400 audit(1675793289.916:96): avc: denied { read } for comm=“RenderThread” name=“u:object_r:vendor_default_prop:s0” dev=“tmpfs” ino=319 scontext=u:r:system_server:s0 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0

Any clues on this error?

If Quectel EC25-E is already detected, we expected to see the 4G network (signal strength bars) on the home screen and be able to connect to internet data using quectel EC25-E + NXP i.mx8m mini.

That doesn’t seem to be happening, any pointers on how to achieve this will be helpful.

Thanks,
Somesh

Have you recieved the RIL driver and the qmi_wwan_q.c?

Please port the RIL the driver.

Please follow the patch I have tested on Android 13.
I will send it by email.

I also need driver for android 9 and 10 sir . Please email me vỉa tsoftg7@gmail.com . Thanks you much !

Hello Bean,
I am trying to bring up EG25-G Mini PCIe on NXP i.MX8m Plus evaluation kit.
i.MX8m plus is running latest Android 13.
Please share me the latest required files & RIL Driver.

I will send it.
For RIL porting, you can contact me by Teams (bean.wang@quectel.com ) or Skype(wang_biao_2).

Hello Bean,
I am trying to bring up EC25-E USB on MTK platform, which is running on Android 12 or newer versions.
Would you please kindly share me the latest required files & RIL Driver.
Thank you

I could provide the RIL libs.
But for MTK Android, it might be easy to port RIL.
@ct.chen
Have you solved it?

@Bean.Wang-Q
Thanks for response, I’ve described some problem we met on Skype
Pls check when available, thank you

For MTK Android, you need to remove the mtk-rild and all the MTK vendor specified RIL HAL. It is better to provide remote access to the Android Source code.
And it is very sorry. because it is not allowed to discuss on Skype.