株式会社ネクス様が発売しているUSB 3Gドングル [ RT-WJ02 ]を、Armadillo-440で使ってみました。
https://www.ncxx.co.jp/product/rt-wj02/support/
まずは標準のユーザーランドのままで動作確認をしてみます。 またSIMには umobile を利用していますので、お使いのSIMに合わせてユーザ名などは変更する必要があります。
1. カーネルコンフィギュレーションの変更
カーネルについては以下のコンフィギュレーションを有効にする必要がありますので、有効化したカーネルをArmadillo-440に書き込んで、Armadillo-440にログインしてください。
Linux Kernel Configuration
Device Drivers --->
[*] USB support --->
<*> USB Serial Converter support ---> ← 有効化
[*] USB Generic Serial Driver ← 有効化
<*> USB driver for GSM and CDMA modems ← 有効化
2. RT-WJ02用のoptionファイルの作成
/etc/ppp/options ファイルを以下のように編集してください。
lock
defaultroute
usepeerdns
name umobile@umobile.jp
3. RT-WJ02用のpap-secretsファイルの作成
/etc/ppp/pap-secrets ファイルを以下のように編集してください
# Secrets for authentication using PAP
# client server secret IP addresses
umobile@umobile.jp * umobile
4. RT-WJ02用のpap-secretsファイルの作成
/etc/ppp/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. 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
6. ppp接続の開始
以下のコマンドを実行してください
[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) ~]# rm -rf /etc/resolv.conf
[root@armadillo440-0 (ttymxc1) ~]# ln -s /etc/ppp/resolv.conf /etc/
[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
7. ppp接続の確認
ppp接続が正常にできている場合は、以下の様になります。(IPアドレス部分はxxにしています)
[root@armadillo440-0 (ttymxc1) ~]# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:xx.xx.xx.xx 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
8. ppp0の切断
以下のコマンドでppp0を無効にできます。
[root@armadillo440-0 (ttymxc1) ~]# kill `cat /var/run/ppp0.pid`
以上