DART-MX8M Android Modem: Difference between revisions

From Variscite Wiki
Line 49: Line 49:
  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
=== Add Quectel libraries in the ril-daemon service ===
Edit device/variscite/imx8m/{{#var:ANDROID_MACHINE_NAME}}/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
=== Add RILD in the HIDL service ===
Edit device/variscite/imx8m/{{#var:ANDROID_MACHINE_NAME}}/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>
=== Setup file context and selinux permissions ===
Edit device/variscite/imx8m/{{#var:ANDROID_MACHINE_NAME}}/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/{{#var:ANDROID_MACHINE_NAME}}/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/{{#var:ANDROID_MACHINE_NAME}}/sepolicy/rild.te
and add the following content in it.
allow rild self:packet_socket { create bind write read };


=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

Revision as of 08:30, 28 November 2021

DART-MX8M - Android Oreo Android O8.1.0_r14 - Camera

Overview

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


Note:

  • 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, build doesn't have RIL setup. <be> To add the RIL support follow below steps.

Register and get access to 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

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

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

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>

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 in it.

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

References

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