4G模块SIMCOM7100 LTE在ARM Linux下使用PPPD上网
尝试了网上其他人的方法,没有成功,最终自己看文档搞定了,希望写下来方便其他人,节省时间。
材料
- 4G硬件: SIM7100-PCIE-EVB_V1.01
- HostPC: Linux hexiongjun-pc 3.13.0-86-generic #131~precise1-Ubuntu SMP Fri May 13 19:43:06 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
- ARM Linux版本: Linux 4.5.3
- ARM SoC: TI AM335X Cortex-A8 与 Freescale i.MX6 Cortex-A9
内核配置
因为是自己和同事一起移植内核所以选择了最新的稳定版Linux 4.5.3,内核中已经支持,只需要选择对应的配置选项即可。
然后插上就可以看到设备了:
Bus 002 Device 011: ID 1e0e:9001 Qualcomm / Option
同时生成了多个ttyUSB设备:
$ ls /dev/ttyUSB* -l
crw-rw---- 1 root dialout 188, 0 May 21 22:59 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 May 22 11:48 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2 May 22 11:48 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 May 22 11:48 /dev/ttyUSB3
crw-rw---- 1 root dialout 188, 4 May 22 11:48 /dev/ttyUSB4
crw-rw---- 1 root dialout 188, 5 May 22 11:48 /dev/ttyUSB5
需要特别注意的是,要将USB转串口的USB_SERIAL 模块干掉,否则会有冲突。
用户态准备
编译PPPD,并安装到ARM Linux下面,关于如何编译PPPD可以查看我的Yocto Tips系列专栏,使用Build System快速解决。
PPPD配置
PPPD的配置其实就是告诉PPPD如何去发AT命令与4G模块交互,然后根据4G模块的回应,虚拟出一个网络设备,然后就可以按照访问普通设备网卡设备一样使用了。
连接
PPPD去操控硬件模块的第一步是让4G模块与GSM运营商Connection
这一步的配置内容如下:
#Chat script for China Mobile, used SIMCOM sim7100 LTE module.
TIMEOUT 15
ABORT "DELAYED"
ABORT "BUSY"
ABORT "ERROR"
ABORT "NO DIALTONE"
ABORT "NO CARRIER"
TIMEOUT 40
'' \rAT
OK at+cpin?
OK at+csq
OK at+cops?
OK at+cgatt?
OK AT+cgdcont=1,"IP","CMNET"
OK ATD*99***1#
CONNECT
我稍微解释一下,这个配置分为三个部分:
1. 配置异常退出与Timeout参数
这部分完成的是基本的设置,让PPPD知道当4G模块返回哪些string value的时候abort
2. 使用AT命令一步步完成连接
例如”OK at+cpin?“这一句的意思是,如果上一句AT命令发送出去后得到的值是OK,那么我们继续发送"at+cpin?"这个字符串,如果TIMEOUT(40S)了,那么就退出。
3. 完成连接
如果最后收到了CONNECT,那么就表示连接完成。
将这个配置命名为gprs-connect-chat,然后放置到/etc/ppp下面即可。
配置拨号与AT端口
我们前面有了该发送哪些AT命令到4G模块,但是还需要告诉PPPD使用哪个端口去发送,使用上面波特率等信息,即硬件接口,这个我们如下配置:
/dev/ttyUSB2
115200
crtscts
modem
debug
nodetach
usepeerdns
noipdefault
defaultroute
user "cmnet"
0.0.0.0:0.0.0.0
connect '/usr/sbin/chat -s -v -f /etc/ppp/gprs-connect-chat'
显然这里面用到了ttyUSB2,设置拨号连接时候的各种硬件参数,以及user,最后指定了前面的与AT配置文件。
我们将这个文件命名为gprsdial放在/etc/ppp中即可。
拨号上网
问题
4G模块SIMCOM7100 LTE在ARM Linux下使用PPPD上网相关推荐
- linux pfn,ARM Linux下的page和pfn之间转换的宏。
ARM Linux下的page和pfn之间转换的宏如下: 1)page_to_pfn 2)pfn_to_page 这两个宏依赖于内核编译时,选择的内存模型.在include/asm-generic/m ...
- linux-arm下如何开启tftp传输,arm linux 下移植busybox 的tftp
(1)进入busybox目录,make menuconfig ,然后在networking中勾选tftp项跟tftpd项. (2)配置/etc/inetd.conf 中关于tftp的选项(此部未验证, ...
- 上海域格ASR和高通模块 USB端口分配及Linux下拨号说明
上海域格ASR和高通模块 USB端口分配及Linux下拨号说明 一.域格 ASR模块端口分配 1.Windows下模块端口分配如下: interface 0 → RNDIS interface 1 → ...
- ARM Linux下UPnP使用
ARM Linux下UPnP使用 一.UPnP简介 UPnP(Universal Plug and Play)技术是一种屏蔽各种数字设备的硬件和操作系统的通信协议.它是一种数字网络中间件技术, ...
- 【openwrt】使用4G模块 移远EC20/25(2)pppd拨号与配置
[openwrt]使用4G模块 移远EC20/25 :2)pppd拨号与配置 参考 Raspberrypi -- 实现 EC20 4G模块PPP拨号上网_梦小羊的博客-CSDN博客 添加链接描述 == ...
- linux下3G拨号上网
Linux下3G拨号上网 开发板型号 :FL2440 内核版本:linux-3.0 3G上网卡:ZTE MF626 SIM卡:中国移动 1. usb_modeswitch移植 usb_modeswit ...
- 4G通信模块在嵌入式ARM Linux下的应用
4G通信模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一.4G通信模块把频率接收器和信号增幅器等部件全都整合在一起,实现了一体化.随着工业发展,嵌入式设备接入网络的需求日益增多, ...
- arm linux下交叉编译valgrind工具进行内存泄露检测和性能分析
C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题.如果crash的地方正是内存使用错误的地方,说明你人品好.如果crash的地方内存明显不是consistent的 ...
- PL2303在ARM Linux下驱动的问题及解决方法
问题描述:项目需要用ARM板驱动金笛wavecom GSM模块发短信,该GSM模块为USB接口,内部采用PL2303HX芯片转为RS232接口实现AT指令协议. 将GSM模块插入ARM板的USB口,发 ...
最新文章
- 服务器导出服务器时间转换浏览器端时区
- c++/cli之我见
- S2-016、S2-017
- STP安全特性——bpduguard特性、 bpdufilter特性、guard root 特性、loopguard技术总结与案列(附图,建议PC观看)
- Android Webview posturl 传参被encode问题
- 人人开源项目前端添加静态路由
- SHA生成消息摘要的过程
- LVDS 显示屏的两种接口标准:VESA 和 JEIDA;单/双路 LVDS 信号
- 【中国数据创新琅琊榜】数联易康医疗大数据平台,创新健康医疗产业变革的推动者和见证者!
- 【NOI2015】BZOJ4199品酒大会题解(SAM+树形DP)
- Jim Zemlin:中国是开源最重要的市场
- python3中 operator模块用法介绍
- 仿QQ浏览器mac版官网主页 html+css3特效
- m低信噪比下GPS信号的捕获算法研究,分别使用matlab和FPGA对算法进行仿真和硬件实现
- 让你的2003和xp一样好用
- autojs 自阅 刷宝短视频 脚本源码
- CentOS Stream才是未来
- 清新卡通小女孩读书背景的全民阅读PPT模板
- 老毛桃U盘工具,自由更换系统,方便快捷,全面兼容新旧配置,自制引导盘和光驱无法更新系统,老毛桃引导盘用户可以自由替换系统,支持GHOST与原版系统安装,方便快捷,自动安装。支持双显卡笔记本的引导进PE
- mssql+mysql联合查询_MySQL 多表查询实现分析