セットアップ手順 (Armadillo-IoT G3)
目次
初期セットアップ手順
ドキュメントについて
Armadillo-IoTのご利用方法については、メーカー公式のドキュメントが公開されております。以下のサイトをご確認ください。
https://armadillo.atmark-techno.com/resources/documents/armadillo-iot-g3/manuals
ここでは、Armadillo-IoT G3 で IIJ IoTサービスを利用するための最小限の手順について、記載していきます。
使用機材について
Armadillo-IoT ゲートウェイ G3 開発セット AGX3020-D00Z
使用したOS・バージョンなど
Debian GNU/Linux 9 (stretch) v20220328
用意するもの
- Armadillo-IoT G3本体 および付属品(USBシリアル変換アダプタ、Mini-USBケーブル、ACアダプタ、LTEアンテナ)
- インターネットに接続できる環境(有線LAN)
- PC
ハードウェアのセットアップ
- Armadillo-IoT 本体に、USBシリアル変換アダプタのコネクターを接続します。
また、USBシリアル変換アダプタのMini-USBポートとPCを USBケーブルで接続します。
USBシリアル変換アダプタの基盤についているスイッチは右側に設定します。 - Armadillo-IoT本体に SIM を挿入します。この際SIMの方向にご注意ください(SIMの切り欠きを手前にしてスロットに挿入します)。
PCからターミナルソフト(TeraTermなど)を起動し、シリアルポート(Armadillo-IoTに接続されているポート)に接続します。
また、シリアルポートの通信設定を以下の通りに設定します。設定項目 設定値 スピード 115200 データ 8 bit ストップビット 1 bit パリティ なし フロー制御 なし - ACアダプターを接続すると、起動します。
ターミナルソフトの画面にOSの起動状況が表示されていることを確認します。
OS・ミドルウェアのセットアップ
パスワードの初期設定
Armadillo-IoTは、初期状態では root 及び一般ユーザーのパスワードが設定されていないため、初回ログイン時に設定を行います。
- login プロンプトから、ユーザー root パスワード root でログインします。
- ログイン後、パスワード変更が促されますので、画面表示に従ってパスワードを変更します。
- いったんログアウトします。
- login プロンプトから、ユーザー atmark パスワード atmark でログインします。
- ログイン後、パスワード変更が促されますので、画面表示に従ってパスワードを変更します。
- いったんログアウトします。
OSのアップデート
以下の手順でOSを最新状態にアップデートします。
- 有線LANに接続し、インターネットに接続できる状態にします。
- loginプロンプトから、root でログインします。
以下の通り入力し、OSを最新状態にアップデートします。
apt update && apt upgrade -y
セルラー回線の接続の設定
- loginプロンプトから、root でログインします。
以下の通り入力します。引数の部分は下記の通りに置き換えます。
nmcli connection add type gsm ifname <ifname> apn <apn_name> user <user_name> password <pass>
引数は以下のように読み替えます。
引数
意味
備考 <ifname>
通信モデムのネットワークデバイス
LTEモデルの場合は
ttyUSB2
3Gモデルの場合はttyACM3
ls -l /dev/tty*
を実行し、デバイスの有無を確認する<apn_name>
APN名 使用するSIMによりAPN設定が異なります。
オンラインヘルプのモバイルアクセス「APN設定」をご参照ください。<user_name>
APNのユーザ名 <pass>
APNのパスワード Connection 'gsm-ttyUSB2' (xxxxxxxxxx) successfully added.
と表示されれば完了です。設定後、ppp0の接続状況を確認します。
ip addr show ppp0
IPアドレスが取得できていれば、セルラー回線が接続されている状況です。
DNS設定の見直し
上記で設定したセルラー回線は、デフォルトではパブリックなDNSサーバーを参照するように設定されています。そのため、IIJ IoTサービスの閉域ネットワークのホストの名前解決ができない状態になります。
ここでは、DNS参照先を IIJ IoTサービスのDNSサーバーに設定し直します。
- loginプロンプトから、root でログインします。
以下の通りコマンドを入力します。
<ifname>
の部分は、LTEモデルの場合はgsm-ttyUSB2
3Gモデルの場合はgsm-ttyACM3
を指定します。nmcli connection show <ifname> | grep DNS
DNS参照先が 4.2.2.1 および 4.2.2.2 になっていることが確認できます。
以下の通りコマンドを入力します。
<ifname>
の部分は 2. と同様です。nmcli connection modify <ifname> ipv4.dns "10.64.2.11 10.64.2.12" # ← DNSサーバを手動で指定する nmcli connection modify <ifname> ipv4.ignore-auto-dns yes # ← DNSサーバの自動設定を無効化する
セルラー回線を切断・再接続します。
<ifname>
の部分は 2. と同様です。nmcli connection down <ifname> nmcli connection up <ifname>
参照先のDNSが変更されたことを確認します。
nmcli connection show <ifname> | grep DNS
静的ルーティングの設定
有線LANとセルラー回線を併用する場合、同時に接続していると有線LANの接続が優先されてしまい、セルラー回線経由でのIIJ IoTサービスの閉域ネットワークへパケット送信ができなくなります。
ここでは、セルラー回線の静的ルート設定を追加します。
- loginプロンプトから、root でログインします。
以下の通りコマンドを入力します。
nmcli connection show
一覧の "NAME" の部分に、インターフェース名が表示されます。以降、各インターフェース(有線LAN、セルラー回線)の操作をする場合はこのインターフェース名を使用します。
以下の通りコマンド入力し、セルラー回線のIPアドレスを取得します。
ip addr show ppp0
表示されたIPアドレスをメモしておきます。
以下の通りコマンド入力し、セルラー回線の静的ルーティングを設定します。
<ifname>
の部分は2. で表示されたセルラー回線のインターフェース名を指定します。<ipaddr>
の部分は 3. で取得したIPアドレスを指定します。nmcli connection modify <ifname> ipv4.never-default yes # IPv4のデフォルトルートを使わない nmcli connection modify <ifname> ipv6.never-default yes # IPv6のデフォルトルートを使わない nmcli connection modify <ifname> +ipv4.routes "10.64.2.0/24 <ipaddr>" # 静的ルート設定, <ipaddr> の部分は自分自身(ppp0)のIPアドレスを書く
以下の通りコマンド入力し、有線LAN側のDNSを使用しないように設定します。
"Wired connection 1"
の部分は 2. で表示された有線LANのインターフェース名を指定します。nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes nmcli connection modify "Wired connection 1" ipv6.ignore-auto-dns yes
Network Manager を再起動し、設定を有効化します。
systemctl restart NetworkManager
DNS設定を確認し、10.64.2.xx のDNSしか参照していないことを確認します。
cat /etc/resolv.conf
パケットのルート設定が正しいか確認します。
traceroute gw.iot.iij.jp # セルラー回線経由でパケットが送信される traceroute www.iij.ad.jp # 有線LAN経由でパケットが送信される
動作確認
LTE回線が接続されているか確認する
ターミナルから、以下のコマンドを入力します。
ip addr show ppp0
IPアドレスが表示された場合はLTE回線が接続されている状態です。エラーが表示された場合はLTE回線が接続されていない状態です。
IIJ IoTサービスへの接続を確認する
ターミナルから、以下のコマンドを入力します。
ping -c 4 gw.iot.iij.jp
pingの応答があった場合は、IoTサービスのサーバーに正常に接続できている状態です。エラーが表示された場合は正しく接続できていない状態です。
IIJ IoTサービスにデータ送信をしてみる
ターミナルから、以下のコマンドを入力します。
curl -v -X POST -H 'Content-type: application/json' http://gw.iot.iij.jp/v1 -d '{"name":"test", "value":100}'
200 OK のレスポンスが返ってくれば、データ送信は正常に終了しています。
その他設定
タイムゾーンの設定
Armadilloは、デフォルトではタイムゾーンがUTCに設定されています。必要に応じてJSTに変更してください。
- loginプロンプトから、root でログインします。
date コマンドを実行し、UTCの時間が表示されることを確認します。
date
タイムゾーンをJSTに変更します
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
date コマンドを実行し、JSTの時間が表示されることを確認します。
date