LinuxMobile GPRS上网配置
原创
©著作权归作者所有:来自51CTO博客作者ZLG李先静的原创作品,请联系作者获取转载授权,否则将追究法律责任
LinuxMobile GPRS上网配置
Linux手机用GPRS上网的原理很简单,AP与BP之间用串口连接,在串口上建立多路复用协议,在GPRS通道上建立PPP协议就可以了。这与用传统的Modem上网配置参与不多,这几天整网络管理器,花了点时间了解相关内容,这里做个笔记,供大家参考吧。
1. /etc/ppp/cmwap_connect
这里的AT命令看起来有些乱七八糟,都是为了保证可靠性,从Windows学过来的。
'ABORT' 'BUSY' 'ABORT' 'ERROR' 'ABORT' 'NO ANSWER' 'ABORT' 'NO DIALTONE' 'ABORT' 'Invalid Login' 'ABORT' 'Login incorrect' '' 'ATZ' '' 'ATZ' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0' 'OK' 'AT&FE0' 'TIMEOUT' '10' 'OK' 'ATM1L1' 'OK' 'AT+CGDCONT=1,"IP","CMWAP","",0,0' 'OK' 'ATDT*99***1#' 'CONNECT' ''
|
2. cmwap_disconnect
从数据模式切换到命令模式,不同的模组有所不同,可能要做些修改。
'ABORT' 'BUSY' 'ABORT' 'ERROR' 'ABORT' 'NO ANSWER' 'ABORT' 'NO CARRIER' 'ABORT' 'NO DIALTONE' 'OK' '+++' 'OK' 'ATH' 'OK' 'AT+CHUP' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0V1&D2&C1Q0S0=0' 'OK' 'AT&FE0' 'OK' 'AT&FE0'
|
3. /etc/ppp/peers/cmwap
/dev/ttyACM0要换成实际的串口设备。
user wap password wap defaultroute 115200 /dev/ttyACM0 connect "/usr/sbin/chat -v -f /etc/ppp/cmwap_connect" disconnect "/usr/sbin/chat -v -f /etc/ppp/cmwap_disconnect" debug kdebug 4 ipcp-no-addresses noipdefault noauth novj noccp
|
4. /etc/sysconfig/network-scripts/ifcfg-cmwap
其中大部分参数没有什么实际用处,主要是让ifup可以调过来,让网络管理器可以检测到。
DEVICE=ppp0 NAME=cmwap LINESPEED=115200 USERCTL=true ONBOOT=no PERSIST=no DEFROUTE=yes PEERDNS=yes DEMAND=no IDLETIMEOUT=600 TYPE=Modem BOOTPROTO=dialup
|
5. /etc/sysconfig/network-scripts/ifup-ppp
为了在我们的Linux手机上使用,我对它做了很大简化。
#! /bin/bash
cd /etc/sysconfig/network-scripts . network-functions
CONFIG=$1 source_config
echo "$0 DEVICE=$DEVICE CONFIG=$CONFIG NAME=$NAME"
pppd call $NAME
|
6. /etc/sysconfig/network-scripts/ifdown-ppp
/etc/sysconfig/network-scripts/ifdown-ppp #! /bin/bash
cd /etc/sysconfig/network-scripts . network-functions
CONFIG=$1 source_config
echo "$0 DEVICE=$DEVICE CONFIG=$CONFIG NAME=$NAME"
if [ -f /var/run/${DEVICE}.pid ] ; then PID=`head -1 /var/run/${DEVICE}.pid` echo "killing ${PID}" kill -TERM ${PID} sleep 2 [ ! -d /proc/${PID} ] && exit 0 sleep 5 [ ! -d /proc/${PID} ] && exit 0 kill -TERM ${PID} [ ! -d /proc/${PID} ] && exit 0 exit 1 fi
|
前几天有个朋友和我讨论多连接的问题,国内上WAP和上WWW的配置是不一样的,使用不同应用程序时,要在两者之间切换有点麻烦。他说moto的手机可以同时建立两个连接,不知道是如何实现的。我也不太清楚,至少我觉得路由表不好配置,若哪位高手知道详情,还望不吝赐教。
~~end~~