|
文档目录
⒈
在linux PC机下实现GPRS上网方案
1)
软件环境
2)
拨号脚本的获得
3)
各个脚本的内容
4)
硬件环境
⒉在嵌入式Linux下GPRS上网方案
1) 硬/软件环境
2)
让Linux内核支持PPP
3)
ppp套件安装
4) ppp脚本配置
具体实施
1.在linux PC机下实现GPRS上网方案
l
软件环境
在PC机上安装VMware,新建一个虚拟机安装redhat9操作系统(linux-2.4内核),在操作系统中已经默认安装好了pppd,chat,pppdump,pppstats应用程序,不需要再下载安装
l 拨号脚本(ppp-on,ppp-off,ppp-on-dialer)的获得:
在/usr/share/doc/ppp-
l 各个脚本的具体内容
脚本ppp-on
#!/bin/sh
pppd modem -d -detach
lock /dev/ttyS0
19200 kdebug 4 file
/etc/ppp/options
crtscts noipdefault
netmask 255.255.255.0
defaultroute connect /etc/ppp/ppp-on-dialer 说明:几个需要设置的参数
1.
参数/dev/ttyS0:它指的是PC机的串口1
2.
参数19200:它指的是与G24通信的波特率,该参数应设置成与G24初始化的波特率相同。
3.
参数connect /etc/ppp/ppp-on-dialer:它指的是pppd在执行过程中调用的chat程序所在的脚本
脚本ppp-off
#!/bin/sh
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
if [ ! "$?" = "0"
]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale
pid file"
exit 1
fi
echo "PPP link to $DEVICE
terminated."
exit 0
fi
echo "ERROR: PPP
link is not active on $DEVICE"
exit 1
说明:ppp-off脚本可以不用修改
脚本ppp-on-dialer
#!/bin/sh
exec chat -v \
#起动 chat ,-v
告诉 chat 将其所有的输出/入拷贝到系统记录里(通常是
/var/log/messages).一旦你觉得 chat 指令稿的运作稳定而可靠,编辑这一行把 -v
移除以便减少你系统记录的混杂.
TIMEOUT 5 \
#这设定接收所期待的输入逾时时限为三秒.如果你使用真的是很慢的计算机那麽你可能得要增加这个设定到五秒或是十秒!
ABORT "BUSY" \
#如果接收到 BUSY 字串,中止执行.
ABORT "ERROR" \
#如果接收到 NO ANSWER 字串,中止执行.
ABORT "NO CARRIER" \
#如果接收到 NO CARRIER 字串,中止执行.
'' \rAT \
#不期待数据机传送任何讯息并且送出 AT 字串.
OK
'AT+CGDCONT=1,"IP","CMNET"' \
#接收到OK后,设置接入点为“CMNET”PDP_TYPE
为IP
OK 'ATDT*99***1#' \
#接收到OK后,拨接我们要拨的电话号码
CONNECT '' \
#接收到CONNECT后,退出程序
pap-secrets (GPRS认证配置文件)
# Secrets for
authentication using PAP
#
client server
secret
IP addresses
''
* '' *
说明:
1.
client和secret指的是你的isp所提供给你的用户名和密码,这里可以设置为空,
2.
server指的是你所连接的远端服务器用*号代替
3.
IP address指的是本地的ip地址,我们可以不指定,也可以用*号代替
除此之外还需要设置/etc/resolv.conf写好移动提供的DNS域名解析服务器的ip地址。
说明:这里使用固定的两个ip地址,如下
211.136.20.203
211.136.17.107
最后切换目录到你将ppp-on,ppp-off复制的目录,执行./ppp-on进行拨号。执行./ppp-off结束拨号。
硬件环境
l 硬件连接问题:PC机串口连G24 GPRS模块,在连接前要做好串口映射,方法:单击VMware菜单栏VM的settings选项,在弹出的菜单选择hardware选项卡,单击add按钮,在新弹出的对话框单击“下一步”选择Serial Port即可
2. 在嵌入式Linux下GPRS上网方案
l
硬/软件环境
基于S
该系统运行在Linux
l
让Linux内核支持PPP
进入Linux内核目录,执行#make menuconfig
Network Device
Support à
<*> PPP (point-to-point protocol) support
[*] PPP multilink support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
<*> SLIP (serial line) support
[*] CSLIP compressed headers
l
ppp套件安装
1.
下载ppp-
2.
将ppp-
×这里默认ppp源码目录为$(PPP)
#tar -zxvf ppp-
⒊获得交叉编译工具链
将cross-
#tar -jxvf cross-
⒋然后交叉编译ppp:
#cd
$(PPP)
#./configure
export CC=/usr/local/arm/
#make
⒌将ppp套件安装至嵌入式系统中:
这里默认可执行文件在嵌入式系统下的目录为$(EMB_BIN)
#cp $(PPP)/chat/chat
$(EMB_BIN)
#cp $(PPP)/pppd/pppd
$(EMB_BIN)
#cp
$(PPP)/pppdump/pppdump $(EMB_BIN)
#cp
$(PPP)/pppstats/pppstats $(EMB_BIN)
这里默认嵌入式系统的etc目录为$(EMB_ETC)
#mkdir $(EMB_ETC)/ppp
#cp $(PPP)/etc.ppp/* $(EMB_ETC)/ppp
● ppp脚本配置
⒈ ppp-on(GPRS启动脚本)
#!/bin/sh
pppd modem -d -detach lock /dev/ttySAC0 19200
kdebug 4 file /etc/ppp/options crtscts noipdefault netmask 255.255.255.0
defaultroute connect /etc/ppp/ppp-on-dialer
说明
1.
参数/dev/ttySAC0:指的是s
2. 其他的参数设置可参考上面的参数设置说明
⒉ ppp-off(关闭GPRS连接脚本)
#!/bin/sh
if [ "$1" =
"" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
if [ -r
/var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not
work then there is no process running for this
# pid. It may also
mean that the lock file will be left. You may wish
# to delete the lock
file at the same time.
if [ ! "$?" = "0"
]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid
file"
exit 1
fi
#
# Success. Let pppd
clean up its own junk.
echo "PPP link to $DEVICE
terminated."
exit 0
fi
#
# The ppp process is
not running for ppp0
echo "ERROR: PPP
link is not active on $DEVICE"
exit 1
说明:ppp-off脚本的内容可以不用修改
⒊ $(EMB_ETC)/ppp/ppp-on-dialer
(GPRS连接配置文件)
TIMEOUT
60
ABORT
"BUSY"
ABORT
"ERROR"
ABORT
"NO CARRIER"
'' AT
"OK"
"AT+CGDCONT=1,\042IP\042,\042CMNET\042"
"OK"
"ATDT*99***1#"
"CONNECT"
说明:该脚本的参数设置说明可以参考上面的设置说明
⒋ $(EMB_ETC)/ppp/pap-secrets
/dev/ttySAC0
#指定连接设备为串口0
19200
#波特率为19200
Modem
#使用modem control line
Crtscts
#使用硬件流控
Defaultroute
#将该连接作为系统的默认路由
asyncmap 0
#使用async character map -- 32-bit hex; each bit is
a character
lock
#使pppd连接时锁定这个串口设备
⒌ $(EMB_ETC)/ppp/pap-secrets
(GPRS认证配置文件)
# Secrets for
authentication using PAP
#
client server
secret
IP addresses
''
* '' *
说明:该文档的参数设置可参考上面的设置说明