本節では、インストールディスクを用いてユーザ製品の製造工程内でArmadilloにイメージ書き込みを行なう手順について説明します。
インストールディスクについては、「インストールディスクとは」を参照してください。
10.2.1. インストール時に任意の処理を行なう
量産するArmadilloひとつひとつに重複しない固定IPアドレスを設定したいなど、製造時に個体ごとに異なる設定を行ないたい場合があります。
そのような場合には、インストールディスクにはインストール時に任意のシェルスクリプトを実行する機能を利用することで実現できます。
インストールディスクには任意のサイズのexfatでフォーマットされた、ユーザが自由に利用できる第2パーティションを作ることができます。
作成方法は「開発したシステムをインストールディスクにする」を参照してください。
通常、インストールディスクの中身はWindows PCでは見ることはできませんが、exfatでフォーマットされたパーティションはWindows PCであっても読み書きすることができます。
第2パーティションを持つインストールディスクをPCに接続すると、「 INST_DATA
」というボリューム名でマウントされます。
| |
---|
PCにインストールディスクを接続しても INST_DATA がマウントされない場合は、インストールディスクを作る際に第2パーティションを作成していない可能性があります。
インストールディスク作成者に第2パーティションを作成するように問い合わせてください。 |
| |
---|
Windows PCにインストールディスクを接続すると以下のようなメッセージが表示されますが、Windowsで扱えないファイルシステムであるだけでデータは書き込まれているので、フォーマットは行わないでください。 |
この第2パーティション直下に installer_overrides.sh
という名前でシェルスクリプトを配置することで、インストール処理中に任意の処理を行なうことが可能です。
installer_overrides.sh
については「インストール時に任意のシェルスクリプトを実行する」を参照してください。
INST_DATA
の中にサンプルファイルとして installer_overrides.sh.sample
と ip_config.txt.sample
が配置されています。
特に installer_overrides.sh.sample
の内容は、 installer_overrides.sh
を作成する際に参考にできますので確認してみてください。
10.2.1.1. 個体ごとに異なる固定IPアドレスを設定する
インストール時に任意のシェルスクリプトを実行できる機能を利用して、複数のArmadilloに対して異なる固定IPアドレスを割り当てる例を紹介します。
INST_DATA
内の installer_overrides.sh.sample
と ip_config.txt.sample
は個体ごとに異なるIPアドレスを割り振る処理を行なうサンプルファイルです。
それぞれ installer_overrides.sh
と ip_config.txt
にリネームすることで、 ip_config.txt
に記載されている条件の通りに個体ごとに異なる固定IPアドレスを設定することができます。
全てをここでは説明しませんので、詳細はそれぞれのファイル内の記述も参照してください。
今回はそれぞれのファイルの内容は変更せず使用します。
サンプルそのままですが、 ip_config.txt
の内容を図10.2「ip_config.txtの内容」に示します。
|
このインストールディスクで割り振るIPアドレスの範囲の始まりを指定します。
|
|
このインストールディスクで割り振るIPアドレスの範囲の終わりを指定します。
|
|
ネットマスクを指定します。指定しない場合は24になります。デフォルトでコメントアウトされています。
|
|
ゲートウェイアドレスを指定します。
|
|
DNSアドレスを指定します。セミコロンで区切ることでセカンダリアドレスも指定できます。
|
|
IPアドレスの設定を行なうインターフェースを指定します。指定しない場合はeth0になります。デフォルトでコメントアウトされています。
|
| |
---|
インストール作業の並列化の為に、複数枚のインストールディスクで固定IPアドレスを割り振る場合は、それぞれのインストールディスクが割り振るIPアドレスの範囲が被らないように ip_config.txt を設定してください。 |
これらのファイルを配置したインストールディスクでインストールを実行したArmadilloが、正しく設定できていることを確認します。
また、サンプルスクリプトをそのまま使用すると、インストールディスクの第2パーティションに allocated_ips.csv
というファイルが生成されます。
このファイルには、このインストールディスクを使用してIPアドレスの設定を行なった個体のシリアル番号、MACアドレス、設定したIPアドレスが追記されていきます。
| |
---|
2台目以降のArmadilloにこのインストールディスクでIPアドレスの設定を行なう際に、 allocated_ips.csv を参照して次に割り振るIPアドレスを決めますので、誤って削除しないように注意してください。 |
10.2.1.2. インストール実行時のログを保存する
installer_overrides.sh
内の send_log
関数は、インストール処理の最後に実行されます。
インストールしたルートファイルシステムやファームウェアのチェックサムなどの情報が記録されたログファイルのパスが LOG_FILE
に入るため、この関数内でインストールディスクの第2パーティションに保存したり、外部のログサーバにアップロードしたりすることが可能です。
図10.5「インストールログを保存する」は、インストールディスクの第2パーティションにインストールログを保存する場合の send_log
実装例です。
|
send_log関数中では、SDカードの第2パーティション(/dev/mmcblk1p2)はマウントされていないのでマウントします。
|
|
ログファイルを <シリアル番号>_install.log というファイル名で第2パーティションにコピーします。
|
|
第2パーティションをアンマウントします。
|
これらの変更を行なったインストールディスクでインストールを実行した後に、インストールディスクをPCなどに接続して正しくログを保存できていることを確認してください。
保存したログファイルの中身の例を図10.6「インストールログの中身」に示します。
インストールディスクを使用してインストールを実行する手順は以下の通りです。
-
Armadillo-IoT ゲートウェイ G4がケースに組み込まれている場合はケース(上)を取り外します。
-
Armadillo-IoT ゲートウェイ G4のCON1にインストールディスクイメージが書き込まれたmicroSDカードを挿入します
JP1をショート(SDブートに設定)してから電源を投入します。
イメージサイズなどによって前後しますが、8章量産用インストールディスクの作成で作成したインストールディスクでは、1分程度でインストール処理が完了しました。
-
インストールが完了するとLED3及びLED4が消灯します。
-
コンソールを接続している場合は、
reboot: Power down
と表示されます。
-
ケース付属の場合は、ケース(上)を取り付けます。
Armadillo-IoT ゲートウェイ G4のケースの取り外し方及び、取り付け方はArmadillo-IoT ゲートウェイ G4 製品マニュアルの「オプションケース(金属製)」を参照してください。
以上でインストールディスクを使用したArmadilloの複製が完了しました。
上記手順を繰り返して、同じイメージが書き込まれたArmadilloを量産することができます。