Android 3G驱动

Linux 4G模块pppd拨号上网脚本解析 在编写脚本之前,要先安装好ppp相关驱动,pppd已知pppd位于/usr/sbin,chat位于/usr/sbin,options位于/etc/ppp。要编写脚本,就要切换目录到/etc/ppp/peers,若没有peers目录则自行创建。因为是在/etc目录之下,需要使用sudo或者进入root模式才能创建或者编辑。安装ppp时,pppd就已经被固定到系统路径/etc/ppp找options,到/etc/ppp/peers找脚本文件。namename。... 阅读详情

一 开发环境简介

内容                                              

                    说明

3G模块

             华为EM820W(WCDMA)

3G SIM卡

             中国联通3G卡

嵌入式linux版本

             Linux-2.6.37

主机开发环境

             Ubutun 10.04

 

二 主要步骤

1

向linux内核中添加3G模块驱动(USB转串口的option驱动)和ppp网络协议的支持

                                                                   2                                                                                                                                          

交叉编译ppp-2.4.4源代码

将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下,

编写ppp拨号脚本wcdma、wcdma-chat-connect、wcdma-chat-disconnect并存放在/etc/ppp/peers目录下。将DNS写入到/etc/resolv.conf文件中

3

执行“pppd call wcdma”命令进行拨号

 

三 配置3G模块驱动和ppp网络协议栈

首先进入make menuconfig界面

1 配置3G模块驱动


                     图 1

如图1首先选择Device Drivers

 

                     图2

如图2进入USB support


                      图 3

进入USB support之后一直往下直到找到图3并选择USB转串口


                      图4

最后选择USB driver for GSM and CDMA modems到此3G卡驱动已经添加完毕

主要是添加了driver/usb/serial/option.c和driver/usb/serial/usb_wwan.c

两个文件,尽管驱动添加了,但是这仅仅只是一个usb转串口驱动,并不能作为网络设备直接使用,此时就需要ppp网络协议的支持,他将ttyUSB*等设备模拟成网络设备使用也即(/dev/ttyUSB0<---->ppp0)

 

2 添加ppp协议

同样也是进入make menuconfig界面


                         图5

首先同样也是进入驱动配置界面Device Drivers

                         图6

如图6选择网络设备支持

                         图7

如图7选择ppp

到这一步驱动和协议就都已经配置成功了接下来就是编译下载到板子

登入到linux, dmesg查看内核打印信息


                         图8

同时查看/dev/目录下已经创建了

/dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2,/dev/ttyUSB3,/dev/ttyUSB4,/dev/ttyUSB5

/dev/ppp等7个设备文件表明内核正确识别了EM820W3G模块

 

四 编写ppp拨号脚本

由于该拨号脚本需要使用chat,pppd,等命令,所以需要下载ppp-2.4.4

下载成功之后首先便是编译

1 编译 ppp-2.4.4

./configure

Make CC=arm-none-linux-gnueabi-gcc

编译成功后将编译生成的chat,pppd,pppdump等命令拷贝到板子文件系统的/usr/sbin目录下边去

 

2 编写拨号脚本

在板子文件系统/etc/ppp/peers目录下边创建三个文件如下

wcdma,chat-wcdma-connect,chat-wcdma-disconnect

wcdma配置文件内容

debug

nodetach

/dev/ttyUSB0

115200

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-wcdma-connect'

disconnect '/usr/sbin/chat -s -v -f/etc/ppp/peers/chat-wcdma-disconnect'

 

wcdma-chat-connect配置文件内容

TIMEOUT 5

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NODIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

''  \rAT

OK  \rATZ

OK \rAT+CGDCONT=1,"IP","3GNET",,0,0

OK-AT-OK ATDT*99#

CONNECT \d\c

 

wcdma-chat-disconnect配置文件内容

ABORT"ERROR"

ABORT "NODIALTONE"

SAY"\nSending break to the modem\n"

'' "\K"

''"+++ATH"

SAY"\nGoodbay\n"

创建好拨号脚本之后就是正式拨号了

 pppd call wcdma&

 (加上&符号主要是因为拨号成功后,程序会一直执行不退出,所以采用后台运行的方式执行,假如有多个3G卡可能就会产生多个ttyUSB*的设备文件,同时会需要多个wcdma文件此时可以采用pppd call wcdma1来为3G模块1进行ppp拨号),pppd call wcdma是作用是建立协议,并生成网络接口ppp0

拨号成功会出现如下图所示打印


                                                        图9

出现上图9的打印后在/etc/resocv.conf中间添加DNS地址vi /etc/resolv.conf,加入内容:

