DART-MX8M Android Modem: Difference between revisions

From Variscite Wiki
Line 110: Line 110:

== Flash Android Images with RIL ==  
== Flash Android Images with RIL ==  
Flash the resulting Android Images
{{Varlink|Android_NXP_Guide|{{#var:RELEASE_LINK}}##Flashing_Android_with_USB_Fastboot|Developers Guide}}
{{Varlink|Android_NXP_Guide|{{#var:RELEASE_LINK}}##Flashing_Android_with_USB_Fastboot|Developers Guide}}

Revision as of 22:01, 28 November 2021

DART-MX8M - Android Oreo Android O8.1.0_r14 - mPCIE - Modem


The DART-MX8M is capable of adding mini PCI-e based modem to support LTE connectivity.


  • At present we support only LTE Quectel EC25 support.
  • Other modules could be supported please contact your module vendor.

Hardware Interface

Hardware Availability and Setup

Software Setup

Make sure you have the required hardware as per above.

RIL Setup

By default, the build doesn't have a RIL setup. <be> To add the RIL support follow the below steps.

Register and get access to the download zone https://www.quectel.com/login Download Quectel_Android_RIL_Driver_XX.Y.ZZ_master_<release>.tgz Where (XX.Y.ZZ are version numbers from quectel and <release> can be alpha/beta etc)

Adding Driver to build

Downloading and adding Quectel RIL to build

$ cd ~/var_imx-o8.1.0_1.3.0_8m/android_build
$ mkdir -p vendor/quectel/
$ tar -xvf ~/Downloads/Quectel_Android_RIL_Driver_V3.3.49_master_beta.tgz -C vendor/quectel/

Add Quectel libraries to build

Edit device/variscite/imx8m/dart_mx8m/dart_mx8m.mk and add following code

# wifionly device

	vendor/quectel/libquectel-ril/arm64-v8a/libreference-ril.so:vendor/lib64/hw/libreferece-ril.so \
       vendor/quectel/libquectel-ril/arm64-v8a/ip-up:vendor/bin/ip-up \ 
       vendor/quectel/libquectel-ril/arm64-v8a/chat:vendor/bin/chat \
       vendor/quectel/libquectel-ril/arm64-v8a/ip-down:vendor/bin/ip-down \

Add Quectel libraries in the ril-daemon service

Edit device/variscite/imx8m/dart_mx8m/init.rc and add following code

service ril-daemon /vendor/bin/hw/rild -l vendor/lib64/hw/
    class main
    user radio
    group radio cache inet misc audio sdcard_rw log

Add RILD in the HIDL service

Edit device/variscite/imx8m/dart_mx8m/manifest.xml and add following code

<hal format="hidl">

Setup file context and selinux permissions

Edit device/variscite/imx8m/dart_mx8m/ueventd.nxp.rc and add following code

#quectel port
/dev/ttyUSB* 0660 radio radio
/dev/ttyACM* 0660 radio radio
/dev/cdc-wdm* 0660 radio radio
/dev/qcqmi* 0660 radio radio
/dev/cdc-acm* 0660 radio radio
/dev/mhi_DUN 0660 radio radio
/dev/mhi_DIAG 0660 radio radio
/dev/mhi_BHI 0660 radio radio
/dev/mhi_LOOPBACK 0660 radio radio
/dev/mhi_QMI0 0660 radio radio

Edit device/variscite/imx8m/dart_mx8m/sepolicy/file_contexts and add following code

/dev/ttyUSB[0-9] u:object_r:radio_device:s0
/dev/ttyACM[0-9] u:object_r:radio_device:s0
/dev/cdc-wdm[0-9] u:object_r:radio_device:s0
/dev/qcqmi[0-9] u:object_r:radio_device:s0
/vendor/bin/hw/rild u:object_r:rild_exec:s0
/dev/socket/rildOemHook u:object_r:rild_socket:s0
/dev/mhi_DUN u:object_r:radio_device:s0
/dev/mhi_DIAG u:object_r:radio_device:s0
/dev/mhi_BHI u:object_r:radio_device:s0
/dev/mhi_LOOPBACK u:object_r:radio_device:s0
/dev/mhi_QMI0 u:object_r:radio_device:s0

Create a seplicy file for rild to allow the socket communication File : device/variscite/imx8m/dart_mx8m/sepolicy/rild.te and add the following content to it.

allow rild self:packet_socket { create bind write read };

Build Android Images with RIL

Rebuild the android images using
Developers Guide

Flash Android Images with RIL

Flash the resulting Android Images Developers Guide


  1. https://forums.quectel.com/uploads/short-url/paFeIdgzFeu3ArLuJEfWpWkIV05.pdf
  2. https://www.quectel.com/product/lte-ec25-mini-pcie-series