[Armadillo:08567] Re: armadillo440とFOMA UM02-F でデータ通信(ppp)について

shimizu email@hidden
2013年 1月 29日 (火) 19:07:43 JST


ご回答ありがとうございます!
清水です。

socket関数、connect関数等が使用出来ると聞いて安心しました。

> errnoは、いくつですか?
connect関数のerrnoは、
110(10進):ETIMEDOUT:Connection timed out でした。
※約3分待ってエラーになります。

ちなみに、コネクトされた状態で、
FOMA UM02-Fの電源をOFFにして確認すると、
101(10進):ENETUNREACH:Network is unreachable が
すぐに返ってきます。

> 一応確認ですが、pingは通っているんですよね?
ifconfigコマンドで確認すると以下の様になりますので
pingは通っていると思います。


[email@hidden (ttymxc2) ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 99:99:99:99:99:99
          <省略>
          RX bytes:31081 (30.3 KiB)  TX bytes:9526 (9.3 KiB)
          Base address:0xa000

lo        Link encap:Local Loopback
          <省略>
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-Point Protocol
          inet addr:xx.xxx.xxx.xxx  P-t-P:yyy.y.y.yy  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:42 (42.0 B)  TX bytes:48 (48.0 B)

[email@hidden (ttymxc2) ~]# ping -c 5 yyy.y.y.yy
PING yyy.y.y.yy (yyy.y.y.yy): 56 data bytes
64 bytes from yyy.y.y.yy: icmp_seq=0 ttl=63 time=415.4 ms
64 bytes from yyy.y.y.yy: icmp_seq=1 ttl=63 time=424.7 ms
64 bytes from yyy.y.y.yy: icmp_seq=2 ttl=63 time=474.3 ms
64 bytes from yyy.y.y.yy: icmp_seq=3 ttl=63 time=423.8 ms
64 bytes from yyy.y.y.yy: icmp_seq=4 ttl=63 time=553.4 ms

--- yyy.y.y.yy ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 415.4/458.3/553.4 ms

[email@hidden (ttymxc2) ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr  99:99:99:99:99:99
          <省略>
          RX bytes:31209 (30.4 KiB)  TX bytes:9526 (9.3 KiB)
          Base address:0xa000

lo        Link encap:Local Loopback
          <省略>
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-Point Protocol
          inet addr:xx.xxx.xxx.xxx  P-t-P:yyy.y.y.yy  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:462 (462.0 B)  TX bytes:468 (468.0 B)



こうなりますと、自作プログラム以前の問題でしょうか。
catコマンドで/var/log/messagesの内容を表示すると、
以下の様になります。

[email@hidden (ttymxc2) ~]# cat /var/log/messages
<150>Jan  1 09:06:41 chat[1355]: timeout set to 3 seconds
<150>Jan  1 09:06:41 chat[1355]: abort on (\nBUSY\r)
<150>Jan  1 09:06:41 chat[1355]: abort on (\nNO DIALTONE\r)
<150>Jan  1 09:06:41 chat[1355]: abort on (\nNO ANSWER\r)
<150>Jan  1 09:06:41 chat[1355]: abort on (\nNO CARRIER\r)
<150>Jan  1 09:06:41 chat[1355]: send (rAT^M)
<150>Jan  1 09:06:41 chat[1355]: expect (OK)
<150>Jan  1 09:06:41 chat[1355]: rAT^M^M
<150>Jan  1 09:06:41 chat[1355]: OK
<150>Jan  1 09:06:41 chat[1355]:  -- got it
<150>Jan  1 09:06:41 chat[1355]: send (ATZ^M)
<150>Jan  1 09:06:41 chat[1355]: timeout set to 30 seconds
<150>Jan  1 09:06:41 chat[1355]: expect (OK)
<150>Jan  1 09:06:41 chat[1355]: ^M
<150>Jan  1 09:06:41 chat[1355]: ATZ^M^M
<150>Jan  1 09:06:41 chat[1355]: OK
<150>Jan  1 09:06:41 chat[1355]:  -- got it
<150>Jan  1 09:06:41 chat[1355]: send (ATD*99***1#^M)
<150>Jan  1 09:06:41 chat[1355]: expect (CONNECT)
<150>Jan  1 09:06:41 chat[1355]: ^M
<150>Jan  1 09:06:44 chat[1355]: ATD*99***1#^M^M
<150>Jan  1 09:06:44 chat[1355]: CONNECT
<150>Jan  1 09:06:44 chat[1355]:  -- got it
<150>Jan  1 09:06:44 chat[1355]: send (\d)
<30>Jan  1 09:06:45 pppd[1353]: Serial connection established.

<31>Jan  1 09:06:45 pppd[1353]: using channel 1
<30>Jan  1 09:06:45 pppd[1353]: Using interface ppp0
<29>Jan  1 09:06:45 pppd[1353]: Connect: ppp0 <--> /dev/ttymxc1
<31>Jan  1 09:06:45 pppd[1353]: rcvd [LCP ConfReq id=0x1 <accomp>
<pcomp> <asyncmap 0x0>]
<31>Jan  1 09:06:45 pppd[1353]: sent [LCP ConfReq id=0x1 <asyncmap 0x0>
<magic 0xd6fe59c1> <pcomp> <accomp>]
<31>Jan  1 09:06:45 pppd[1353]: sent [LCP ConfAck id=0x1 <accomp>
<pcomp> <asyncmap 0x0>]
<31>Jan  1 09:06:46 pppd[1353]: rcvd [LCP ConfAck id=0x1 <asyncmap 0x0>
<magic 0xd6fe59c1> <pcomp> <accomp>]
<31>Jan  1 09:06:46 pppd[1353]: sent [IPCP ConfReq id=0x1 <compress VJ
0f 01> <addr xx.xxx.xxx.xxx> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
<31>Jan  1 09:06:46 pppd[1353]: rcvd [IPCP ConfReq id=0x1 <addr
yyy.y.y.yy>]
<31>Jan  1 09:06:46 pppd[1353]: sent [IPCP ConfAck id=0x1 <addr
yyy.y.y.yy>]
<31>Jan  1 09:06:46 pppd[1353]: rcvd [IPCP ConfRej id=0x1 <compress VJ
0f 01> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
<31>Jan  1 09:06:46 pppd[1353]: sent [IPCP ConfReq id=0x2 <addr
xx.xxx.xxx.xxx>]
<31>Jan  1 09:06:47 pppd[1353]: rcvd [IPCP ConfAck id=0x2 <addr
xx.xxx.xxx.xxx>]
<27>Jan  1 09:06:47 pppd[1353]: not replacing existing default route via
192.168.1.1
<29>Jan  1 09:06:47 pppd[1353]: local  IP address xx.xxx.xxx.xxx
<29>Jan  1 09:06:47 pppd[1353]: remote IP address yyy.y.y.yy



気になっているのが DNS なのですが、
上記ログですと、DNSが取得出来ていない。という事でしょうか???
※ログの、ms-dns1 0.0.0.0、ms-dns3 0.0.0.0 や、
  not replacing existing default route via 192.168.1.1
 から、そう思っただけですが・・・。


こちらを参考に、
http://lists.atmark-techno.com/pipermail/armadillo/2010-November/006072.html

/etc/ppp/optionsには、usepeerdnsを追加し
/etc/resolv.confはpppのシンボリックリンクに変更しています。


/etc/ppp/optionsの内容は以下です。
crtscts
persist
usepeerdns
defaultroute
name aa.bbb-bb.co.jp


また、pppdコマンド実行時のパラメータは以下です。
pppd -d /dev/ttymxc1 115200 connect /etc/ppp/ppp-on-dialer
xx.xxx.xxx.xxx:yyy.y.y.yy


長文。失礼致しました。
よろしくお願い致します。


(2013/01/29 11:40), Yasushi SHOJI wrote:
> 清水さん、
> 
> はじめまして。
> 
> At Mon, 28 Jan 2013 21:47:32 +0900,
> shimizu wrote:
>>
>> pppでのデータ通信は、
>> socket関数、connect関数、
>> read/write関数、close関数を使用して実現可能でしょうか。
> 
> 可能です。
> 
>> 現在、connect関数で-1が返ってくるので、
>> このような質問をさせて頂きました。
>> (armadillo440はクライアント側です)
> 
> errnoは、いくつですか?
> http://linuxjm.sourceforge.jp/html/LDP_man-pages/man2/connect.2.html#lbAF
> 
>> 上記で実現可能な場合ですが、
>> 以下の様な手順で実行しています。
>> 何かとんでもない事をしているでしょうか?
> 
> とくに無さそうです。すべての関数でエラーをチェックしてみると良いかも?
> 
>> pppdコマンドでコネクトし、pingコマンドを実行。
> 
> 一応確認ですが、pingは通っているんですよね?
> 



armadillo メーリングリストの案内