[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 メーリングリストの案内