本章では、Armadilloに書き込んだリカバリイメージが正常に起動するか確認する方法を説明します。
手順の中で、既にArmadillo
に書き込まれているプライマリイメージを上書きします。リカバリイメージの起動を確認した後に、元に戻すための正常なプライマリイメージファイルを用意しておいてください。
手順6.2 リカバリーイメージの起動テスト
起動しないプライマリイメージファイルを作る
正常に起動することができないイメージを書き込んだ状況を再現するため、サイズが1バイトのファイルをgzip圧縮して不正なプライマリイメージファイルとして用意します。次の手順をATDE5等のLinuxマシンで行ってください。
起動しないプライマリイメージを Armadillo から接続可能なwebサーバーに配置する
作成した "dummy.gz" と "dummy.gz.md5"
を対象となるArmadilloがアクセスすることのできる
webサーバーに配置してください。
node-eyeコントロールパネルから起動しないプライマリイメージを使ってファームウェアアップデートを実行する
node-eye コントロールパネル で対象となる Armadillo
を選択して、 不正なプライマリイメージファイル
"dummy.gz" へのURLを [カーネル]
に入力し、[アップデート完了後に再起動する]
にチェックを入れた上で、
ファームウェアアップデートを実行してください。
[ユーザーランド]
のテキストボックスには何も入力する必要はありません。
リカバリイメージによってArmadilloが起動した事を確認する
起動しないプライマリイメージファイルによるファームウェアアップデートに成功してArmadilloは再起動を実行します。
しかし、起動しないプライマリイメージによって起動が失敗するため、自動的にリカバリイメージで再起動します。
リカバリイメージで再起動した Armadillo は
node-eyeコントロールパネル または SACMコントロールパネルからは
[切断中]
として認識されますが、Ping、Traceroute、再起動、ファームウェアアップデートは実行することができます。
起動しないプライマリイメージのアップデートによる再起動を実行してから15分以上経過した後に、
対象の Armadillo が node-eyeコントロールパネルから [切断中]
として表示される事と、 Ping が実行できる事を確認してください。
確認が終ったら正常なプライマリイメージを使ってファームウェアアップデートを実行してください。
6.3. SACMからネットワークインターフェースの設定を行う
本章では、アットマークテクノが提供するネットワークモジュールのコンフィグの仕様と、
各種ネットワークインターフェースを使うための設定例を紹介します。
ネットワークモジュールは モジュール0 に割り当てています。
ネットワークモジュール(モジュール0)のコンフィグの書式を以下に示します。
ネットワークモジュールの eth0 に関する key 一覧です。
interface_eth0_
から始まる変数の値は
/etc/network/interfaces
に書き込まれます。
表6.1 ネットワークモジュールの eth0 に関する key 一覧
key | value (参考例) | 説明 |
---|
interface_eth0 | enable | eth0 の有効/無効 (enable / disable) |
interface_eth0_type | static | IPアドレスの設定方法 (dhcp / static) |
interface_eth0_address | 192.168.10.1 | IPアドレス |
interface_eth0_netmask | 255.255.0.0 | ネットマスク |
interface_eth0_network | 192.168.0.0 | ネットワーク |
interface_eth0_broadcast | 192.168.255.255 | ブロードキャストアドレス |
interface_eth0_gateway | 192.168.0.1 | ゲートウェイ |
interface_eth0_metric | 1 | メトリック値 |
ネットワークモジュールの umts0 に関する key 一覧です。
interface_umts0_
から始まる変数の値は
/etc/network/interfaces
に書き込まれます。
表6.2 ネットワークモジュールの umts0 に関する key 一覧
key | value (参考例) | 説明 |
---|
interface_umts0 | enable | eth0 の有効/無効 (enable / disable) |
interface_umts0_type | dhcp | IPアドレスの設定方法 (dhcp のみサポート) |
interface_umts0_apn | APN | アクセスポイント名 (APN) |
interface_umts0_id | "user name" | 認証ID(ユーザー名) |
interface_umts0_auth_type | CHAP | 認証方式 |
interface_umts0_pass | "password" | パスワード |
interface_umts0_pdp_type | IP | PDPタイプ |
interface_umts0_metric | 20 | メトリック値 |
ネットワークモジュールの awlan0 に関する key 一覧です。
interface_awlan0_
から始まる変数の値は
/etc/network/interfaces
に書き込まれます。
表6.3 ネットワークモジュールの awlan0 に関する key 一覧
key | value (参考例) | 説明 |
---|
interface_awlan0 | enable | enable または disable |
interface_awlan0_type | dhcp | dhcp または static |
interface_awlan0_address | 192.168.10.2 | IPアドレス |
interface_awlan0_netmask | 255.255.0.0 | ネットマスク |
interface_awlan0_network | 192.168.0.0 | ネットワーク |
interface_awlan0_broadcast | 192.168.255.255 | ブロードキャストアドレス |
interface_awlan0_gateway | 192.168.0.1 | ゲートウェイ |
interface_awlan0_metric | 40 | メトリック値 |
interface_awlan0_passphrase | "password" | パスフレーズ |
interface_awlan0_cryptmode | "WPA2-AES" | 暗号化方式*1 |
interface_awlan0_essid | "mywpa2aes" | ESSID |
interface_awlan0_channel | 1 | チャンネル(interface_awlan0_wireless_mode が master の時のみ設定可能) |
interface_awlan0_wireless_mode | managed | 接続モード (ステーションモード(STA): managed / アクセスポイントモード(AP): master) |
ネットワークモジュールの resolv.conf に関する key
一覧です。
resolv_conf_
から始まる変数の値は
/etc/resolv.conf
に書き込まれます。
表6.4 ネットワークモジュールの resolv.conf に関する key 一覧
key | 説明 |
---|
resolv_conf_search | resolv.conf の search |
resolv_conf_nameserver | resolv.conf の nameserver |
以下はネットワークモジュールの設定例です。
必ず、VERSION=1
,
interface_***=enable
が書かれていることに注目してください。
eth0 を使用する場合
awlan0 を使用する場合
6.3.2.4. 複数のインターフェースを同時に使う
6.3.3. SACMへ初めて接続する時のネットワーク設定を変更する
Armadillo
のリモートコンフィグと遠隔監視を行うためには、Armadillo と
SACMサーバー が互いに通信できる環境を用意する必要があります。
デフォルトの設定では、Armadillo の Ethernetポート(eth0)
を使って、DHCPによる設定を使って、通信を試みます。
それ以外の環境、例えば、3Gモバイル回線だけで Armadillo
の遠隔監視を行う場合は、この章で説明する手順で設定をする必要があります。
本題に入る前に、SACM から Armadillo
に対してリモートコンフィグを行うまでの流れを本文の
「ネットワークインターフェース設定シーケンス」
で確認してください。
シーケンス内で示すリモートコンフィグ前の/etc/network/interfaces
の変更は
/etc/armsd/scripts/line
の設定ファイル(/etc/config/line.conf
)を変更することで出来ることがわかります。
/etc/config/line.conf
の変更は、以下のいずれかの手順で行うことができます。
手順6.3「設定ファイルを変更し、コンフィグ領域に保存する」
これは Armaidllo と PC を接続し Armadillo
の端末を操作して設定する方法です。これは試作、開発時に向いています。
"イメージの書き換えが不要"というメリットはありますが、PC と Armadillo を何らかの方法で接続する必要があるため、複数台を同時に設定する場合などに向きません。
また、flatfsd -w
でコンフィグ領域を初期化した場合に再設定が必要です。
手順6.4「設定ファイルを変更し、イメージファイルを書き込む」
これは、atmark-dist のソースコード内にある、/etc/armsd/scripts/line
の設定ファイルを編集し、
ビルドしたイメージ書き込むことで、設定ファイルを変更する方法です。
手順6.3「設定ファイルを変更し、コンフィグ領域に保存する」の方法と比較して、作業は多くなってしまいますが、flatfsd -w
を行っても、
atmark-dist ビルド時の /etc/armsd/scripts/line
の設定が保持されるという特徴があります。
手順6.5「設定ファイルをUSBメモリーに入れ、設定を取り込む」
これは、node-eye 標準イメージの機能を使った方法です。
Armadillo にUSBメモリーを接続した状態で起動することによって、USBメモリー内の設定ファイルを Armadillo に取り込むことが可能です。
PCを使わずに設定することができるため、多数のArmadilloを連続してセットアップする場合に向いています。
ただし、この方法もflatfsd -w
でコンフィグ領域を初期化した場合は再設定が必要です。
| |
---|
ご使用の環境が、以下の条件をすべて満たしている場合、これらの設定を行う必要はありません。
|
手順6.3 設定ファイルを変更し、コンフィグ領域に保存する
line.conf の編集
vi エディタなどで、Armadillo 上の /etc/armsd/scripts/line の設定ファイルを変更します。
以下は、3Gモバイル回線とDHCPによる有線LAN接続を試行する設定例です。
先頭に#が付いた行はコメントなので、評価されません。
他の設定例については、本文
「SACMへ初めて接続する時のネットワーク設定を変更する」
に記載の設定例を参照してください。
line.conf の保存と再起動
まず、キャッシュファイルを削除し、編集した設定ファイルをフラッシュメモリに保存してから、再起動します。
再起動後、先ほど書き込んだ設定ファイルを基に/etc/network/interfaces
が生成され、SACMへの接続がおこなわれます。
手順6.4 設定ファイルを変更し、イメージファイルを書き込む
ソースコードの用意
作業用PC上に node-eye 対応の atmark-dist のソースコードを用意します。
line.conf の編集
/etc/armsd/scripts/line
の設定ファイルは、プライマリ、リカバリそれぞれにあります。
そのため、どちらも同じ設定にしたい場合は両方編集する必要があります。
編集内容は 「設定例」 で紹介しているものを参考にしてください。
イメージの書き込み
編集後、ユーザーランドをビルドし、Armadillo へ書き込みを行ってください。
ユーザーランドのビルド方法は Armadillo-IoT ゲートウェイ スタンダードモデル製品マニュアルの
11.1. Linuxカーネル/ユーザーランドをビルドする
を参照してください。
Armadillo へのイメージの書き込み方法は、同マニュアルの
第12章 フラッシュメモリの書き換え方法
を参照してください。
コンフィグ領域の初期化
書き込みが完了し、Armadilloが再起動した後はログイン後に "flatfsd"コマンドを使ってコンフィグ領域を初期化してください。
初期化時には、新たに書き込んだnode-eye対応イメージの"/etc/default"ディレクトリ以下のファイルがコンフィグ領域に保存され、且つ"/etc/config"ディレクトリにファイルが複製されます。
手順6.5 設定ファイルをUSBメモリーに入れ、設定を取り込む
Armadillo にUSBメモリーに入れた設定ファイルを取り込ませる方法を紹介します。
設定ファイルは「特定のディレクトリ」に「特定の名前」で、USBメモリーに保存しておく必要があります。
USBメモリーをフォーマットする
USBメモリーは FAT32
でフォーマットしてください。
設定ファイルを作成する
設定ファイルは、USBメモリーに以下のように配置します。
USB_ROOT
`-- config
|-- attached
| |-- 0001-0000-000D-0001-0000-0000-XXXX-0001.conf
| `-- 0001-0000-000D-0001-0000-0000-XXXX-0002.conf
|-- pool
| |-- 1.conf
| |-- 2.conf
| `-- 3.conf
`-- fixed
`-- default.conf
3つのディレクトリ(attached, pool, fixed)の用途を下記の表に示します。目的に合ったディレクトリに設定ファイルを置いてください。
表6.5 ディレクトリの用途
directory_name | 説明 |
---|
attached | Distribution-IDとネットワーク設定を1対1で対応させたい場合に使うファイル名は [Distribution-ID].conf のフォーマットが有効 |
pool | 設定する台数分のファイルを用意して、Distribution-IDとは無関係に順次設定を適用する場合に使うファイル名の昇順でUSBメモリーの接続毎に設定が適用され、適用済みの設定はattachedに[Distribution-ID].conf として移動される任意のファイル名が有効 |
fixed | Distribution-IDに関係なく1つのネットワーク設定を使いまわしたい場合に使うファイル名は default.conf のみ有効 |
※
ディレクトリごとに設定ファイル名の書式が異なります。注意して下さい。
設定ファイルは、以下の優先順位で Armadillo
に読み込まれます。
設定ファイルは attached/ のものが最優先で読み込まれます。
Armadillo は attached/ 以下に、自らの Distribution-ID
に一致する設定ファイル([Distribution-ID].conf
)が
見つかった場合、これを取り込みます。
設定ファイルは、1つ見つかると、その時点で、 pool/ ,
fiexed/ のコンフィグは使われません。
pool
に入っているコンフィグはArmadilloにコンフィグが書かれた後、
attached/
に{Distribution-ID}.conf
の名前で移動されます。
fixed
に入っているコンフィグはArmadilloにコンフィグが書かれた後、
attached/
に{Distribution-ID}.conf
の名前でコピーされます。
表6.6 eth0 で 使用可能な key の説明
key | 説明 |
---|
STATIC_ADDRESS | IPアドレス |
STATIC_NETMASK | ネットマスク |
STATIC_NETWORK | ネットワークアドレス |
STATIC_BROADCAST | ブロードキャストアドレス |
STATIC_GATEWAY | ゲートウェイ |
表6.7 umts0 で使用可能な key の説明
key | 説明 |
---|
MOBILE_ID | 認証 ID(ユーザー名) |
MOBILE_PASS | パスワード |
MOBILE_APN | アクセスポイント名(APN) |
MOBILE_AUTH_TYPE | 認証方式 |
MOBILE_PDP_TYPE | PDPタイプ |
表6.8 awlan0 で使用可能な key の説明
key | 説明 |
---|
WIRELESS_LAN_ENABLE | 無線LANの有効/無効 (true/false) |
WIRELESS_LAN_ESSID | ESSID |
WIRELESS_LAN_PASSPHRASE | パスフレーズ |
WIRELESS_LAN_CRYPTMODE | 暗号化方式 |
WIRELESS_LAN_WIRELESS_MODE | 接続モード |
| |
---|
LS Pull における eth0 と awlan0 は排他になっているため、WIRELESS_LAN_ENABLE=true に設定した場合は eth0 による LS Pull はできません。
|
表6.9 resolv で使用可能な key の説明
key | 説明 |
---|
RESOLV_SEARCH | resolv.conf の search |
RESOLV_NAMESERVER | resolv.conf の nameserver |
3G モバイル回線を使う
固定IPを使う
無線LAN(awl13)を使う
無線LANで固定IPを使う
6.4. Armadillo: モジュールの作成方法
本章では、Armadillo
に独自のモジュールを組込む手順について説明します。
モジュールを作成して Armadillo
のユーザーランドに組込むためには、 本文
「5章イメージファイルのビルド手順」 でビルドする Atmark Distの
ソースコードに変更を加えて、イメージをビルドしなおす必要があります。
モジュールの実体となるファイルは展開したAtmark
Distのソースコードの下記のパスに 配置します。
モジュールは基本的にシェルクスリプトとして、ファイル名がモジュール番号(ユーザー向けは4から15)
+ "_"で で始まるファイル名で作成してください。
例えば、5_mymodule.sh
というファイル名でモジュールを作成した場合、モジュール5
として実行されます。
ファイル名のモジュール番号は重複しないようにしてください。同じ番号が複数ある場合、ファイル名をasciiで
ソートして若い方の1つだけがモジュールの実装として機能します。
モジュールのサンプルは node-eye対応 の Atmark
Distのソースコード内の下記のパスに配置されています。
下記にその内容を記載します。
このモジュールは SACMコントロールパネル から モジュール4
として操作することができ、
任意コマンド実行
で与えるパラメーターを sh
の引数として、Armadillo上で実行することができます。
文中のcase文で分岐する条件の OPS にはモジュールの
オペレーション
が文字列として代入されます。 実装することのできる
オペレーション
は下記のサンプルコード N_sample を参考にしてください。
作成したモジュールはサンプルコードと同じディレクトリに配置して、「5章イメージファイルのビルド手順」
に沿ってユーザーランドイメージをビルドしてください。
ビルドが完了したイメージファイルは node-eyeコントロールパネル
からファームウェア更新機能を使って
書き込み、再起動が完了すると SACMコントロールパネル
から操作する事ができるようになります。
各モジュールの case文に書く事のできる
オペレーション
の種類と、実行される条件は下記の通りです。
表6.10 各モジュールの case 文に書く事のできるオペレーションの種類と実行条件
オペレーション | 実行タイミング |
---|
start | armsdが SACM に接続を確立した直後 |
stop | SACM または node-eye コントロールパネルで 再起動 を実行 |
reconfig | SACMコントロールパネルで コンフィグ反映 を実行 |
status | SACMコントロールパネルで ステータス取得 を実行 |
command | SACMコントロールパネルで 任意コマンド を実行 |
モジュールを作る場合は、必ずしも全ての
オペレーション
に対応するcase文を書く必要はありません。
SACMコントロールパネルからの各オペレーションの実行方法については
SACM マニュアル の
「オペレーション」タブ
を参照してください。
個々のモジュールのタイムアウト時間は 180秒 です。
start/stop/command 等の
オペレーション
を呼び出してから、180秒以内に実行が終了しない
場合はモジュールの実行が中断されます。
モジュールの返り値はモジュールへのオペレーションの成功/失敗の判定に影響することはありません。
スクリプトのテスト等の用途で自由に設定することができます。
6.6. Armadillo をnode-eye非対応の標準イメージに戻す
本章では node-eye 対応のイメージが書かれた Armadillo を、Armadillo-IoT ゲートウェイ G2の工場出荷状態にする方法を紹介します。
再び Armadillo に node-eye 対応のイメージを書き込む方法については 3章node-eye を体験する の 「「Armadillo の準備」」を参照してください。
Armadillo-IoT ゲートウェイ G2の工場出荷状態に戻すため使用するイメージファイルを下記に示します。
表6.11 工場出荷状態に戻すため使用するイメージファイル一覧
パーティション | イメージファイル名 |
---|
bootloader | loader-armadillo-iotg-std-[version] .bin |
kernel | linux-aiotg-std-[version] .bin.gz |
userland | romfs-aiotg-std-[version] .img.gz |
| |
---|
最新版のブートローダー、Linuxカーネルイメージファイルは
Armadillo サイトから、
ユーザーランドイメージファイルはユーザーズサイトからダウンロード可能です。
|
node-eye非対応の標準イメージに戻すにはパーティション構成の変更を伴うため、イメージの書き換えは順を追って行う必要があります。
下記の順番でイメージを書き換えてください。また、書き換えは
Hermit-At の保守モードで tftpdl を使用して行ってください。
bootloader 領域の書き換え
(loader-armadillo-iotg-std-[version]
.bin)
再起動
kernel 領域の書き換え (linux-aiotg-std-[version]
.bin.gz)
userland 領域の書き換え (romfs-aiotg-std-[version]
.img.gz)
6.6.1. bootloader 領域の書き換え
最初に、node-eye 対応ブートローダーイメージを書き込みます。
tftp を使用してイメージを書き換えるため、事前に、Armadillo
からアクセスすることのできる有線LAN
に接続できるようATDE5を起動して、ATDE5 の /var/lib/tftpboot/
ディレクトリにイメージファイルをコピーしておいてください。
Armadillo
を保守モードで起動し、下記コマンドを実行してください。
Armadillo の電源を入れなおして、再起動してください。
続いて、カーネルの書き換えを行います。下記のコマンドを実行してください。
ユーザーランドの書き換えを行います。下記のコマンドを実行してください。