RK3399 4G模块移远EC20移植调试
转载请注明出处:https://www.cnblogs.com/lialong1st/p/11266330.html
CPU:RK3399
系统:Android 7.1
1、通过串口打印或者adb获取模块的 pid 和 vid,顺便可以看到生成 4 个虚拟串口 /dev/ttyUSB*
[ 11.734379] usb -1.1: new high-speed USB device number using ehci-platform
[ 11.828247] usb -1.1: New USB device found, idVendor=2c7c, idProduct=
[ 11.828386] usb -1.1: New USB device strings: Mfr=, Product=, SerialNumber=
[ 11.828413] usb -1.1: Product: Android
[ 11.828436] usb -1.1: Manufacturer: Android
[ 11.835480] option -1.1:1.0: GSM modem (-port) converter detected
[ 11.841217] usb -1.1: GSM modem (-port) converter now attached to ttyUSB0
[ 11.844988] option -1.1:1.1: GSM modem (-port) converter detected
[ 11.851892] usb -1.1: GSM modem (-port) converter now attached to ttyUSB1
[ 11.853964] option -1.1:1.2: GSM modem (-port) converter detected
[ 11.864677] usb -1.1: GSM modem (-port) converter now attached to ttyUSB2
[ 11.865658] option -1.1:1.3: GSM modem (-port) converter detected
[ 11.871387] usb -1.1: GSM modem (-port) converter now attached to ttyUSB3
2、在代码中添加模块的 pid 和 vid,原始代码中已经包含移远的几个模块,仿照现有的添加 EC20
diff --git a/kernel/drivers/usb/serial/option.c b/kernel/drivers/usb/serial/option.c
index 1799aa0..f6c9e5d
--- a/kernel/drivers/usb/serial/option.c
+++ b/kernel/drivers/usb/serial/option.c
@@ -, +, @@ static void option_instat_callback(struct urb *urb); #define QUECTEL_VENDOR_ID 0x2c7c
/* These Quectel products use Quectel's vendor ID */
+#define QUECTEL_PRODUCT_EC20 0x0125
#define QUECTEL_PRODUCT_EC21 0x0121
#define QUECTEL_PRODUCT_EC25 0x0125
#define QUECTEL_PRODUCT_BG96 0x0296
@@ -, +, @@ static const struct usb_device_id option_ids[] = {
{ USB_DEVICE(QUALCOMM_VENDOR_ID, YUGA_PRODUCT_CLM920_NC5),
.driver_info = (kernel_ulong_t)&yuga_clm920_nc5_blacklist },
/* Quectel products using Quectel vendor ID */
+ { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC20),
+ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21),
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25)
3、添加模块的 so 库,此库需要移远提供,so 支持的系统要匹配,将 so 库拷贝到下面的路径
vendor/rockchip/common/phone/lib/libreference-ril.so
4、打开 device/rockchip/common/device.mk 文件,修改 rild.libpath 路径为 rild.libpath=/system/lib64/libreference-ril.so
diff --git a/device/rockchip/common/device.mk b/device/rockchip/common/device.mk
index be2cb2c..69034a7
--- a/device/rockchip/common/device.mk
+++ b/device/rockchip/common/device.mk
@@ -, +, @@ endif
ifeq ($(strip $(BOARD_HAVE_DONGLE)),true)
ifeq ($(strip $(TARGET_ARCH)), arm64)
PRODUCT_PROPERTY_OVERRIDES += \
- rild.libpath=/system/lib64/libril-rk29-dataonly.so
+ rild.libpath=/system/lib64/libreference-ril.so
else
PRODUCT_PROPERTY_OVERRIDES += \
rild.libpath=/system/lib/libril-rk29-dataonly.so
因为 rk3399 是64位 CPU,所以 ifeq ($(strip $(TARGET_ARCH)), arm64) 条件成立。
但是前提都是 BOARD_HAVE_DONGLE 变量值为 true
注:本人测试,修改下面两个文件中的 rild.libpath 不起作用
device/rockchip/rk3399/system.prop
device/rockchip/rk3399/rk3399_all/system.prop
5、编译时将 so 库拷贝到上面指定目录 /system/lib64/libreference-ril.so
diff --git a/vendor/rockchip/common/phone/phone.mk b/vendor/rockchip/common/phone/phone.mk
index 946aacd..f8fc6e7
--- a/vendor/rockchip/common/phone/phone.mk
+++ b/vendor/rockchip/common/phone/phone.mk
@@ -, +, @@ PRODUCT_COPY_FILES += \
$(CUR_PATH)/phone/etc/ppp/ip-down:system/etc/ppp/ip-down \
$(CUR_PATH)/phone/etc/ppp/ip-up:system/etc/ppp/ip-up \
$(CUR_PATH)/phone/etc/ppp/call-pppd:system/etc/ppp/call-pppd \
- $(CUR_PATH)/phone/etc/operator_table:system/etc/operator_table
+ $(CUR_PATH)/phone/etc/operator_table:system/etc/operator_table \
+ $(CUR_PATH)/phone/lib/libreference-ril.so:system/lib64/libreference-ril.so ifeq ($(strip $(PRODUCT_MODEM)), DTS4108C)
PRODUCT_COPY_FILES += \
6、设置 BOARD_HAVE_DONGLE 变量
diff --git a/device/rockchip/rk3399/rk3399_all.mk b/device/rockchip/rk3399/rk3399_all.mk
index 7a2d870..ce5060c
--- a/device/rockchip/rk3399/rk3399_all.mk
+++ b/device/rockchip/rk3399/rk3399_all.mk
@@ -, +, @@ BOARD_NFC_SUPPORT := false
BOARD_HAS_GPS := false #for 3G/4G modem dongle support
-BOARD_HAVE_DONGLE := false
+BOARD_HAVE_DONGLE := true BOARD_GRAVITY_SENSOR_SUPPORT := true
此时移植完成,只要 so 库没问题,就可以正常上网。
如果 radio log 中打印如下信息:
RIL_SAP_Init not defined or exported in /system/lib64/libril-rk29-dataonly.so
检查 rild.libpath 的路径和名称是否正确。
No /proc/cmdline exception=java.io.FileNotFoundException: /proc/cmdline (Permission denied)
此报错不影响联网,可以忽略
RK3399 4G模块移远EC20移植调试的更多相关文章
- 海思3531添加移远EC20 4g模块(转)
源: 海思3531添加移远EC20 4g模块 Hi3798移植4G模块(移远EC20)
- 移远EC20的使用
一 发短信 3. 推荐短信流程3.1 查询 短信存储区AT+CPMS?+CPMS: "ME",19,255,"ME",19,255,"ME" ...
- 将移远通信的EC20驱动移植到NUC972上(转)
源: 将移远通信的EC20驱动移植到NUC972上
- 【单片机】NB-IoT移远BC28调试笔记
一.入网总体思路 入网思路是参考 <Quectel_BC95&BC35-G&BC28_应用设计指导_V1.1.pdf>来做的.流程如图所示: 二.具体调试细节3.1 AT+ ...
- 嵌入式开发 迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com 了解更多:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-7744162139 ...
- 4G模块在AM335x上的移植
关于4G模块的移植 看到一个很实用的写的比较好的 借鉴一下 参考:https://e2echina.ti.com/question_answer/dsp_arm/sitara_arm/f/25/ ...
- [转载]迅为4418开发板Qt移植移动4G模块第一部分
本文转自迅为论坛:http://topeetboard.com 平台:iTOP-4418开发板 1.首先要配置内核,这个一步和Android系统移植3G或者4G模块是一样的.一般模块的 ...
- [原创]移远RM500U-CN模组驱动移植
1. 简介 中国广电正式放号了,为了支持广电700MHz的5G基站,需要换用新的5G模组.移远通信的RM500U模组正好可以满足我们的使用要求; 我们选用该模组的原因:双卡单待 支持SIM卡热插拔 支 ...
- 高新兴 ME3630-W 4G 模块 Android 平台适配
2019-04-26 关键字:高新兴 ME3630-W 适配.rk3128 移植 4G 模块 本篇文章系笔者在移植 高新兴物联 ME3630-W 4G 模块到运行着 Android4.4 操作系统的 ...
随机推荐
- element-ui中使用表单验证的问题
<el-form ref="ruleRules" :inline="true" :model="ruleInfo"> <e ...
- linux驱动开发随手记【1】
1.一个patch只完成一项任务 2.用vim编辑多个文件,想同时关闭所有文件时候,可以用 :qall 命令 .vim用户手册08 3.mmc dev 0.mmc为U-boot命令,这句话的含义是设置 ...
- string 数组转 int 数组
用法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 //字符串数组(源数组) string[] sNums = new[] {"1", "2" ...
- 【SpringMVC】统一异常处理
一.需求 二.统一异常处理解决方案 2.1 定义异常 2.2 异常处理 2.3 配置统一异常处理器 2.4 异常处理逻辑 一.需求 一般项目中都需要作异常处理,基于系统架构的设计考虑,使用统一的异常处 ...
- Android笔记(十六) 简易计算器
实现功能: 简单计算器 布局及美化 采用LinearLayout嵌套LinearLayout实现布局. 要求 1. 按钮所有文字居于右下角 2. 按钮为白色,点击变成橘色 3. 显示屏文字居右显示并且 ...
- 使用华为云+GitHub搭建自己的博客
1.搭建自己博客首先创建GitHub账号 在GitHub官网上创建一个账号: 我的账号地址是 : https://github.com/SueKayTian 2.GitHub账号创建好之后,客户端 ...
- 美化WebApi,使其统一返回Json格式
博客部分代码来自其他博主,暂时找不到你的博文连接,如果您觉得我的代码中引入了您的代码或者文章,可在下方把您的博客文章写在下面,谢谢!!! WebApi有两种返回数据格式,一种是XML,一种是Json, ...
- 《构建之法》第五次作业——Alpha项目测试
博客开头 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign?page=6 这个作业要求在 ...
- 安全学习概览——恶意软件分析、web渗透、漏洞利用和挖掘、内网渗透、IoT安全分析、区块链、黑灰产对抗
1 基础知识1.1 网络熟悉常见网络协议:https://www.ietf.org/standards/rfcs/1.2 操作系统1.3 编程2 恶意软件分析2.1 分类2.1.1 木马2.1.2 B ...
- addEventListener和attachEvent的区别(转载)
attachEvent 与addEventListener到底有什么区别呢?总结如下: 一.适应的浏览器版本不同 attachEvent——兼容:IE7.IE8:不兼容firefox.chrome.I ...