最近项目需要在arm板上装一块3G的无线模块,于是查了很多资料,弄了很久才发现是资料中出了些问题,故将整个调试过程写成博客,以后方便查阅。

一、3G模块
现在手上的这块模块是龙尚U7309系列(o(╯□╰)o,没有打广告)的,淘宝上这个系列好像都没得买了。以前没接触过这类东西,于是各种查找资料……

二、移植步骤
简单说一下这个模块的拨号流程,具体原理性的知识不作展开。这个模块通过USB接口与开发板相连接,在连接过后会在 /dev目录下生成3个串口设备节点,一般是ttyUSB0,ttyUSB1与ttyUSB2,然后我们需要通过ppp对这几个设备进行拨号即可。

但是有些开发板上会识别并将模块上的USB转换为串口,并可以进行ppp拨号,但是也有很多arm并没有现成的功能,需要我们自己去移植。下面是针对最杯具的情况进行说明。

1、添加USB转串口支持
首先将arm开发板启动,将模块通过USB连接至开发板,如果/dev目录下出现了ttyUSB0,ttyUSB1与ttyUSB2,那么恭喜你可以直接跳过该步骤。如果没有的话,linux会打印出相关的信息,其中包括模块的制造商与产品号,idVendor=1c9e, idProduct=9603,记下这两个号,后面会用到。

接下来需要对内核进行编译,需要开发板上运行内核的源码,当然也可以单独对内核模块进行编译,因为后面需要ppp模块,这里采用编译整个内核。在编译内核之前需要对个别文件进行修改,修改的文件为/linux/drivers/usb/serial/option.c。

然后,在编译内核的时候选上与USB转串口相关的选型,与PPP拨号相关的,注意是编译进内核,是编译成模块。然后重新编译内核即可。


2、编译ppp程序
要在arm板上进行ppp拨号,还需要pppd程序与chat等程序,这里我选择自己进行交叉编译。这里版本号为ppp-2.4.5,一开始使用ppp-2.4.1进行编译没有成功,换用了2.4.5很顺利的就编译成功了。

首先下载ppp-2.4.5.tar.gz解压,然后进入解压后的文件夹目录,执行以下配置及编译语句。执行前将交叉工具链添加至.bashrc并进行同步。

./configure
make CC=arm-linux-

之后将chat、pppd、pppdump、pppstats目录下对应的可执行文件拷贝出来,放置在开发板中的/bin目录(先执行pppd,看会不会出现乱码,有的话就对了,如果按Ctrl+C关不掉乱码,就只能另开一个终端啦~有些开发板chat是放置在/usr/sbin目录,具体可以看拨号出错提示)。

3、添加拨号脚本
以上各种准备好之后,我们只要准备好拨号脚本就行了。这里我给出的是联通的拨号脚本。
首先如果/etc下没有ppp目录,那么新建一个,之后的ppp目录下需要有chat目录与peer目录。

chat目录新建gprs-connect-chat与gprs-disconnect-chat文件,文件内容如下。
gprs-connect-chat:

TIMEOUT 15
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NODIALTONE'
ABORT 'BUSY'
ABORT 'NO ANSWER'
"" 'AT'
OK AT+CGDCONT=1,"IP","3gnet",,0,0
OK 'ATDT*99#'
CONNECT ''

gprs-disconnect-chat:

ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\nSending break to the modem\n"
'' "\k"
'' "+++ATH"
SAY "\nGood bye\n"

peer目录下新建cdma_gprs文件,文件内容如下,如果需要调试,请将nodetach与debug前的‘#’去掉。
cdma_gprs:

lock
/dev/ttyUSB2
115200
#nodetach
crtscts
modem
#debug
usepeerdns
noipdefault
defaultroute
user "3gnet"
password "card"
noauth
novj
novjccomp
noccp
ipcp-accept-local
0.0.0.0:0.0.0.0
ipcp-accept-remote
connect '/usr/sbin/chat -v -s -f /etc/ppp/chat/gprs-connect-chat'
disconnect '/usr/sbin/chat -v -s -f /etc/ppp/chat/gprs-disconnect-chat'

之后只要执行pppd call cdma_gprs即可,如果拨号失败,将cdma_gprs文件中的/dev/ttyUSB2更改为/dev/ttyUSB0或者/dev/ttyUSB1重新尝试。出现

primary DNS address 一个IP
secondary DNS address  一个IP

说明拨号成功。此时如果只能ping通IP的话,查看是否是DNS配置错误,或者关闭以太网卡重新尝试。

