web-dev-qa-db-ja.com

YoctoのPPPD(Telstraに接続するTelit LE910)

Gumstix OveroSBCに接続されたTelitLE910があります。 OveroはYoctoLinux(Kernel 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>]

これは開発ボードで実行していましたが、同じ構成を使用しているにもかかわらず、機能させることができませんでした。

構成の問題がありますか、それとももっと根本的なことが起こっていますか?

3
tl8

多くの作業を経て、設定とCHATスクリプトが機能するようになりました。

根本的な原因は、危険なフライリードによる受信の欠如だと思います。

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秒間の一時停止です。これは起動時と電源投入時なので、このアプリケーションでは少し遅くしても問題ありません。

これはおそらく最適化できます。

使用しているピアスクリプトは次のとおりです。

# 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

これは現在機能しているので、将来使用できるはずです。

1
tl8