ブログ

Armadillo-440でUSB 3Gドングル(RT-WJ02)を使ってみる(イメージ作成編)

at_takuya.sasaki
2016年5月7日 15時37分

以前、株式会社ネクス様が発売しているUSB 3Gドングル [ RT-WJ02 ]を、Armadillo-440で使ってみたときのブログを書きました。
https://users.atmark-techno.com/blog/750/2015

このブログでは設定ファイルなどを標準イメージ上で作成しましたが、RAMDISK上に作成しているため、Armadillo-440をリブートすると消えてしまいます。

今回はSIMが固定的に使えることを前提に、ユーザーランドのイメージに設定ファイルを含める方法にしてみます。 もしSIMが運用ごとに変更になるような場合には、以下のブログを参考に、各設定ファイルを /etc/config配下に配置するのがよいかと思います。
Armadillo-420でMMLink-Lite 3Gを使って見る(イメージ作成編)

すでにATDE5にて、ユーザーランド(Atmark Dist)とカーネルがビルドされている環境を想定しています。 ディレクトリ名などは随時読み替えてください。 またSIMはumobileのものを使用しています。ユーザ名/パスワードなどは随時読み替えてください。

1. カーネルコンフィギュレーションの変更

カーネルについては以下のコンフィギュレーションを有効にする必要があります。

Linux Kernel Configuration
Device Drivers  --->
  [*] USB support  --->
    <*>   USB Serial Converter support  --->      ← 有効化
      [*]   USB Generic Serial Driver             ← 有効化
      <*>   USB driver for GSM and CDMA modems    ← 有効化

また以降の手順は、atmark-distをATDE5の/home/atmark配下でビルドしており、プロダクト名を [ Armadillo-440 ] で選択していることを前提にしております。

2. optionファイルの編集

atmark@atde5:~$ vi atmark-dist/user/pppd/preinstall/etc/ppp/options
 
ファイルの中身を以下に書き換えます
 
lock
defaultroute
usepeerdns
name umobile@umobile.jp

3. 認証ファイルの編集

atmark@atde5:~$ vi atmark-dist/user/pppd/preinstall/etc/ppp/pap-secrets 
 
ファイルの中身を以下に書き換えます
 
# Secrets for authentication using PAP
# client    server  secret          IP addresses
umobile@umobile.jp * umobile

4. scriptsファイルの編集

atmark@atde5:~$ vi atmark-dist/user/pppd/ppp-2.4.4/scripts/ppp-on-dialer
 
ファイルの中身を以下に書き換えます。
 
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will pe
# protocol for the desired connection.
#
exec chat -v                        \
    TIMEOUT     3               \
    ABORT       '\nBUSY\r'          \
    ABORT       '\nNO ANSWER\r'         \
    ABORT       '\nRINGING\r\n\r\nRINGING\r'    \
    ''      \rAT                \
    'OK'        ATZ             \
    TIMEOUT     30              \
    OK      ATD*99***1\#                    \
    CONNECT     '\d\c'              \

5. make romfsの実行

atmark@atde5:~$ cd atmark-dist
atmark@atde5:~/atmark-dist$ make romfs

6. resolv.confのシンボリックリンクを作成します

atmark@atde5:~/atmark-dist$ ln -s /etc/config/resolv.conf romfs/etc/ppp/resolv.conf

7. ユーザーランドイメージの再作成

atmark@atde5:~/atmark-dist$ make image

imagesフィルダに再作成されたromfs.img.gzをArmadillo-440に書き込んで再起動します。

8. eth0の停止

eth0が有効で、デフォルトゲートウェイがeth0になっている場合、ppp接続時にppp0をデフォルトゲートウェイにすることができないようです。

*このようなログが出ます。

Feb 25 19:04:38 (none) daemon.err pppd[1785]: not replacing existing default route through eth0

よって以下のコマンドでeth0を一度ダウンしてください。

[root@armadillo440-0 (ttymxc1) ~]# ifdown eth0

もし/etc/config/interfacesでeth0を固定IPアドレスにしており、default gwを明示的に設定していない場合には、デフォルトゲートウェイはeth0にならないので、この対応は不要です。

ちなみにデフォルトゲートウェイは以下のコマンドで参照できます。

[root@armadillo440-0 (ttymxc1) ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         *               0.0.0.0         U     99     0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
192.168.82.0    *               255.255.255.0   U     0      0        0 eth0

9. ppp接続の開始

以下のコマンドを実行してください。
Armadillo-440起動時に自動で実行する場合は、/etc/config/rc.localに記述をして、flatfsd -s で変更内容をフラッシュメモリに保存してください。

[root@armadillo440-0 (ttymxc1) ~]# echo 11f6 1022 > /sys/bus/usb-serial/drivers/option1/new_id
[root@armadillo440-0 (ttymxc1) ~]# chmod +x /etc/ppp/ppp-on-dialer
[root@armadillo440-0 (ttymxc1) ~]# pppd debug /dev/ttyUSB2 9600 connect /etc/ppp/ppp-on-dialer

※: pppdの引数の「debug」は、必要なければ外してください。debugをつけると/var/log/messagesに詳細なログが出力されます。

以下のようにIPアドレスが取れていれば成功です。確認できたら、Ctrl-Cでtailコマンドを終了します。

[root@armadillo440-0 (ttymxc1) ~]# tail -f /var/log/messages
~(略)~
Feb 25 19:18:14 (none) daemon.notice pppd[1987]: local  IP address 10.47.126.172
Feb 25 19:18:14 (none) daemon.notice pppd[1987]: remote IP address 10.64.64.64
Feb 25 19:18:14 (none) daemon.notice pppd[1987]: primary   DNS address 103.54.208.97
Feb 25 19:18:14 (none) daemon.notice pppd[1987]: secondary DNS address 103.54.208.98

10. ppp接続の確認

ppp接続が正常にできている場合は、以下の様になります。

[root@armadillo440-0 (ttymxc1) ~]# ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.47.126.172  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:118 (118.0 B)  TX bytes:142 (142.0 B)

試しにgoogleにpingをしてみます。

[root@armadillo440-0 (ttymxc1) /etc/ppp]# ping -c 3 google.com
PING google.com (216.58.197.142): 56 data bytes
64 bytes from 216.58.197.142: icmp_seq=0 ttl=58 time=418.5 ms
64 bytes from 216.58.197.142: icmp_seq=1 ttl=58 time=357.9 ms
64 bytes from 216.58.197.142: icmp_seq=2 ttl=58 time=447.2 ms
 
--- google.com ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 357.9/407.8/447.2 ms

11. ppp0の切断

以下のコマンドでppp0を無効にできます。

[root@armadillo440-0 (ttymxc1) ~]# kill `cat /var/run/ppp0.pid`

以上