RK3399移植4G模块
1、通过串口打印或者adb获取模块的 pid 和 vid,顺便可以看到生成 4 个虚拟串口 /dev/ttyUSB*
[ 11.734379] usb 1-1.1: new high-speed USB device number 3 using ehci-platform
[ 11.828247] usb 1-1.1: New USB device found, idVendor=2c7c, idProduct=0125
[ 11.828386] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 11.828413] usb 1-1.1: Product: Android
[ 11.828436] usb 1-1.1: Manufacturer: Android
[ 11.835480] option 1-1.1:1.0: GSM modem (1-port) converter detected
[ 11.841217] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0
[ 11.844988] option 1-1.1:1.1: GSM modem (1-port) converter detected
[ 11.851892] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1
[ 11.853964] option 1-1.1:1.2: GSM modem (1-port) converter detected
[ 11.864677] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2
[ 11.865658] option 1-1.1:1.3: GSM modem (1-port) converter detected
[ 11.871387] usb 1-1.1: GSM modem (1-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 100644
--- a/kernel/drivers/usb/serial/option.c
+++ b/kernel/drivers/usb/serial/option.c
@@ -241,6 +241,7 @@ 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
@@ -1200,6 +1201,8 @@ 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 100755
--- a/device/rockchip/common/device.mk
+++ b/device/rockchip/common/device.mk
@@ -699,7 +699,7 @@ endififeq ($(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.soelsePRODUCT_PROPERTY_OVERRIDES += \rild.libpath=/system/lib/libril-rk29-dataonly.so
因为 rk3399 是64位 CPU,所以 ifeq ($(strip $(TARGET_ARCH)), arm64) 条件成立。
但是前提都是 BOARD_HAVE_DONGLE 变量值为 true
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 100755
--- a/vendor/rockchip/common/phone/phone.mk
+++ b/vendor/rockchip/common/phone/phone.mk
@@ -8,7 +8,8 @@ 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.soifeq ($(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 100755
--- a/device/rockchip/rk3399/rk3399_all.mk
+++ b/device/rockchip/rk3399/rk3399_all.mk
@@ -63,7 +63,7 @@ BOARD_NFC_SUPPORT := falseBOARD_HAS_GPS := false#for 3G/4G modem dongle support
-BOARD_HAVE_DONGLE := false
+BOARD_HAVE_DONGLE := trueBOARD_GRAVITY_SENSOR_SUPPORT := true
此时移植完成,只要 so 库没问题,就可以正常上网。
如果 radio log 中打印如下信息:
RIL_SAP_Init not defined or exported in /system/lib64/libril-rk29-dataonly.so不影响使用,RIL_SAP_Init初始化BT协议的。
RK3399移植4G模块相关推荐
- Hi3798移植4G模块(移远EC20)
Hi3798移植4G模块(移远EC20) 一.前言 二.USB驱动修改 2.1 添加VID和PID信息 2.2 添加空包处理机制 2.3 添加复位重连机制 2.4 修改内核配置 三.GoBiNet测试 ...
- 高新兴 ME3630-W 4G 模块 Android 平台适配
2019-04-26 关键字:高新兴 ME3630-W 适配.rk3128 移植 4G 模块 本篇文章系笔者在移植 高新兴物联 ME3630-W 4G 模块到运行着 Android4.4 操作系统的 ...
- [Android6.0][RK3399] PCIe 接口 4G模块 EC20 调试记录
原址 Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017.04 4G Module: EC20-CE 一基本概念 USB 部 ...
- Linux移植EC20 4G模块驱动简易教程
关于4G模块常见的品牌与型号: 品牌 型号 市场价格 芯片组 状态 HUAWEI ME909s-821 210-260 海思芯片,只有五模 在售 HUAWEI ME909s-521 400左右 高通芯 ...
- 小白求,用RE文件管理器移植移远EC20 4G模块驱动。 有重谢。请加w jiao1998524
小白求,用RE文件管理器移植移远EC20 4G模块驱动. 有重谢.请加w jiao1998524
- linux系统华为4G模块移植及pppd拨号上网开发总结
一.开发环境简介 开发系统: Ubuntu 14.04 内核版本:linux 3.10 4G模块:ME909-821和ME909-120 模块接口:pcle SIM卡:联通 二.内核驱动配置 需向li ...
- 基于Xavier 移植移远EG25G 4G模块
基于Jetson Xavier NX 移植移远EG25G 4G模块 先敲一下黑板,使劲敲 大家一定先试一下直接插上4G模块后,linux能否读出来,就是右上角的wifi设置那里面出不出现移动网络信息, ...
- linux ec20 usb驱动移植,linux下EC20 4G模块驱动移植
之前有移植过ME909s MU609,主要工作就是把4G模块当做USB设备,挂载在linux上,驱动移植主要是能够让板子识别到模块,并产生SUB多个虚拟的节点,用于操作模块,拨号上网 关于内核的配置, ...
- Android6.0 EC20 R2.1 4G模块移植
摘要: 本文主要针对MTK MT8317 Android6.0 代码进行4G模块移植,使用pppd拨号的方式实现上网,并没有按照移远提供的文档GobiNet方式上网. 1.内核部分的移植 1.1 ...
最新文章
- Linux top命令常见使用
- 几种在Linux下查询外网IP的办法
- python可变参数记录
- 【杂项】CUDA下找不到CUDA Sample文件
- 【JDK源码】java.io包常用类详解
- lambda表达式java_Lambda表达式Java教程
- 多线程知识梳理(2) - 并发编程的艺术笔记
- hadoop3.0新特性介绍
- deepin终端启动自安装程序
- python3笔记-文件操作
- gorm的Related和Association的区别
- 用python中的turtle库画蜡笔小新
- 【delphi】TMS_Component_Pack_v9.2.4.0中的TadvMemo 支持中文完美修改
- crx文件怎么打开(谷歌crx文件怎么打开)
- [Back-To-Back LC]背对背信用证
- 验证wireshark追踪qq图片
- 西安交通大学计算机组成原理第三章,西安交通大学计算机组成原理专题实验(上)第三次实验报告.pdf...
- 6. Java并发编程-并发包-Lock和Condition
- Unity实现多屏显示
- MATLAB函数极限和微分运算