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~~