龙尚3G模块在arm板上的应用相关推荐

  1. 3G卡片在开发板上的详细解决方法(适用于大多数3G卡片)

    3G卡片在开发板上的详细解决方法(适用于大多数3G卡片) Anson Luo(罗国辉) 一. 环境 1. 开发板内核:linux kernel 2.6.14 2. 3G卡片:HUAWEI E1750 ...

  2. Qt程序在arm板上运行

    1.Qt中的库需要拷贝到arm板上: 2.配置环境变量,参考该文. 总结: 1.可执行程序在终端中运行前,需要配置好环境变量,我们用export的形式配置的,这种形式只在当前终端中生效(因为,如果我们 ...

  3. Qt——用在ARM板上的Mplayer(1.3.0,1.0rc4)安装编译步骤!还有,Mplayer背景抖动闪烁问题解答,终于来了!

    注意:若转载,请贴上链接"https://blog.csdn.net/qq_41042595/article/details/112308184",如若发现抄袭或未标明来源现象,都 ...

  4. 最新版ser2net移植到ARM板上,交叉编译

    这个是ser2net源码http://sourceforge.net/projects/ser2net/files/latest/download ser2net是我在玩openwrt时接触的,当时用 ...

  5. 龙尚3G、4G模块嵌入式Linux系统使用说明【转】

    本文转载自;http://blog.csdn.net/zqixiao_09/article/details/52506812 驱动部分: 1.kernle/drivers/usb/serial/opt ...

  6. 龙尚3G、4G模块嵌入式Linux系统使用说明

    驱动部分: 1.kernle/drivers/usb/serial/option.c的结构体数组 static struct usb_device_id option_ids[]中增加加入产品的VID ...

  7. 手把手教你在ARM板上写一个驱动程序!

    摘要:搞嵌入式有两个方向,一个是嵌入式软件开发(MCU方向),另一个是嵌入式软件开发(Linux方向).其中MCU方向基本是裸机开发和RTOS开发.而Linux开发方向又分为驱动开发和应用开发.其中应 ...

  8. wxX11移植到arm板上

    [原]移植wxX11到开发板上 2012-5-18阅读467 评论0 最近几天由于工作安排,要将wxX11程序移植到arm开发板上.一连工作了好几天,终于可以在板子上显示出一个"X" ...

  9. 【教程】制作能在ARM板上直接运行的gcc本地编译器

    编译好的程序的下载链接:百度网盘 请输入提取码(提取码:ocmm) 概述 通常情况下,我们是在电脑里面开一个Linux虚拟机, 在虚拟机里面用交叉编译工具链编译好可执行文件后,将可执行文件拷贝到板子里 ...

  10. 基于I-MX287A的mqtt远程控制ARM板上LED灯小项目总结

    最近在学linux嵌入式技术,自己做了一个在周立功的I-MX287A开发板上实现的,基于MQTT远程控制的小项目,其中用到了一些比较好玩和有趣的技术,在这里自己记录分享一下. 额,让我想想该从和处开始 ...

最新文章

  1. 如何判断Android手机当前是否联网?
  2. Java编程思想(第4版)读书笔记——01
  3. systemctl介绍
  4. 栈应用之 括号匹配问题(Python 版)
  5. mysql序列号发生器
  6. 第五章spring框架基础
  7. 部署在SAP ABAP服务器上的SAP UI5应用的JavaScript文件,是如何被SAP UI5 repository handler处理的
  8. 远程工具:MobaXterm使用图文教程
  9. Hive_Hive的数据模型_内部表
  10. Language modeling tutorial in torchtext
  11. Oracle数据库to_date()和to_char()的相关
  12. 2015与2016年终总结
  13. 浙江丽水龙泉计算机培训,浙江丽水龙泉中等职业学校
  14. Latex通过bib文件转出bbl文件
  15. Flask Jinja2模板引擎,headfirstjavapdf百度云
  16. C语言蓝桥杯刷题:数字三角形
  17. 微服务架构的简单实现-Stardust
  18. ubuntu | 用crossover安装-微信和企业微信
  19. java 如何初始化数组_java中初始化数组的三种方式分别是什么
  20. element实现el-progress线形进度条渐变色

热门文章

  1. vit transformer中的cls_token
  2. python迷宫万花筒代码_Python实现PS滤镜的万花筒效果示例,python万花筒
  3. 【爬虫】堆糖图片爬取
  4. php 批量下载网页文件,批量下载文件(以xxx网站为例)
  5. C# Wpf Binding 使用详解
  6. u3d计算机获取键盘输入,Unity 中的键盘输入
  7. A. Captain Flint and Crew Recruitment
  8. 支付宝身份认证初始化服务40004未知的错误码
  9. 加州戴维斯分校计算机专业排名,加州大学戴维斯分校的计算机专业如何?
  10. 网络统考计算机操作题分数占比,计算机一级office考试 word占多少分值?