前回の記事では、DRAGINO の LPS8 を Azure IoT Hub に接続するところをやったんですが、実はいろいろあって今は AWS IoT の方に接続しております。ちなみに Azure の方は前回の記事のように手こずったんですが、AWS の方は簡単に接続できましたので説明は無しです。
今回は LPS8 に SIM の USBドングルを挿して何とか通信をしたいという内容になります。使用するドングルは AK-020 で SIM は SORACOM を使います。
こちらに先人のありがたい記事が掲載されております。
Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。
Dragino社製IoTゲートウェイ LG01-JPを、SORACOM スターターキット(3G USBドングル AK-020)を使ってSORACOM Airに接続する。その2
今回使用する LPS8 とは異なる機種ですし、のっけからカーネルの更新があるのでちょっと無理そうかなーと思って手を付けていなかったんですが、やってみたら意外といけたので備忘録にしたいと思います。
AK-020 は、USB に挿し込むと CD-ROM として認識され、それをイジェクトすると USBモデムになる仕様になっていますので、まずは USBモデムとして認識されるところまでをやります。
現時点でのファームの最新は lgw-5.4.1644990565 です。LPS8 に AK-020 を挿して SSH で接続し、 lsusb をやると一応デバイスとして認識しているようです。
# lsusb Bus 001 Device 003: ID 15eb:a403 Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
VendorID が 15eb で ProductID が a403 が AK-020 の CD-ROM 側の ID になります。これをイジェクトすると、ProductID がUSBモデムの側の 7d0e に変わります。
で、イジェクトをしたいんですが eject パッケージも入らないのでどうしたもんかと調べてたら usb_modeswitch というこういうときに使うであろうモード切り替え用のパッケージがあったのでこれを使ってみます。が、何とすでにインストールされていました。OpenWRT では設定ファイルは /etc/usb-mode.json だそうです。見てみると確かにあります。ここに周りを参考におもむろに追記してみます。
"15eb:a403": { "*": { "t_vendor": 5611, "t_product": [ 32104 ], "mode": "StandardEject", "msg": [ ] } }
t_vendor と t_product は整数で指定されているので、15eb と 7d0e をそれぞれ10進数にした 5611 と 32104 を指定します。追記後、リブートして再度 lsusb してみると、
# lsusb Bus 001 Device 003: ID 15eb:7d0e Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
おー!、変わりました。さらに、デバイスをUSBシリアルとして認識してもらうため上記1個目の記事の3番の前半部分をやります(/etc/modules.d/80-usrserial の作成)。
ここまでくれば LPS8 の設定画面でドングルの認識されてるかなと思ったんですが、残念ながら認識してもらえませんでした。