Yocto 上的 PPPD(Telit LE910 连接到 Telstra)

Yocto 上的 PPPD(Telit LE910 连接到 Telstra)

我们有一台 Telit LE910 连接到 Gumstix Overo SBC。 Overo 运行 Yocto Linux(内核 3.21)

我们已经设法使大部分工作正常运行,但现在 PPTP 客户端出现问题。

当我们尝试初始化 PPPd 时,我们得到以下输出:

root@overo:~# pppd call telstra
AT
OK
AT+CGDCONT=1,"IP","telstra.internet"
OK
ATH
OK
ATE1
OK
AT+CSQ
+CSQ: 99,99

OK
ATD*99***1#
CONNECT
Script /usr/sbin/chat -v -f /etc/ppp/chat finished (pid 3768), status = 0x0
Serial connection established.
using channel 102
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB2
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x7be0adcd> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0xab <asyncmap 0x0> <auth chap MD5> <magic 0x909a1588> <pcomp> <accomp>]
No auth is possible
sent [LCP ConfRej id=0xab <auth chap MD5>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x7be0adcd> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0xac <asyncmap 0x0> <magic 0x909a1588> <pcomp> <accomp>]
sent [LCP ConfAck id=0xac <asyncmap 0x0> <magic 0x909a1588> <pcomp> <accomp>]
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0>]
rcvd [LCP DiscReq id=0xad magic=0x909a1588]
rcvd [LCP ProtRej id=0xae 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfNak id=0x1 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfNak id=0x2 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x3 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfNak id=0x3 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x4 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfNak id=0x4 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x5 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
rcvd [IPCP ConfNak id=0x5 <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]
sent [IPCP ConfReq id=0x6 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 10.11.12.13> <ms-dns2 10.11.12.14> <ms-wins 10.11.12.13> <ms-wins 10.11.12.14>]

我们确实在开发板上运行了它,但尽管使用相同的配置,我们还无法让它工作。

是否存在配置问题或者是否存在更根本的问题?

答案1

经过大量工作,我们有了一个可用的配置和聊天脚本。

我认为根本原因是由于不可靠的飞线造成的接收不足。

AT+CSQ

将返回接收值和置信度数字(两者都越低越好)。在原始日志中,这是 99,99。使用不同的飞线会返回以下内容。

+CSQ: 15,99

最终使用的聊天脚本是:

TIMEOUT 5
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' 'ATZ'
'' \rAT
TIMEOUT 30
OK 'AT+CSQ'
OK 'AT#SIMDET=1'
OK 'AT+CGDCONT = 1,"IP","telstra.internet"'
OK 'AT+CGDCONT?'
\r \d\c
'OK' 'ATD*99#'
\r \d\c
\r \d\c
'CONNECT' ''

\r \d\c 是 1 秒的停顿。由于这是在启动和加电时进行的,因此在此应用程序中稍微慢一点是可以的。

这或许可以优化。

我们使用的 Peers 脚本是:

# initialization string.
connect "/usr/sbin/chat -v -f /etc/ppp/chat"
# Serial device to which the modem is connected.
/dev/ttyUSB2
# Speed of the serial line.
115200
# Assumes that your IP address is allocated dynamically by the ISP.
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
#Use this  connection as the default route.
defaultroute
replacedefaultroute
# Makes pppd "dial again" when the connection is lost.
persist
# Do not ask the remote to authenticate.
noauth
# For testing purposes
debug
nodetach

这现在确实有效,所以将来应该可以使用。

相关内容