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,0OK
~.Disconnected.
デバイスが判明したら、wvdial.confを作る。
0simの場合は、下記のような内容になる。
$ vi /etc/wvdial.conf
[Dialer Defaults] Init1 = ATZ Init2 = ATH Init3 = AT+CGDCONT=1,"IP","so-net.jp" Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Dial Attempts = 3 Stupid Mode = yes Modem Type = Analog Modem Dial Command = ATD New PPPD = yes ISDN = 0 Modem = /dev/ttyUSB0 Baud = 115200 Phone = *99***1# APN = so-net.jp Username = nuro Password = nuro Carrier Check = no Auto Reconnect = yes
# 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)