RaspberryPiを格安SIM+USB通信モジュールで運用する(2)
Category : サーバ管理日記
Published by M-naka on 2016/12/25
 スタンドアローン運用を前提にRaspberryPiで動作する3G-USB通信アダプタ情報をまとめておく。
 OSはRaspibian……だが、基本的にLinuxなら動作するはず。


1.動作確認済み通信モジュール

 【推奨/動作◎】 docomo L-02A(3G、HSDPA) :/dev/ttyUSB0
 【推奨/動作◎】 docomo L-05A(3G、HSDPA/HSUPA) :/dev/ttyUSB0
 【非推奨/動作△】docomo L-02C(LTE) :/dev/ttyUSB2
 【推奨/動作◎】 ZTE MF120(3G、HSDPA/HSUPA) :/dev/ttyUSB2
 【推奨/動作〇】 WILLCOM HX004IN(3G、HSDPA/HSUPA):
 【推奨/動作◎】 WILLCOM HX003ZT(3G、HSDPA) :
 【推奨/動作◎】 WILLCOM HX008ZT(3G、HSDPA/HSUPA):


2.詳細情報

・L-02C
 「使い続けると通信不能になり、復旧にはUSBポートからの物理的取り外しが不可避」という、スタンドアローン運用には致命的なハードウェア仕様のため、動作を△にしている。
 この不具合はATコマンドによるリセット/Raspberry Piの再起動では解消せず、通電そのものをカットしないといけない模様。ごく一部のUSB-HUBはコマンドによるポート毎の電源オン/オフが可能な機種が存在、それによる制御は可能らしいが、如何せん値段が高いので個人的にはパス。

・WILLCOM HX004IN
 いわゆるUSB Composite Device(USB複合デバイス)で、Raspberry Piに挿しただけでは通信モジュールとして認識されない。Windows(7以前)での使用は専用アプリケーション併用が必須となり、アプリケーションによるモードスイッチが行われている模様。
 このようなデバイスの場合、Raspberry Piでejectコマンドを実行することでモードスイッチが行われ、USBモデムモードになることが多いが、HX004INではこれが効かない。
 試行錯誤の結果、usb_modeswitchをインストール、以下をusb_modeswitch.confに記述して実行することで解決した。

DefaultVendor=0x11f6
DefaultProduct=0x0014
TargetVendor=0x11f6
TargetProduct=0x0013
MessageEndpoint=0x01
MessageContent="55534243123456788000000080000606f50402527000000000000000000000"

 キモはデフォルト「0x0014」で認識されるデバイスを「0x0013」に切り替えることと、MessageContentで値を与えることで、MessageContentは同様の挙動をする別デバイス(いろいろある)と同じパラメータを使用。結果的にこれで良いらしい。

【2017/03/14追記】
 LinuxディストリビューションによってはModemManagerがインストールされている場合があり、これがデーモン起動していると、usb_modeswitch実行後もデバイスがそちらに掴まれっぱなしになり、usbserialモジュールとttyUSB0~2のバインドが行われない。このため、systemdやchkconfigでModemManagerのデーモン起動を切っておく。そのうえで、
 modprobe usbserial vendor=0x11f6 product=0x0013
をroot権限で実行すれば、ttyUSB0~2が/devに現れる。


3.補足情報

 Raspbianはデフォルトでは3G通信アダプタで通信するためのソフトウェアがインストールされていないので、SDカードへのOSイメージ書き込みの直後、ppp/libpcapのパッケージ2つを別途入手、SDカードにコピー(Windowsから見えるbootパーティション内でOK)、Raspbian起動後にシリアルコンソールで手動インストールを行えば、あとは設定だけで3G通信モジュールがいきなり使える。
 一時的にでも有線LAN/無線LANを使おうするといろいろ面倒で時間も掛かるので(反面、高速回線を使えるメリットはあるが)、用途次第でこのやり方は推奨。


4.まとめ

 ・廉価に入手可能したければ、3Gアダプタがおすすめ
 ・シビアな応答性能を要求しなければ、3Gアダプタがやっぱりおすすめ
 ・消費電力的にもLTEより3Gの方が少ないらしいので、IoT的用途には3Gアダプタがなおおすすめ
 ・L-02Cは地雷