为了让我们的彩信应用在Linux小机上运行起来,实现彩信的收发,就需要在Linux上实现GPRS modem的拨号上网,通过PPP拨号建立和WAP服务器的连接。查了些资料后,没遇到多少麻烦就实现了PPP拨号上网,在此记录以作备忘。
我们是使用一个可以接受AT命令的GPRS手机作GPRS的modem,其通过USB线和Linux小机通讯(串口线也是一样的),将其和小机连接后将出现一个ttyUSB0的设备,用如下命令对这个设备做一个链接:
ln -s /dev/ttyUSB0 /dev/gprsmodem
这些做好后,编写 一个 名为gprs的pppd拨号配置文件,保存到目录/etc/ppp/peers下,其内容如下所示:
然后编写一个名为gprsmodem.chat的chat会话文件,保存到目录/etc/ppp下,内容如下所示:
之后,用如下命令即可进行PPP拨号上网了。
pppd call gprs
此命令完成后,使用如下命令是否拨号成功和查看分配的IP地址。
ifconfig
若拨号不成功,使用如下命令查看log信息查找原因,一般都可以找到。
vim /var/log/messages
另外,若内核没有PPP拨号相关的模块,则按如下方式配置PPP相关的内核选项,重新编译内核和模块,才能进行PPP拨号。
通过USB连接GPRS手机进行PPP拨号上网
我们是使用一个可以接受AT命令的GPRS手机作GPRS的modem,其通过USB线和Linux小机通讯(串口线也是一样的),将其和小机连接后将出现一个ttyUSB0的设备,用如下命令对这个设备做一个链接:
ln -s /dev/ttyUSB0 /dev/gprsmodem
这些做好后,编写 一个 名为gprs的pppd拨号配置文件,保存到目录/etc/ppp/peers下,其内容如下所示:
user wap
password wap
defaultroute "/dev/gprsmodem"
connect "/usr/sbin/chat -v -f /etc/ppp/gprsmodem.chat"
debug
kdebug 4
ipcp-no-addresses
noipdefault
noauth
novj
noccp
password wap
defaultroute "/dev/gprsmodem"
connect "/usr/sbin/chat -v -f /etc/ppp/gprsmodem.chat"
debug
kdebug 4
ipcp-no-addresses
noipdefault
noauth
novj
noccp
'ABORT' 'BUSY'
'ABORT' 'ERROR'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'TIMEOUT' '10'
'OK' 'AT+CGDCONT=1,"IP","CMWAP"'
# 'OK' 'AT+CGQREQ=1,0,0,0,0,0 ' // 这两行根据使用的模组来确定
# 'OK' 'AT+CGQMIN=1,0,0,0,0,0 ' // 是否需要和具体的数值
'OK' 'ATD*99***1#'
'CONNECT' ''
'ABORT' 'ERROR'
'ABORT' 'NO ANSWER'
'ABORT' 'NO CARRIER'
'ABORT' 'NO DIALTONE'
'ABORT' 'Invalid Login'
'ABORT' 'Login incorrect'
'' 'ATZ'
'TIMEOUT' '10'
'OK' 'AT+CGDCONT=1,"IP","CMWAP"'
# 'OK' 'AT+CGQREQ=1,0,0,0,0,0 ' // 这两行根据使用的模组来确定
# 'OK' 'AT+CGQMIN=1,0,0,0,0,0 ' // 是否需要和具体的数值
'OK' 'ATD*99***1#'
'CONNECT' ''
pppd call gprs
此命令完成后,使用如下命令是否拨号成功和查看分配的IP地址。
ifconfig
若拨号不成功,使用如下命令查看log信息查找原因,一般都可以找到。
vim /var/log/messages
另外,若内核没有PPP拨号相关的模块,则按如下方式配置PPP相关的内核选项,重新编译内核和模块,才能进行PPP拨号。
CONFIG_PPP=m参考资料:
# CONFIG_PPP_MULTILINK is not set
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPPOE is not set
通过USB连接GPRS手机进行PPP拨号上网