Gumstix Overo SBC에 Telit LE910이 연결되어 있습니다. 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
이는 현재 실제로 작동하므로 앞으로도 작동할 것입니다.