nameserver 202.99.160.68

nameserver 202.99.166.4

使用ifconfig –a查看是否有ppp0的网络设备

最后测试ppp0网络设备是否能够使用

Ping –I ppp0 www.baidu.com

能够ping通就表示3G卡移植驱动成功

到此阶段3G卡驱动已经移植完毕

五 调试

在移植该驱动时候出现过诸多问题

1 pppd call wcdma调用失败

root@cz:~# pppd call wcdma&

timeout set to 5 seconds

abort on (NO CARRIER)

abort on (ERROR)

abort on (NO DIALTONE)

abort on (BUSY)

abort on (NO ANSWER)

send (^MAT^M)

expect (OK)

AT^M^M

OK

 -- got it

 

send (^MATZ^M)

expect (OK)

^M

ATZ^M^M

OK

 -- got it

send(^MAT+CGDCONT=1,"IP","3GNET",,0,0^M)

expect (OK)

^M

AT+CGDCONT=1,"IP","3GNET",,0,0^M^M

ERROR

 -- failed

Failed (ERROR)

Connect script failed

调用AT+CGDCONT=1,"IP","3GNET",,0,0^M^M

这个指令失败,为了测试串口(命令发送通道)能否正常使用

在chat-wcdma-connect中间添加几个其他的AT命令

比如 OK \rAT+CGMI (厂家认证请求,返回模块厂家信息)

     OK \rAT+CGSN (查看产品 IMEI 序列号)

然后在调用pppd call wcdma&发现加上去的那几条AT命令都能正常执行

这说明很可能是EM820W模块没有正确识别SIM卡

后来我又添加了OK \rAT+CSQ指令(查看网络信号质量)发现会调用失败

得出初步结论凡是涉及到SIM卡相关的AT指令都会调用失败,相反其他都能成功执行,这说明板子与EM820W模块之间是能够正确交互数据的,

同时由于EM820W没能识别SIM卡导致相关指令执行失败

 

后来请教了相关人员,说我的测试方法不正确,我是利用pppd程序来判断某些命令是否能够正常执行,这样就不能排除pppd程序是否能够解析该命令所带来的干扰,所以改为使用一个更为纯粹的办法来进行测试了

Cat/dev/ttyUSB0&

echo “AT+CGSN”> /dev/ttyUSB0

echo “AT+CGMI”> /dev/ttyUSB0

echo “AT+CSQ”  > /dev/ttyUSB0

观察串口得到的response与pppd call wcdma一样

所以还是觉得EM820W没能正确识别SIM卡(不过以后测试还是需要选用正确的方法)

 测试SIM卡电路的5根信号线不管是否有SIM卡,5根线各自表现都是一样的,这说明却是没有识别SIM卡,而且SIM_VCC和SIM_RESET的时序一样,这和网上贴出的时序不一样如下图所示,很明显复位信号要比VCC慢半拍


                                   图10

                            图10

硬件工程师此时修改了电路,在SIM_RESET线上加了一个大电容,增加了些许延时

然后调用ppd call wcdma&

发现拨号成功了,同时使用ifconfig –a 命令出现了一个ppp0的网络设备

接着使用ping –I  ppp0 www.baidu.com进行测试,发现网络不通

哎 问题挺多

2 网络不通

网络不通的问题从一开始就觉得肯定与卡没有关系了,很有可能是网络本身的问题,为了排除以太网口eth0的干扰我进行了如下测试

Ifconfig eth0 down

pppd call wcdma&

Ifconfig eth0 up

Ping –I www.baidu.com

经过上面的折腾居然网络也通了,神奇。

上网查询说是双网卡造成的路由问题

果然在ppp0不通的时候route命令发现路由表如下

 # route
     Kernel IP routing table
        Destination    Gateway        Genmask           Flags Metric Ref    UseIface
        10.64.64.64    *                255.255.255.255  UH     0     0        0 ppp0
        192.168.7.0    *                255.255.255.0     U       0     0        0 eth0
        default        192.168.7.1    0.0.0.0              UG     0     0        0 eth0

ppp0通的时候路由表如下

 # route
       Kernel IProuting table
      Destination    Gateway        Genmask           Flags Metric Ref    Use Iface
      10.64.64.64      *                255.255.255.255   UH   0      0        0ppp0
      192.168.7.0      *                255.255.255.0      U      0     0        0 eth0
      default             *                0.0.0.0             U      0     0        0 ppp0

由上面可以知道ppp0不通因为默认的路由是eth0的,这肯定不通啊


六 注释



