任务:在rk3568 android11 上移植ec20 模块

总体思路:
Linux 驱动:配置 dts 将 rksdk/kernel/driver 中的4g 驱动配置上,然后根据移远文档,添加 usb 枚举和一些代码修改
Android 系统配置:将移远提供的 ril 库替换上,并且根据需求替换其他组件。在 ril.rc 启动 ril 守护进程的时候指定库和 usb 口。根据 rk 配置4g 的需求打开一些配置。

Ril 驱动相关:
RIL分为RILJ和RILD两部分,RILJ属于Java层,RILD属于C层。那先看下RILD所处于的位置,以及与其相关的模块,RILD处于android系统HAL(HARDWARE ABSTRACTION LAYER)这一层。是telephony framework(RILJ属于这一部分,用来与RILD建立通道)与modem(基带芯片)沟通的桥梁。最上层就是通话和短信等APK。
之所以这样设计是因为不同的厂商使用的Modem不一样,而RIL又和Modem紧密联系,所以Android有把和Modem联系紧密的部分和公共部分剥离开,让不同的厂商可以自己实现vendor RIL以适应厂商自己的Modem。也就是 reference-ril.so 这个库,所以我们要使用由移远提供的库进行替换。

调试过程中的特别注意:
在 .mk 中添加了 4g 的配置后编译不过的解决方法:

--- a/external/usb_modeswitch/usb_dongle/Android.mk
+++ b/external/usb_modeswitch/usb_dongle/Android.mk
@@ -19,7 +19,7 @@ common_shared_libraries := \
common_cflags := -Werror -Wall -Wno-missing-field-initializers -Wno-unused-variable -Wno-unused-parameter
-common_local_tidy_flags := -warnings-as-errors=clang-analyzer-security*,cert-*
+#common_local_tidy_flags := -warnings-as-errors=clang-analyzer-security*,cert-*
common_local_tidy_checks := -,clang-analyzer-security,cert-*,-cert-err34-c,-cert-err58-cpp
common_local_tidy_checks += ,-cert-env33-c

添加和修改ril 守护进程的时候,需要添加上网功能,否则无法上网

service ril-daemon system/vendor/bin/hw/rild -l /vendor/lib64/libreference-ril-ec20.soclass mainuser radiogroup radio cache inet misc audio sdcard_rw logcapabilities BLOCK_SUSPEND NET_ADMIN NET_RAW    //在这里添加功能

系统中没有电话短信应用

--- a/device/rockchip/common/device.mk
+++ b/device/rockchip/common/device.mk
@@ -264,7 +264,24 @@ PRODUCT_PACKAGES += \CarrierConfig \rild \librk-ril \
-    dhcpcd
+    dhcpcd \
+    Dialer \          拨号应用
+    messaging \       短信应用
+    TelephonyProvider \
+    TeleService \
+    Telecom

在下拉状态栏和设置中都没有关于 sim 卡的配置

--- a/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/device/rockchip/rk356x/overlay/frameworks/base/core/res/res/values/config.xml
@@ -31,6 +31,14 @@<!-- the 6th element indicates boot-time dependency-met value. --><string-array translatable="false" name="networkAttributes"><item>"wifi,1,1,2,-1,true"</item>
+        <item>"mobile,0,0,0,-1,true"</item>
+        <item>"mobile_mms,2,0,2,60000,true"</item>
+        <item>"mobile_supl,3,0,2,60000,true"</item>
+        <item>"mobile_dun,4,0,2,60000,true"</item>
+        <item>"mobile_hipri,5,0,3,60000,true"</item>
+        <item>"mobile_fota,10,0,2,60000,true"</item>
+        <item>"mobile_ims,11,0,2,60000,true"</item>
+        <item>"mobile_cbs,12,0,2,60000,true"</item><item>"bluetooth,7,7,0,-1,true"</item><item>"ethernet,9,9,9,-1,true"</item></string-array>

如果无法上网,也可以尝试修改上网状态的选择模式

