今回はコネクシオさんからArmadillo-IoTゲートウェイG3L(以下G3Lと記述)をお借りすることができのたで、触ってみた所感などを記事にします。Armadilloの導入を検討している方の参考になればと思います。

開発環境としてはmacOS High Sierra(10.13.1)でテストを行います。

Armadillo-IoTゲートウェイG3Lとは

株式会社アットマークテクノとコネクシオ株式会社が共同開発したIoTゲートウェイデバイス。

詳しくはアットマークテクノさんのページコネクシオさんのページをご覧ください。

スペックはArmadillo-IoT G3Lのページ

公式のドキュメントが充実しており、G3Lへのログインから運用シーンに必要なことが一通り載っている印象をうけました。
社内向けのナレッジをそのまま社外用に公開したのではないか思えるほど詳細に記載されています。

ログインしてみる

何はともあれ、まずは電源を入れてログインしてみます。
OSはDebianらしいので、Linuxに触れたことある人ならそれほど違和感はないでしょう。
G3LにはVGAやHDMIなどのインターフェースが無く、ディスプレイに接続できないので、最初はシリアルで接続を行います。
同梱されているケーブルを本体の端子に挿します。
接続はこんな感じ。
赤く囲ったツマミを写真と同じようにmicroUSB寄りにしないと、保守モードで起動します。そのままログインすると特殊コマンドを使うことになります。詳しくはマニュアルをご覧ください。

接続できたら電源ケーブルを繋いで本体を起動しましょう。
10~20秒程度で起動します。
その間にローカルPC側はシリアル接続の準備をします。
私は今回Macでpicocomを使いました。
picocomはCtrl+a,Ctrl+xで終了できます。

picocomでの接続コマンド

picocom -b 115200 /dev/cu.usbserial-A5054SDA

つながりました!
私の場合は/dev/cu.usbserial-A5054SDAでしたが、利用している環境に寄っては別デバイス名の可能性もあるので、そこは各自ケーブルを抜き挿ししてご調査ください。
Arduinoを使っている方はArduinoの開発環境からもシリアル接続を行うこともできます。

ユーザー名とパスワードはマニュアルに記載されているので、そちらをご確認ください。

ネットワーク設定をする

ネットワークの設定を行う上で、

初期状態のままだとssh接続できないので、まずはWi-Fiの設定をします。
Raspberry piなどと同じようにコマンドでやれば早いと思ったら、wpa_supplicant.confファイルがそもそもない。。。
大人しくマニュアルに従います。。。
nmcliコマンドを使うようですが、よりユーザーフレンドリーなnmtuiコマンドもインストールされているとのこと。
コマンドを細々打つの大変なので、nmtuiを試します。

testuser@armadillo:~# nmtui

これは分かりやすそうなつくり。。。
“Edit  a connection”を選択します。

Wi-Fiが無い。。。。
追加出来るようなので”Add”を選択

Wi-Fi見つけました!

下記4つを設定し、下カーソルキーを押しっぱなしにして画面外の右下に隠れているOKを撰択します。
SSID
Mode
Security
Password (Securityを選択しないと表示されません)

1つ前の画面に戻るとWi-Fiの設定が追加されています。
問題なければそのまま右下のQuitから終了します。

うまく接続できればすぐにWi-Fiの接続ログが数十行流れ、IPが振られます。
IPの確認はipコマンドで行いました。

ip a | grep wlan

sshログインの準備

IP設定したらログインできると思ったら繋がらず、マニュアルを見たらsshサーバーが入っていないようなので入れます。
root権限ユーザーで行ってください。

apt-get install openssh-server

sshサーバーが起動するので、あとはローカルPCから下記コマンドでログインするだけです。

ssh ユーザー@IP

OSフラッシュ(初期化)してみる

起動しているOSはオンボードのeMMCに乗っているOSなので、消してはいけないファイルを消した場合など、復旧が必要になった場合に初期化できる仕組みがあります。

