ブログ

Armadillo実機上でセルフ開発を行ったものを量産するための手段について

at_takuma.fukuda
2019年8月5日 2時31分

はじめに


Armadillo-IoTゲートウェイG3・G3L、Armadillo-X1、Armadillo-640などの機種は
従来機種と比較してストレージ容量が大きいことから、
実機と異なる開発環境でアプリケーション開発→コンパイルを行ってから実行ファイルを実機に書き込むクロス開発だけでなく、
エディタやコンパイラなどの開発環境を実機上にインストールして、
実機上で直接アプリケーション開発→動作検証を行うセルフ開発を行うことが可能です。

特にアプリケーション開発の初期段階ではセルフ開発を行うことで、よりスピーディに開発を進めることが出来ます。

しかし、いざ開発が完了して量産フェーズに入る際に、
開発したアプリケーションや実行に必要なパッケージ、OSの設定などの環境を、
いかにして量産機へ展開するかというところで課題を感じておられる方も多いかと思われます。

そこで本記事では、セルフ開発を行った環境を展開するための手法を何点かご紹介いたします。

展開のための手段


開発完了したArmadilloの環境を別のArmadilloへ展開するための手段として、以下のようなものが挙げられます。

①ddコマンドによる複製

Linuxのddコマンドを使用して、Armadilloのストレージ上のデータを全てコピーしてしまい、
それを他のArmadilloへ書き込むというものです。
以下のフォーラムでその方法についてのやりとりが行われています。
https://users.atmark-techno.com/forum/armadillo/3136

ルートファイルシステム上には、sshの秘密鍵や、ハードウェアのUUIDに紐付く設定ファイル等が生成されることがあります。
これをそのまま他のArmadilloのルートファイルシステムへコピーした場合、
鍵の流出やUUIDの不一致による動作の相違が起きる可能性があります。

そのため、この手法でArmadilloのルートファイルしシステムを複製することは、弊社としては推奨いたしません。
ただし、1台のArmadilloにたいしてバックアップや復元を行うにはこの手法は有効です。

②手作業で設定を再現する

Armadilloへのパッケージのインストールや設定、ファイルの追加などを、
個々のArmadilloに対してすべて手作業で実施するというものです。
最もシンプルで愚直な手段です。
量産台数が少なく、かつ設定作業のボリュームがそれほど大きくない場合は、
この手段を用いるのが最も工数が少なくすむかもしれません
しかしながら人的作業である以上、設定ミスなどが発生する可能性について留意する必要があります。
また、量産台数が数百・数千というレベルになると、この手段では大幅な工数を要することとなります。

③設定手順をスクリプト化する

設定手順を自動実行するためのスクリプトを作成し、個々のArmadillo上で実行するというものです。
こちらであれば、スクリプトの動作検証が出来ていれば人的な設定ミスは発生しなくなりますし、
②の手段と比較して大幅な工数削減となります。

④Dockerを使用する

Dockerとはコンテナと呼ばれるOSレベルの仮想化環境を提供するソフトウェアです。
セルフ開発を行う際に予めDockerをインストールしておき、
そのコンテナ上でパッケージのインストールやアプリケーションの開発を行えば、
他のArmadilloでもそのコンテナを取得して環境を再現することが可能となります。
ただしアプリケーション開発にあたってDockerについての知見が必要となるため、わずかに開発難度が上がります。
また①に記載したように、単純に複製すると問題があるものについては、
Dockerコンテナ上に置かずにホスト側に設定する等の工夫が必要です。
この手段を用いる場合、Dockerコンテナによって環境の大部分は簡単に移植できますが、
Dockerのインストールやホストで行わなければいけない設定などは別途個々のArmadilloに対して設定操作が必要になります。
ArmadilloでのDockerを使用した環境構築については、別途ブログにてご紹介する予定です。

⑤x1-debeian-builderでルートファイルシステムアーカイブを構築する

弊社が配布しているx1-debian-builderを使用してルートファイルシステムを構築し、
アーカイブファイルを作成するというものです。
手順としては③に近い形になりますが、ATDEを使用する必要があります。
ルートファイルシステムアーカイブを作成すれば、それを元にインストールディスクが作成できるので、
コンソール操作なしに個々のArmadilloへ環境を展開できます。
またルートファイルシステムアーカイブがあれば、弊社のROMイメージ書き込みサービスを利用いただく事も可能となります
https://armadillo.atmark-techno.com/customize
こちらの具体的な内容については以下をご参照ください
https://users.atmark-techno.com/blog/10899/4053 https://users.atmark-techno.com/blog/7370/2935