Difference between revisions of "DART-MX8M Android Modem"
(21 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
--> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- | --> {{#vardefine:RELEASE_PARAM|{{#urlget:release}}}} <!-- | ||
--> {{#lst:Android_Platform_Customization|{{#var:RELEASE_PARAM|RELEASE_O8.1.0_1.3.0_8M_DART-MX8M}}}} <!-- | --> {{#lst:Android_Platform_Customization|{{#var:RELEASE_PARAM|RELEASE_O8.1.0_1.3.0_8M_DART-MX8M}}}} <!-- | ||
− | --> {{PageHeader|{{#var:HARDWARE_NAME}} - | + | --> {{PageHeader|{{#var:HARDWARE_NAME}} - {{#var:ANDROID_NXP_VERSION}} - mPCIE - Modem}} {{DocImage|category1=Android|category2={{#var:HARDWARE_NAME}}}} __toc__ |
=Overview= | =Overview= | ||
− | The {{#var:HARDWARE_NAME}} is capable of adding | + | The {{#var:HARDWARE_NAME}} is capable of adding a Mini PCI-E based modem to support LTE connectivity. |
Note:<br> | Note:<br> | ||
− | * At present we support | + | * At present we support LTE Quectel EC25. |
* Other modules could be supported please contact your module vendor. | * Other modules could be supported please contact your module vendor. | ||
+ | * Below steps are validated and tested upto Android 11 version | ||
== Hardware Interface == | == Hardware Interface == | ||
+ | * Quectel EC25 mPCI-E Hardware module with a SIM card <br> | ||
+ | * mPCI-E interface with USB support, like the one on the DT8MCustomBoard (note that the Symphony-Board mPCI-E interface does not support USB) | ||
=Hardware Availability and Setup= | =Hardware Availability and Setup= | ||
+ | * Connect SIM card to mPCIe-E module | ||
+ | * Connect mPCI-E Module to J23 | ||
+ | Note: Make sure your SIM provider is supporting mPCI-E module specification of the network. | ||
=Software Setup= | =Software Setup= | ||
Make sure you have the required hardware as per above. | Make sure you have the required hardware as per above. | ||
==RIL Setup== | ==RIL Setup== | ||
− | By default, the build doesn't have a RIL setup. < | + | By default, the build doesn't have a RIL setup.<br> |
− | To add the RIL support follow the below steps. | + | To add the RIL support follow the below steps.<br> |
− | + | <br> | |
− | Register and get access to the download zone https://www.quectel.com/login | + | Register and get access to the download zone https://www.quectel.com/login<br> |
− | Download Quectel_Android_RIL_Driver_XX.Y.ZZ_master_<release>.tgz | + | Download Quectel_Android_RIL_Driver_XX.Y.ZZ_master_<release>.tgz<br> |
Where (XX.Y.ZZ are version numbers from quectel and <release> can be alpha/beta etc) | Where (XX.Y.ZZ are version numbers from quectel and <release> can be alpha/beta etc) | ||
==Adding Driver to build== | ==Adding Driver to build== | ||
+ | |||
+ | Edit {{#ifeq:{{#var:KERNEL_HAS_GKI}}|true | | ||
+ | arch/arm64/configs/{{#var:KERNEL_GKI_FRAGMENT}} and add following | ||
+ | CONFIG_USB_NET_QMI_WWAN=m | ||
+ | | | ||
+ | {{#var:KERNEL_DEFCONFIG}} and enable following | ||
+ | Device Drivers-> | ||
+ | Network device support -> | ||
+ | USB Network Adapters -> | ||
+ | Multi-purpose USB Networking Framework -> | ||
+ | <*> QMI WWAN driver for Qualcomm MSM based 3G and LTE modems | ||
+ | and enable | ||
+ | CONFIG_USB_NET_QMI_WWAN=y | ||
+ | }} | ||
==Downloading and adding Quectel RIL to build== | ==Downloading and adding Quectel RIL to build== | ||
Line 44: | Line 64: | ||
PRODUCT_COPY_FILES += \ | PRODUCT_COPY_FILES += \ | ||
vendor/quectel/libquectel-ril/arm64-v8a/libreference-ril.so:vendor/lib64/hw/libreferece-ril.so \ | 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 \ | |
vendor/quectel/libquectel-ril/ql-ril.conf:vendor/etc/ql-ril.conf | vendor/quectel/libquectel-ril/ql-ril.conf:vendor/etc/ql-ril.conf | ||
fi | fi | ||
Line 105: | Line 125: | ||
allow rild self:packet_socket { create bind write read }; | allow rild self:packet_socket { create bind write read }; | ||
− | == Build Images with RIL == | + | == Build Android Images with RIL == |
Rebuild the android images using <br> | Rebuild the android images using <br> | ||
− | {{Varlink|Android_NXP_Guide|{{# | + | {{Varlink|Android_NXP_Guide|{{#var:RELEASE_LINK}}#Build_Android_Images|Developers Guide}} |
+ | |||
+ | == Flash Android Images with RIL == | ||
+ | Flash the resulting Android Images | ||
+ | {{Varlink|Android_NXP_Guide|{{#var:RELEASE_LINK}}#Flashing_Android_with_USB_Fastboot|Developers Guide}} | ||
=References= | =References= | ||
# https://forums.quectel.com/uploads/short-url/paFeIdgzFeu3ArLuJEfWpWkIV05.pdf | # https://forums.quectel.com/uploads/short-url/paFeIdgzFeu3ArLuJEfWpWkIV05.pdf | ||
# https://www.quectel.com/product/lte-ec25-mini-pcie-series | # https://www.quectel.com/product/lte-ec25-mini-pcie-series |
Latest revision as of 10:48, 18 November 2022
1 Overview
The DART-MX8M is capable of adding a Mini PCI-E based modem to support LTE connectivity.
Note:
- At present we support LTE Quectel EC25.
- Other modules could be supported please contact your module vendor.
- Below steps are validated and tested upto Android 11 version
1.1 Hardware Interface
- Quectel EC25 mPCI-E Hardware module with a SIM card
- mPCI-E interface with USB support, like the one on the DT8MCustomBoard (note that the Symphony-Board mPCI-E interface does not support USB)
2 Hardware Availability and Setup
- Connect SIM card to mPCIe-E module
- Connect mPCI-E Module to J23
Note: Make sure your SIM provider is supporting mPCI-E module specification of the network.
3 Software Setup
Make sure you have the required hardware as per above.
3.1 RIL Setup
By default, the build doesn't have a RIL setup.
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)
3.2 Adding Driver to build
Edit imx8m_var_dart_android_defconfig and enable following
Device Drivers-> Network device support -> USB Network Adapters -> Multi-purpose USB Networking Framework -> <*> QMI WWAN driver for Qualcomm MSM based 3G and LTE modems
and enable
CONFIG_USB_NET_QMI_WWAN=y
3.3 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/
3.3.1 Add Quectel libraries to build
Edit device/variscite/imx8m/dart_mx8m/dart_mx8m.mk and add following code
TARGET_HAVE_QUECTEL_RIL := true ifeq ($(TARGET_HAVE_QUECTEL_RIL),true) # wifionly device PRODUCT_PROPERTY_OVERRIDES += \ ro.radio.noril=false PRODUCT_COPY_FILES += \ 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 \ vendor/quectel/libquectel-ril/ql-ril.conf:vendor/etc/ql-ril.conf fi
3.3.2 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 capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW
3.3.3 Add RILD in the HIDL service
Edit device/variscite/imx8m/dart_mx8m/manifest.xml and add following code
<hal format="hidl"> <name>android.hardware.radio</name> <transport>hwbinder</transport> <fqname>@1.4::IRadio/slot1</fqname> <fqname>@1.2::ISap/slot1</fqname> </hal>
3.3.4 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 #PCIe /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
#quectel /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 #PCIe /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 };
3.4 Build Android Images with RIL
Rebuild the android images using
Developers Guide
3.5 Flash Android Images with RIL
Flash the resulting Android Images Developers Guide