手順:
1.サポートページから「インストールディスクイメージ」を落としてくる
2.「インストールディスクイメージ」をmicroSDに書き込む
3.G3Lに繋がっているケーブル類を全て外し、電源を落とした状態でmicroSDをG3Lに挿し込み、ジャンパをショートさせた状態で電源ケーブルだけ挿して起動
4.ステータスLEDが終了表示になったら電源ケーブルを抜いてジャンパとmicroSDを抜く

1.サポートページから「インストールディスクイメージ」を落としてくる

Armadillo-IoT G3Lのダウンロードページから「インストールディスクイメージ」をダウンロードします。

2.「インストールディスクイメージ」をmicroSDに書き込む

ダウンロードできたら512 MB以上のmicroSDカードをローカルPCに接続します。
SDカードスロットがあれば便利ですが、無い方は変換ハブを使うしか無いです。
私のお気に入りはkingstonの「kingston microSD usb 変換」です。microSDをUSB接続に変換でき、構成がシンプルで比較的頑丈。

microSDをローカルPCに接続したらddコマンドで書き込みます。
中身があるmicroSDだと勝手にマウントされてしまう場合があり、下記のような出力を返して書き込みに失敗するのでマウントされていたらアンマウントします。
全てroot権限ユーザーで行ってください。

dd: /dev/disk2: Resource busy

まずはdfでマウント状況の確認

kawasaki-2:Downloads kawasakiya$ df
...
..
/dev/disk2s1 20404 20052 352 99% 512 0 100% /Volumes/Untitled
..
.

Resource busyと言われたdiskと同じようなdiskがdfをすると表示されるので、diskutilコマンドでアンマウントしてやります。

diskutil umount /dev/disk2s1

アンマウントが完了したら下記コマンドで初期化用のOSイメージをmicroSDに書き込みます。

dd if=OSイメージのパス of=/dev/接続したmicroSD bs=4m

進捗はCtrl+tで確認できます。
10分程度で書き込みが終わると思います。

書き込みが終了したらまたマウントされていないかdfコマンドで確認し、マウントされていたらdiskutilコマンドでアンマウントします。

3.G3Lに繋がっているケーブル類を全て外し、電源を落とした状態でmicroSDをG3Lに挿し込み、ジャンパをショートさせた状態で電源ケーブルだけ挿して起動

ローカルPCからmicroSDを抜き出しG3Lに挿しこみますが、G3Lは電源を落とした状態で作業してください。
挿しこみ場所は下記画像です。
ユーザーLED(電源LED)の裏側にある基盤の裏面です。

挿し込んだらジャンパで下記のJP1ピンをショートさせた状態にします。

microSDとジャンパの設定ができたらシリアルケーブルも外し、G3Lの電源を入れます。
電源が入るとmicroSDからeMMCへコピーが行われます。
進捗は下記3つのユーザーLEDで確認できます。
詳しくはマニュアルをご覧ください

4.ステータスLEDが終了表示になったら電源ケーブルを抜いてジャンパとmicroSDを抜く

初期化が終了したら電源を落とし、microSDとジャンパを外します。
初期化されてしまっているのでログインもシリアル経由になるのでお忘れなく。

LTEモジュールを設定してみる

まずはsimを準備します。
ちょうど手元に無かったので、自前のiPhoneに挿さっているnanoSIMを使います。
iPhoneから取り出してアダプタでmicroSIMサイズにしています。
写真の基盤の裏側に隠れているスロットに挿しこみます。
※挿し込む向きは写真の通り欠けの無い方を奥に挿しこみます。逆に挿すと読み込まないので注意!

挿し込んだら初回ログイン時にやったようにシリアル接続の準備をします。(Wi-FiなどLTEモジュール以外をOFFにするため)
microSIMとシリアル接続の準備ができたら電源を入れます。

電源が入ったらシリアル接続経由でログインします。

picocom -b 115200 /dev/cu.usbserial-A5054SDA

root権限のユーザーで実行してください。

nmcli connection add con-name gsm-ttyACM0 type gsm ifname ttyACM0 apn [apn] user [user] password [password]

マニュアルでは設定にapnなど5種の情報が必要とありましたが、上記コマンドに使用する3つだけで済みました。
apn
user
password

