摘要
本文主要介绍了嵌入式Linux系统下使用pppd
2.4.4来停止PPP拨号必要使用的脚本是如何配置的,配置项的含义,同时也说明了如何来配置参数,实现ppp拨号上网。
一.问题提出
嵌入式Linux操纵系统下,假如要停止PPP连贯,就必要配置拨号要使用的连贯脚本。这些脚本参数就决定了PPPD的行为,会对PPP连贯孕育发生很大的影响。所以必要对这些脚本的参数以及详细含义有所理解。
二.处置惩罚惩罚思路和PPP连贯关系亲密的有两个脚本是chat和options两个脚本。此中,ppp培训,chat脚本是用来停止AT呼叫和控制的脚本,而options脚本就影响PPP连贯的。
1.
CHAT脚本
一个简略的chat脚本有下面的构造:
"" AT
OK
ATDT dialnumber
CONNECT ""
一个chat脚本都是由字符串对来组成的。前面的字符串都是冀望获取的串,紧跟的是发送的字符串。这个脚本每一项的详细含义是这样的:
1)
MODEM冀望空字符串。这句话的意思间接了解就是MODEM岂论收到什么字符串,先发出字符串AT;
2)
冀望收到“OK”字符串,然后发送字符串“ATDT dialnumber”
3)
假如收到“CONNECT”,就不再发送,认为数据链路已建设连贯。
这样的chat脚本是最简略的,假如必要停止超时控制,就可以参与如下字段:
TIMEOUT
10
假如要增多对特殊状况的办理,就参与下面字段:
ABORT BUSY
ABORT NO ANSWER
ABORT
RINGING
这三行语句的意思是:假如收到字符串“BUSY”、“NO
ANSWER”、“RINGING”就退出执行。
所以在思考到各种特殊状况下,配置一个PPP连贯的CHAT脚本就可以像下面这样:
TIMEOUT
30
ABORT BUSY
ABORT NO ANSWER
ABORT RINGING
"" AT
OK ATDT
dialnumber
CONNECT ""
2.OPTIONS脚本OPTIONS脚本的内容,为PPP连贯指定了连贯使用的办法、使用的控制字符传输速率、指定了硬件加速、溢出控制等。
比方下面的options脚本:
ttyS0
---- 指定连贯使用的办法,比方:ttyS0、ttyS1等57600 ---- 设置连贯使用的控制字符传输速率,可以设置为57600、115200等
debug ---- 假如必要参与调试信息,就参与参数debug
logfile /var/ ppplog ---- 将连贯过程中的信息输入到某个文件中mtu 1500
-detach
noipdefault
---- 不使用默认IP就可以参与参数noipdefault
defaultroute
usepeerdns
---- 使用效劳器端协商的DNS就可以设置参数usepeerdns
lcp-echo-failure 4 ----
当间断4次没有收到发出的LCP回声哀求时,就认为效劳器端已不再响应,就退出执行。这里的失败次数可以灵敏来决定。
-ccp ---- 不使用压缩控制协议-vj ---- 关掉式IP头压缩-chap ---- 不使用chap鉴权
-mschap-v2 ---- 不使用mschap鉴权
user
hide-password
connect
"/usr/bin/chat -v -t6 -f /var/ chat" ---- 制定了要使用的chat脚本的位置。加上参数-v 讲述 chat命令将其所有的输出/入拷贝到系统记录里(通常是
/var/log/messages)。-t 6
指定了执行chat该命令的工夫为6s。chat脚本的位置可以位于/etc/目录下,也可以位于/var下,这个可以愈加必要灵敏设置。
persist --- 永恒链接(自动重拨)
crtscts --- 讲述ppp使用modem的硬件流量控制
modem --- 使ppp使用DCD信号来判断连贯能否正常,有无掉线现象
deflate --- 使pppd使用defalte压缩方式
idle --- 设置了一个工夫限制,当在300秒的工夫内没有数据传送,就断开连贯
lock --- 则创建一个锁定文件,其他步伐在发现存在这个文件后,就能得知相应的串口已经被使用。
demond --- 参数讲述pppd停留在靠山,监督网络数据,一旦有要求就立刻停止连网,超时后就断开连贯,但pppd依然停留在靠山期待下次数据传送
其他的参数详细含义可以参照参考PPPD2.4.4
中options.c中注释:
/*
* Option variables and default values.
*/
int debug = 0; /* Debug flag */int kdebugflag = 0; /*
Tell kernel to print debug messages */
int default_device
= 1; /* Using /dev/tty or equivalent */char devnam[MAXPATHLEN]; /*
Device name */
bool nodetach = 0; /* Don't detach from
controlling tty */bool updetach = 0; /* Detach once link is up
*/
int maxconnect = 0; /* Maximum connect time
*/char user[MAXNAMELEN]; /* Username for PAP */
char passwd[MAXSECRETLEN]; /* Password for PAP
*/bool persist = 0; /* Reopen link after it goes down */
char our_name[MAXNAMELEN]; /* Our name for authentication purposes
*/
bool demand = 0; /* do dial-on-demand */
char *ipparam = NULL; /* Extra parameter for ip up/down scripts
*/int idle_time_limit = 0; /* Disconnect if idle for this many
seconds */
int holdoff = 30; /* # seconds to pause
before reconnecting */bool holdoff_specified; /* true if a holdoff
value has been given */
int log_to_fd = 1; /* send log
messages to this fd too */bool log_default = 1; /* log_to_fd is
default (stdout) */
int maxfail = 10; /* max # of
unsuccessful connection attempts */char linkname[MAXPATHLEN]; /*
logical name for link */
bool tune_kernel; /* may alter
kernel settings */int connect_delay = 1000; /* wait this many ms
after connect script */
int req_unit = -1; /* requested
interface unit */bool multilink = 0; /* Enable multilink operation
*/
char *bundle_name = NULL; /* bundle name for multilink
*/bool dump_options; /* print out option values */
bool dryrun; /* print out option values and exit
*/char *domain; /* domain name set by domain option */
int child_wait = 5; /* # seconds to wait for children at exit
*/