Android上3G/4G模组调试 原先用的3G和4G模块都是华为的——EW770W和MU509,ME906C. 但由于可能停产或者价格的原因,3G/4G的模组改为华为的MU709s-2,ME909s-821.都是PCIE的接口,另外还调了中兴的4G模组ME3620。 3G/4G模块的调试大体上分为三个步骤: 1、驱动。 在Linux内核中用make menuconfig来配置3G/4G模块的驱动,内核已经带有,只需 阅读详情

相关推荐

[PPPOE]PPPD的选项

1.基本文件位置/etc/ppp/options 使用命令”egrep -v ‘#|^ *$’ /etc/ppp/options”可查看被激活的选项2.选项 ms-dns 可设置两个NDS服务地址,分别为主DNS和次DNS ms-wins 可设置两个WINS服务地址,分别为主WINS和次WINS disconnect 指定当PP

俗科技的博客 2万+

GPRS模块在Linux平台上ppp拨号上网总结与心得

由于一个嵌入式平台上项目开发的需要,在arm平台上实施ppp拨号上网。说起这个linux平台的ppp拨号上网,也许很多人觉很简单,网上     的成功的例子很多!不错,你说的对,但是我还要给点我的看法,就是这个简单的ppp拨号折腾了我的时间之长,我都不好意思讲。但是,现在看来这个过程学到     了好多的东西,得到很多分析能力的锻炼。现在成功移植到arm开发板上。特写日志于此,分享我的

Lion's Blog 1万+

pppd拨号流程详解

Linux下ppp拨号

3g移植

一 开发环境简介 内容                                                                   说明 3G模块              华为EM820W(WCDMA) 3G SIM卡              中国联通3G卡 嵌入式li

星星之火,可以燎原!...... 4万+

pppd拨号配置文件,放入相应目录直接可用。使用方法pppd call 4gnet&

pppd拨号配置文件,放入相应目录直接可用。 使用方法pppd call 4gnet&

通用定时器脉冲计数实验(STM32CubeMx配置)

通用定时器脉冲计数实验

a1169511636的博客 5509

3g android4 移植 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 Android——4.2 - 3G移植之路

点击打开链接 3g android4 移植 点击打开链接 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 点击打开链接  Android——4.2 - 3G移植之路之 reference-ril .pppd 拨号上网 (三) 点击打开链接 3G 调试说明(for Android) 前几周一直在移植andr

lqxandroid2012的专栏 2708

C++开发基础之掌握常用的三种异步编程模型

以上是三种常见的C++异步编程模型,每种模型都有其适用的场景和特点。根据具体需求,你可以选择合适的模型来进行异步编程。

dotnet研习社 2175

android+usb转串口+唯一id,Android平台3G模块驱动移植-USB转串口

Android平台3g模块是通过ril库来支持数据、短信、彩信、电话、第三方通话、USSD等功能的。其相应的组件有:rild用来为rildsocket建立文件,pppd和chat为拨号文件,libreference-ril.so为库文件,USB转串口驱动(android自带)。关于USB转串口驱动:3G 模块(modem)采用usb 接口,对上层功能接口是串口,在Android系统中通常使用usb...

weixin_33146151的博客 748

谷歌(Google) Pixel 8/9 Pro(xl)如何获取 root 权限

谷歌(Google)Pixel8/9Pro(xl)等系列手机破解后,会在你的init_boot.img同路径生成一个magisk_patched.img,把这个文件拷贝到adb目录下,稍后还得把它刷回手机,这样手机才能获得Root权限,因为安卓14、15以后的内核结构调整,和Pixel7及以下的6、5、4、3、2等系列手机破解稍微不一致。因为ROOT权限的获取,需要使用ROM中的内核文件,个人强烈建议在官网下载ROM,直接刷最新版,其他地方的ROM如果没有校验码,请自行斟酌是否使用。

bugsycrack的博客 3486

Android13 CarPowerManagementService onApPowerStateChange流程分析

如下为CarPower上电的流程图:下面我们从代码角度分析:在CPMS的init方法中会调用onApPowerStateChange(CpmsState.WAIT_FOR_VHAL, CarPowerManager.STATE_WAIT_FOR_VHAL); 设置ApPowerState为STATE_WAIT_FOR_VHAL: 在onApPowerStateChange中调用PowerHandler 的handlePowerStateChange方法: 在handlePowerStateChang

liuning1985622的博客 925

android ntfs驱动_ntfs-3g-for-android 的 上移植win的N 文件系统。 Driver develop 驱动编程 243万源代码下载- www.pudn.com...

