« | »

2016.04.26

Raspberry Pi : USB Modem + MVNO

Raspberry PiをMVNOのSIMとUSB LTEモデムでインターネットに接続する。

使用機材

ホストコンピュータ:Raspberry Pi 2 Model B v1.1 / 5000円くらい
SIMカード:So-net 0SIM / SIMカード発行手数料3240円、月額利用料500MB未満は無料
USBモデム:(たぶん)ノーブランド Qualcomm 9200 4G LTE USB Modem / 3000円くらい

0SIM

500MB以上では100MB毎に+100円で、2GB以上は5GBまで1600円定額、5GB到達で低速回線に移行するが、チャージしてLTEを追加利用できる。
申し込み時は、SIMカード発行料金3240円が必要で、クレジットカード決済(年末に雑誌の付録でこのSIMカードが付いてきたらしいが、その時は知らず)。
データ専用プランの他に、SMS追加プランと、電話通話追加プランがあり、これらは月額料金がかかる。
法人登録は不可で、個人で一人1枚までのようだ。領収書、請求書も発行されない。

2月に購入。リリース当初は混雑していたようだが、オンラインで登録して5日でSIMカードが届いた。
届いても数日は使えないSIMもあるが、ゼロシムはその日から使えた。
LTE回線はNTTdocomo。
超ライトユースの場合だけが恩恵を受けられるサービスだが、持っていて面白い通信路である。

USBモデム

日本で購入すると1万円くらいするが、中国から輸入すると5000円以下で購入できる。
品質も悪くない。ただし、海外発注のリスクなどは了承のこと。

今回使用したモデムは普通サイズのSIMカードに対応しているので、
microSIMやnanoSIMを注文した場合は、SIMカード変換アダプタを使う。
ただし、変換アダプタがモデムのSIMスロットに引っかかると、
爪が破損してモデムが使用不可能になる場合があるので注意。

Raspberry Piの設定

# apt-get install wvdial usb-modeswitch

wvdialはモデムでの接続を自動化するアプリケーション。
usb-modeswitchは、モデム接続時にホストコンピュータがCD-ROMなどと誤認識しないようにするアプリケーション。
(eject sr0 などをしなくても良くなる)

モデムをUSBポートに接続して、通信を確認する。
/dev/ttyUSB* のグループがdilaoutなので、ユーザのグループを追加する。

# addgroup root dilaout

モデムは機種によってttyUSB0~3のどれかでシリアル通信できる。
今回使用したモデムはttyUSB0だが、日本製ではttyUSB2の場合も多いようだ。

# cu -l /dev/ttyUSB0 -s 115200

シリアル通信中
ATコマンドで通信を確認。現在のAPNなども確認。

Connected.
ATZ
OK
AT+CGDCONT?
+CGDCONT: 1,"IP","so-net.jp","0.0.0.0",0,0

OK
~.

Disconnected.

デバイスが判明したら、wvdial.confを作る。
0simの場合は、下記のような内容になる。

$ vi /etc/wvdial.conf

# wvdial
下記のようにIPアドレスがもらえれば接続成功。
今回使用したモデムの場合は、接続が確立するとLEDの点滅が早くなる。

--> WvDial: Internet dialer version 1.61
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","so-net.jp"
AT+CGDCONT=1,"IP","so-net.jp"
OK
--> Modem initialized.
--> Sending: ATD*99***1#
--> Waiting for carrier.
ATD*99***1#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Tue Apr 26 18:53:27 2016
--> Pid of pppd: 3226
--> Using interface ppp0
--> local IP address ***.***.***.***
--> remote IP address ***.***.***.***
--> primary DNS address ***.***.***.***

ifconfigしてみると、ppp0というネットワークが追加されている。

$ ifconfig
ppp0
Link encap:Point-to-Point Protocol
inet addr:***.***.***.*** P-t-P:***.***.***.*** Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:78 (78.0 B) TX bytes:213 (213.0 B)