--- a/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java
+++ b/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java
@@ -237,7 +237,7 @@ public interface RILConstants {int PREFERRED_NETWORK_MODE = Optional.of(TelephonyProperties.default_network()).filter(list -> !list.isEmpty()).map(list -> list.get(0))
-            .orElse(NETWORK_MODE_WCDMA_PREF);
+            .orElse(NETWORK_MODE_LTE_GSM_WCDMA);int BAND_MODE_UNSPECIFIED = 0;      //"unspecified" (selected by baseband automatically)int BAND_MODE_EURO = 1;             //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)

rk3568 4g 模块调试-ec20(移远模块)相关推荐

  1. 4g模块注册上网 移远_Openwrt支持移远4G模块过程记录

    参考了不少教程,也做了不少尝试,最后记录下整个过程以便自己和坛友们参考 我所用的4G模块是Quectel EC20 R2.0,对于这个型号以下的操作前半部分修改USB Serial驱动应该是不需要的, ...

  2. 车辆跟踪设备中移远模块SMTP功能介绍

    随着物联网的发展,近年来移远作为全球领先的无线模块供应商,其模块被应用在多个行业,为众多行业提供了设备的通信基础.其中之一就是物联网的资产跟踪方向. 资产监测包括了: 常规资产监测.车辆监测.人员定位 ...

  3. 人员定位胸牌关于不同移远模块LBS定位数据格式差异的问题说明

    随着物联网的发展,关于资产跟踪定位的需求不断攀升,其中人员定位作为其中重要一项,被广泛运用于老人.儿童防丢失.户外工作者管理以及企业内部优化流程等. 人员定位胸牌采用WIFI/GNSS/LBS多种定位 ...

  4. 4g模块注册上网 移远_RK3399 4G模块移远EC20移植调试

    CPU:RK3399 系统:Android 7.1 1.通过串口打印或者adb获取模块的 pid 和 vid,顺便可以看到生成 4 个虚拟串口 /dev/ttyUSB* [ 11.734379] us ...

  5. 4G模块使用记录移远EC20、BC20

    目录 0. 概述 硬件连接 -- UART 休眠管脚的使用 硬件连接 -- USB USB线序定义 驱动安装 抓取模组log 模组型号和SIM卡 模组区别 本地卡和漫游卡 SIM卡和APN 1. EC ...

  6. 4g模块注册上网 移远_移远EC20(4G模块)通过openwrt路由器拨号上网

    移远EC20是一个兼容性比较强的4G模块.我入手的这个是EC20 R2.1版本,pcie接口的,这个版本是增强版,支持最高150Mbps的下载速率,而普通的EC20只有100Mbps下载速率.这个是全 ...

  7. 4g模块注册上网 移远_Openwrt如何实现4G模块上网功能

    大家都知道传统的路由器无非基于以下几种方式上网: 首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤. 入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出. 早期的电话 ...

  8. 4g模块注册上网 移远_【技术分享】Openwrt实现4G模块上网功能

    大家都知道传统的路由器无非基于以下几种方式上网:首先运营商会将网线拉入居室,该网络可以是传统的电话线/双绞线/光纤. 入户的信号线,需要通过调制解调器(猫)转换为数字信号,通过网线输出. 早期的电话上 ...

  9. 4g模块注册上网 移远_Openwrt实现4G模块上网功能

    Openwrt 实现 4G 模块上网功能 上海润欣科技股份有限公司创研社 大家都知道传统的路由器无非基于以下几种方式上网: 首先运营商会将网线拉入居室,该网络可以是传统的电话线 / 双绞线 / 光纤. ...

  10. 4g模块注册上网 移远_通信模组企业 移远通信amp;广和通

    无线通信模组通常长这个样,它是物联网设备中的关键部件. 1. 通信模组介绍无线模组为物联网开发者提供了便利,使开发者可以专注于特定应用领域业务的开发而不用关注通信协议的技术细节.无线通信模组厂商通常会 ...

最新文章

  1. Node.js学习之路09——Path基本介绍
  2. 亚马逊推出VR/AR开发平台Sumerian,功能强大不同于Poly
  3. 算法(15)-leetcode-explore-learn-数据结构-运用递归解决二叉树的问题
  4. 如何在SQL Server数据库中加密数据
  5. foreach循环符合就不往下走了_Java基础入门篇——For循环
  6. Leecode刷题热题HOT100(4)——寻找两个正序数组的中位数
  7. 逻辑回归详解及Python实现
  8. HTML5标签canvas制作动画
  9. java 定义一个商品类_用java编写一个产品类, 1. 属性:产品编号,产品名称,产品单价,产品库存,2.构造方...
  10. MySQL 中 TIMESTAMP 类型返回日期时间数据中带有 T
  11. java数组初始化的方式_java数组初始化方式
  12. Python语言程序设计笔记
  13. PaddleClas蝴蝶分类
  14. Android 开源图片裁剪工具、图片显示工具分享
  15. 神经网络(九)无监督学习
  16. 常用的dns地址分享
  17. 997. 找到小镇的法官_小镇...
  18. Mcad学习笔记之Microsoft Windows服务
  19. Scala类和对象详解
  20. Fractal解题笔记

热门文章

  1. 深信服(SCSA)认证学习—基础知识点二
  2. 软考之软件设计师(教程电子版、历年真题详解、其他资料)
  3. cron表达式解析生成网站
  4. 使用Maven导入MySQL驱动包遇到的问题
  5. Python实现音乐推荐系统【跟着迪哥学python】
  6. OpenGL超级宝典 绘制第一个三角形
  7. 单片机原理及应用课程设计
  8. java关于考核 源码,java+mysql年终教师考核系统的设计+源代码
  9. php netstat,Netstat 命令详解
  10. c#通过网络链接打印PDF