gprs拨号上网,脚本即流程
由于一个嵌入式平台上项目开发的需要,在arm平台上实施ppp拨号上网。说起这个linux平台的ppp拨号上网,也许很多人觉很简单,网上
的成功的例子很多!不错,你说的对,但是我还要给点我的看法,就是这个简单的ppp拨号折腾了我的时间之长,我都不好意思讲。但是,现在看来这个过程学到
了好多的东西,得到很多分析能力的锻炼。现在成功移植到arm开发板上。特写日志于此,分享我的这段时间以来的总结:
### GPRS模块在Linux平台上的PPP拨号上网详解
#### 一、背景介绍
随着物联网技术的发展,GPRS模块在嵌入式系统中的应用越来越广泛。对于基于ARM平台的嵌入式设备而言,通过GPRS模块实现PPP拨号上网成为了一种常见的需求。尽管网络上有许多关于Linux平台下PPP拨号的教程,但对于初学者来说,实际操作过程中仍然会遇到不少挑战。本文旨在总结GPRS模块在Linux平台上进行PPP拨号上网的经验,并分享一些调试心得。
#### 二、PPP拨号上网的方法
通常情况下,Linux平台下的PPP拨号上网可以通过以下几种方式进行:
1. **使用智能的PPP拨号软件wvdial**
- **特点**:wvdial是一种较为智能且稳定的PPP拨号工具,无需额外的chat程序,直接通过集成的工具包即可实现与ISP的连接,支持断线自动重拨等功能。
- **参考案例**:[使用wvdial启动PPP协议拨号上网](http://blog.chinaunix.net/u2/76263/showart_1227064.html)
2. **使用三个脚本的方式(ppp-on, ppp-on-dialer, ppp-off)**
- **特点**:这种方式更加灵活,但需要用户手动配置更多的参数,适合对PPP协议有一定了解的技术人员。
- **参考资料**:
- [Linux PPP HOWTO](http://www.dcaccess.net/welcome/linux/PPP-HOWTO.html)
- [How to Hook Up PPP](http://www.theory.physics.ubc.ca/ppp-linux.html)
- **适用人群**:希望通过深入了解PPP协议原理来解决问题的学习者。
3. **使用命令`pppd callsome script`的方式**
- **特点**:这种方式适用于需要定制化配置的场景,适合高级用户或开发者。
- **参考案例**:[使用pppd callsome script拨号上网](http://blog.csdn.net/bouillisy/archive/2005/07/27/436203.aspx)
#### 三、具体配置示例
**配置文件`/etc/ppp/gprs-connect-chat`示例:**
```sh
#!/etc/ppp/gprs-connect-chat
TIMEOUT 15
ABORT '\nBUSY\r'
ABORT '\nNOANSWER\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
# AT命令配置
TIMEOUT 40
'' \rAT
OK ATS0=0 # 标准的AT命令,建议查看模块的AT命令手册
OK ATE0 V1
OK AT+CGDCONT=1,"IP","CMNET" # 设置ISP接入网关为中国移动的CMNET
OK ATDT*99***1## # 中国移动GPRS的接入号码
CONNECT ''
```
**配置文件`/etc/ppp/peers/gprs`示例:**
此文件主要用于给pppd进程提供配置参数。具体配置取决于实际需求,一般包括但不限于用户名、密码、认证方式等。具体的配置参数可通过查阅`man 8pppd`获得。
#### 四、调试技巧与常见问题
1. **错误排查**:当遇到诸如"LCP: timeoutsending Config-Requests"、"serial line is not 8-bit clean"等错误时,首先检查硬件连接是否正常;根据错误信息对照相关文档(如[Linux PPP HOWTO](http://www.dcaccess.net/welcome/linux/PPP-HOWTO.html)、[How to Hook Up PPP](http://www.theory.physics.ubc.ca/ppp-linux.html))进行排查;利用日志文件`/var/log/messages`来进一步定位问题所在。
2. **信号问题**:不同地区的信号质量可能存在较大差异,这会影响拨号成功率。尝试更换位置或调整天线方向可能会有所帮助。
3. **模块兼容性**:文中提到使用了华为的GTM900A/B两种型号的模块,不同型号之间可能存在兼容性差异。确保选择合适的配置参数。
#### 五、总结
通过上述方法,我们不仅能够实现嵌入式平台上的PPP拨号上网功能,还能在这个过程中学习到更多关于PPP协议及AT命令的知识。尽管过程可能充满挑战,但最终的成功将为我们带来巨大的成就感和技术提升。