RaspberryPiを格安SIM+USB通信モジュールで運用する(2)
Published by M-naka on 2016/12/25 (4645 reads)
スタンドアローン運用を前提に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は地雷
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は地雷
Navigate through the articles | |
VPN越しに自サイトにアクセスできない場合(CentOS7) | ネットワークインタフェースの初期化@Windows10 |
The comments are owned by the poster. We aren't responsible for their content.
|