博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【玩转开源】BPI-M64 Android6.0 USB Dongle 4G(EC2X)+GPS功能支持移植
阅读量:6481 次
发布时间:2019-06-23

本文共 1323 字,大约阅读时间需要 4 分钟。

1. 移植Linux驱动,这部分可以参考供应商提供的驱动文档(不做过多描述)

一般来说主要添加这几部分:

1.1 添加USB驱动

1.2 配置内核选项

具体参考可以看这里:https://github.com/garywangcn/bpi-r2_lede/commit/8cb7cc2b8b667d2d692b8787ad87046f1a349026

2. 移植GPS,模块厂商会提供相应的文档和驱动,所以难度应该不大

2.1 添加编译:android/hardware/libhardware/modules/Android.mk

2.2 把gps驱动代码放置在路径:android/hardware/libhardware/modules/gps下,如果没有gps目录则新建

3. GPS驱动移植完成后,接下来移植RIL到Android支持4G,这部分一般来说模块供应商也会提供驱动文档(也不做过多描述)

3.1 不过几个注意事项

3.1.1 在添加service到rc文件,如果开发板是64bit的比如M64, rc文件路径:android/device/softwinner/bpi-m64-hdmi/init.sun50iw1p1.rc

则注意libreference-ril.so需要用64位的

4. 编译镜像

4.1 如果顺利的话,这个Android镜像就可以使用4G功能了,如果发现该镜像没有4G上网功能怎么办,或者是有些sim卡支持,有些不支持,原因很可能是因为没有配置好APN导致的。

比如我使用的是移动的物联网卡,先通过AT指令读出sim卡的信息,这里需要配置mcc和mnc,可以通过AT+CIMI读出:

前5位数字是:46004,那么MCC=460,MNC=04

接下来在android/device/softwinner/common/rild/apns-conf_sdk.xml里面去添加apn,添加后就可以实现该卡4G上网了

4.2 Android菜单“Android Settings->WIRELESS & NETWORKS->More->Mobile Networks->设置首选网络”没有4G选项,怎么办?

4.2.1 配置:android/packages/services/Telephony/res/values/config.xml

配置后UI则会出现4G选项了:

4.2.2 设置首选网络是4G,配置文件:android/frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java

NETWORK_MODE_WCDMA_PREF替换为:NETWORK_MODE_LTE_GSM_WCDMA

当然也可以通过AT指令来设置优先网络:

AT+QCFG="NWSCANMODEEX",63 4G优先

AT+QCFG="NWSCANMODEEX",47 3G优先

 实物图如下:

测试GPS:

 4G上网:

 

转载于:https://www.cnblogs.com/topbin/p/10774555.html

你可能感兴趣的文章
数据结构和算法
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
iOS开发之调用系统设置
查看>>
初次使用 VUX
查看>>
javascript 字符串转数字的简便写法
查看>>
html之div始终停留在屏幕中间部分
查看>>
Spring中jdbcTemplate的用户实例
查看>>
[模板] 快速傅里叶变换/FFT/NTT
查看>>
DecimalFormat 数据格式设置 SimpleDateFormat时间格式的用法介绍 --转载
查看>>
Android 的Margin和Padding属性以及支持的长度单位
查看>>
HDU ACM 1050 Moving Tables
查看>>