iPhoneでは、
設定->一般->プロファイル
使用中のプロファイルの詳細からパスワード以外は全て確認できました。
それらを元に確認した情報を使って上記のコマンドを実行しました。

成功すると下記が表示されます。

Connection 'gsm-ttyACM0' (57830dt1-cb34-4e3d-a022-226bha122ce7) successfully added.

1分弱待つと接続が確認できます。
確認コマンドは下記です。
STATEがconnectedになったら準備完了です。

testuser@armadillo:~# nmcli device
DEVICE TYPE STATE CONNECTION
ttyACM0 gsm connected gsm-ttyACM0
...
..

接続が確認できたらLTE以外の接続を全て切ります。
nmtuiコマンドからDeactivateします。


Deactivateするとこんな感じになります。

testuser@armadillo:~# nmcli device
DEVICE TYPE STATE CONNECTION
wlan0 wifi disconnected --

ttyACM0以外の接続が全て切れているのを確認したらインターネット上のサービスを叩いてみます。
LTEが生きているなら繋がるはず。。。

testuser@armadillo:~# ping -c 4 www.atmark-techno.com

うまくいけばこんな感じの応答があります。

64 bytes from p654787.hkidff01.ap.so-net.ne.jp (121.101.71.135): icmp_seq=1 ttl=52 time=163 ms

回線情報を取得してみる

この操作結果に4g(回線規格)とか電話番号とか、抜かれると怖い感じの情報が確認できます。

testuser@armadillo:~# mmcli -m 0
(省略。。。ここに電話番号とか出る)
Bearers | paths: '/org/freedesktop/ModemManager1/Bearer/0'
testuser@armadillo:~# mmcli -b 0
Bearer '/org/freedesktop/ModemManager1/Bearer/0'
-------------------------
Status | connected: 'yes'
| suspended: 'no'
| interface: 'usb1'
| IP timeout: '20'
-------------------------
Properties | apn: 'マイネオ'
| roaming: 'allowed'
| IP type: 'none'
| user: 'マイネオ'
| password: 'password'
| number: '*99#'
| Rm protocol: 'unknown'
-------------------------
IPv4 configuration | method: 'dhcp'
| address: 'unknown'
| prefix: '0'
| gateway: 'unknown'
| DNS: none
-------------------------
IPv6 configuration | method: 'unknown'

まとめ

初回ログイン、Wi-Fiセットアップ、OSフラッシュ(初期化)、LTEモジュールの設定を試して見ましたが、一言言えることは、
「マニュアルに全部書いてある」
ということですね。。。

流し読みで進めると、SIMの向きとか失敗して時間を無駄にします。。。
他にもSDカード側のOSで起動する方法やSMSの使い方など、本当に事細かくマニュアルに書いてあります。
とても良い。
やりたいことがあったら、まずはマニュアル内検索をしましょう。

OSもDebianで、サーバーいじったりRaspberry Piいじったりしている人には馴染みやすいですし、私は結構スムーズに導入できたとおもいます。
手間取ったのは最初のシリアル接続の所くらいでしょうか。久々にシリアル接続したのでクライアントの準備とかちょっと手間取りました。
マニュアルを読んでいてちょっと難易度高いかなって思ったのが、SDカードからの起動ですかね。
準備するイメージや手順がとても多い。イメージの書き込みやマウントが多く、OSのイメージの扱いを普段していない人は何をしているのかすらよく分からない作業が結構続きます。

私的には、
1.初期化イメージをmicroSDに焼く
2.microSDを本体に挿して、ジャンパをショートにせず起動
3.microSDから起動
4.中身(microSD)を作り込む
5.microSDをバックアップしておく
6.必要になったらmicroSDにバックアップイメージを焼いて2に戻る

という運用で良い気がするのですが。。。
ハードウェアの都合上難しいのでしょうか。

 

ちなみにisaaxを用いたG3Lの管理の方法の記事も書きましたので、あわせて読んでください。


isaax

IoT向けの継続的デリバリーサービス isaax (アイザックス) isaaxを使えば1アクションで数百・数千のデバイスをアップデートできます。 IoTシステムの構築をより簡単にします。

Leave a Reply

Your email address will not be published. Required fields are marked *