文件名称: ntfs-3g-for-android下载 收藏√ [5 4 3 2 1]开发工具: Unix_Linux文件大小: 732 KB上传时间: 2015-07-30下载次数: 0提 供 者: 郑育科详细说明:的android上移植win的NTFS文件系统。-The NTFS file system for android文件列表(点击判断是否您需要的文件,如果是垃圾请在下...

weixin_28801659的博客 640

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1139

3g android4 移植 飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植 Android——4.2 - 3G移植之路之 reference-ril .p

点击打开链接 前几周一直在移植android4.0,这里呢,先把3G的移植过程详细记录下来,以便于在以后的工作中遇到类似问题可以很快的解决,也对其它在这块有困惑的人一个帮助。 首先,在移植3G的过程中遇到了很多小问题,比如说把所有的东西都加进去了之后,在发送AT+CSQ?指令的时候,一直返回99,99,这个情况就是没有信号的意思,但是一直是这样,检查了好久,原来是项目部给我装的整机

wocao1226的专栏 4205

FlashBootloader01-基于UDS的Flash Bootloader【架构篇】

文章目录1 Flash Bootloader的依赖项2 Flash Bootloader中使用的UDS的主要功能3 Flash Bootloader更新固件3.1 初始化MCU3.2 刷写流程 1 Flash Bootloader的依赖项 通常Flash Bootloader由以下四方面组成: UDS协议 上位机「编写Bootloader Sequence」 通信驱动(如CAN ) Flash Driver 2 Flash Bootloader中使用的UDS的主要功能 1. 10 02服务 客户端

3591

通过轻量级图像增强Transformer (IAT) 提升YOLOv8在低光环境下的检测性能

随着深度学习和计算机视觉的快速发展,目标检测模型在各个领域中的应用不断扩展,特别是在低照度环境下的视觉任务。YOLOv8作为当前最先进的目标检测模型之一,在高亮度和良好照明条件下表现出色,但在低照度环境下的性能存在一定的不足。为了解决这一问题,我们提出了一种轻量级的低照度图像增强网络(IAT)来改进YOLOv8的暗光检测能力。本篇文章将深入探讨这一创新改进,并附带代码实现,帮助大家更好地理解这一技术的应用和效果。

博客 1214

飞思卡尔i.MX 6Quad Android 4.0.4的3G驱动移植

1      概述 平台:freescale i.MX 6Quad 4核开发板Sabrelite 操作系统:Android 4.0.4 内核:3.0.15 3G模块:中兴MG3732和UbloxLISA-U130   2      中兴MG3732模块移植 2.1    准备 准备一张可用的联通3G卡,放入SIM卡卡槽,接着把中兴MG3732开发板通过usb连接到主板上。

达闻东的专栏 7980

ESD防护设计宝典(十一):CE(传导发射)超标问题排查与解决

(Conducted Emission, CE),亦称为传导骚扰,是电子电气设备或系统内部的电压、电流通过信号线、电源线或地线向外传输,对其他电子电气设备或系统造成电磁干扰的物理现象。其。

m0_56451176的博客 856

飞思卡尔i.MX 6Quad Android 4.2.2的中兴和Ublox 3G驱动移植

1      概述 平台:freescale i.MX 6Quad 4核开发板Sabre-sd(不带屏幕) 操作系统:Android 4.2.2_r1(代码补丁为android_jb4.2.2_1.1.0-ga_source) 内核:3.0.35 3G模块:中兴MG3732和UbloxLISA-U130   2      中兴MG3732模块移植 2.1    准备 准备一张可用的

达闻东的专栏 9007

深沟球轴承.rar

深沟球轴承.rar

智慧交通总体解决方案及应用案例.pptx

城市公交智能调度平台是面向城市市人民政府、城市市交通局及城市市名区交通局,为城市市各公交营运部门提供公交交通规划与建设综合信息服务,具备综合信息查询、设计、分析、预测和管理的动态服务系统,该系统建设的核心是软件的建设,它是一套GIS地理信息系统、MIS管理信息系统以及OA办公自动化系统融会贯通、灵活运用的综合性业务处理及信息交换平台,该平台以GIS地理信息系统作为城市及交通规划基础地理信息的管理与数据共享平台,以MIS管理信息系统为交通规划建设和基建管理的工作平台,以Intranet/Internet站点为实时应用的操作平台,三者紧密结合,再佐以决策支持分析模块(ESS),交通规划建设知识库模块,共同构成《城市公交智能调度平台》的全部软件内容。

usb android ntfs,android usb挂载分析--ntfs-3g移植

前段时候做android下文件系统的支持,android本身vold里面只实现了fat的支持,对其它格式的支持没有实现,关于ntfs的支持,linux对于其只支持读,不可写,后面网上找到了ntfs-3g驱动,在ununtu上装上后,确实可以实现挂载,而且挂载的分区是可读写的,所以 后面就想着移植到android上来,不过由于android下的libc是glibc的一个子集,在移植过程中发现要实现...

weixin_39624071的博客 939

多类别脑肿瘤MRI图像数据集(4类,7023张图像)JPG

该数据集包含为医学影像和深度学习中多类图像分类任务设计的标记脑MRI扫描图像。该数据集的目标是将脑MRI扫描分为四类,分别代表常见脑肿瘤类型和正常病例。该数据集适用于计算机视觉、深度学习和医学人工智能研究,尤其适合开发和评估CNN及迁移学习模型。该数据集包含以下四类:胶质瘤——一种起源于大脑胶质细胞的肿瘤脑膜瘤——由脑膜(保护性脑层)产生的肿瘤垂体肿瘤——发生在垂体中的肿瘤健康——脑部MRI正常,未发现肿瘤

Android 7 的4G 模块驱动移植

本篇记录android 7.1 版本,Sim7600CE模块、A7600C1模块驱动程序移植过程及应用测试记录: 内核版本:linux - 4.15。 简述: 本次驱动移植基础是基于安卓系统 3G 上网框架进行,相应流程都是android标准;框架中涉及模块如下: hardware/ril/ril-rk29-dataonly : 安卓RIL无线通讯库 external/ppp/chat : ppp 拨号工具 external/ppp/pppd : pppd 拨号守护线程 s

weixin_38387929的博客 1756

毕业设计基于 Vue 3 和 Spring Boot 的学生信息管理系统源代码+数据库+详细说明

管理员功能用户管理:全量管理系统用户(创建、编辑、删除、状态控制)角色权限配置:自定义角色并分配精细化权限,支持权限粒度控制系统设置:配置学校基础信息、学期管理、数据字典维护等数据统计分析:多维度展示系统使用情况、学生数据统计与可视化报表 教师功能课程管理:创建、编辑、下架课程信息,维护课程大纲与教学计划成绩录入:支持批量导入和单个录入学生成绩,支持成绩修改与审核考勤管理:记录学生出勤情况(正常、迟到、早退、缺勤),生成考勤报表教学资源管理:上传、分类、分享教学资料(课件、视频、习题等)学生功能个人信息管理:查看和修改个人基本信息,支持头像上传与资料完善课程查询:浏览课程列表、查看课程详情,支持按条件筛选感兴趣的课程成绩查询:查看个人各科成绩、平均分及排名,支持成绩趋势分析考勤查询:查看个人出勤记录与统计,及时了解出勤情况

android 3G pppd 调试记录

<br />android 3G pppd 调试记录。 收藏 <br />android 3G pppd 调试记录。<br />1.  JAVA 部分<br />android/development/data/etc/apns-conf_sdk.xml   --->  system/etc/apns-conf.xml<br />注意 apns 的版本, <br /><apns version="6"><br /><apn carrier="中国联通 3g 网络 (China Unicom)"<br /> 

cainiao413的专栏 4238

android下调试3G之USB串口驱动集成配置

一、修改Android内核的编译配置        vi ~/myandroid/kernel_imx/.config文件中,确保下面的的配置项已经被选定。 (假如源码在~/myandroid目录下)     1、 USB电源管理特性的相关配置项:             CONFIG_USB_SUSPEND=y      2、 USB串口驱动相关的配置项:           

韩搏专栏 9733

调试Android 2.2的wm8976的驱动用于支持3G的心得

现在由于公司要上手wm8976的芯片的支持,主要是用于3G的通话的通道的打开:1:现在我们的构思就是,3G通话的输入是min/mip 输入 然后是LOUT3

工匠 1340

Android 3G pppd 调试记录

android 3G pppd 调试记录转自:http://blog.youkuaiyun.com/zwj0403/article/details/6122016 1.  JAVA 部分 android/development/data/etc/apns-conf_sdk.xml   --->  system/etc/apns-conf.xml 注意 apns 的版本,       apn

joeyaung_1983的专栏 528

android pppd参数介绍,android 3G pppd 调试记录

android 3G pppd 调试记录。1. JAVA 部分android/development/data/etc/apns-conf_sdk.xml ---> system/etc/apns-conf.xml注意 apns 的版本,apn="3gnet"mcc="460"mnc="01"proxy=""port=""user=""server=""password=""type...

weixin_29988441的博客 889
上一篇: Android init 进程 init.rc init.*.rc
下一篇: linux中echo命令向一个文件写入内容
简单并快乐着
博客等级 码龄14年 473粉丝 96原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值