製造・量産する

本章では、開発が完了したArmadillo Base OS搭載製品を量産する際に役立つ情報を、量産製造の流れに沿って紹介します。

2022年6月現在、アットマークテクノから出荷されるArmadillo-IoT ゲートウェイ G4に書き込まれるソフトウェアイメージはユーザが指定できず、基本的にその時の最新版の標準イメージが書き込まれます。

[注記]

Armadillo-IoT ゲートウェイ G4は、今後BTOによるユーザーイメージの書き込みなどのカスタマイズに対応する予定です。

アットマークテクノがArmadillo-IoT ゲートウェイ G4を出荷するまでの流れは以下の通りです。

  1. 基板製造
  2. 各種インターフェースの検査
  3. 標準イメージの書き込み
  4. 標準イメージでの起動検査
  5. ケースへの組み込みなどの組立(ケースは製品モデルによっては付属しません)
  6. 同梱品と共に梱包
  7. 出荷

複数台のArmadillo-IoT ゲートウェイ G4の製造を行なうのであれば、基本的にユーザの自社で製造工程を作り量産製造を行なう必要があります。

10.1. ユーザ製品の製造・量産の流れ

アットマークテクノが想定しているユーザの自社での製造工程は大まかに以下の通りです。

  1. ケース付属の場合はケースを開ける(インストールディスクを使用する場合)
  2. インストールディスクやSWUpdateを使用してeMMC内のイメージを任意のものに書き換える
  3. 外部センサなどの付属品をArmadilloに組み付ける
  4. ケースを開けた場合はケースを閉じる
  5. 動作確認等の検査する
  6. 梱包・出荷する

前述の通り2022年6月現在、アットマークテクノから出荷されるArmadillo-IoT ゲートウェイ G4には標準イメージが書き込まれており、開発後のソフトウェアを書き込むサービスは展開しておりません。 そのため、Armadillo-IoT ゲートウェイ G4を用いた製品を開発して製造・量産するためには、ユーザ製品の製造工程でイメージの書き込みを行なう必要があります。

以下ではArmadillo Base OS搭載製品の製造時にイメージの書き込みを行なう手順について説明します。

インストールディスクを用いてイメージ書き込みを行なう場合には「クローンインストールディスクを用いてイメージ書き込みを行なう」を、SWUpdateを用いてイメージ書き込みを行なう場合には「SWUpdateを用いてイメージ書き込みを行なう」を参照してください。

10.2. クローンインストールディスクを用いてイメージ書き込みを行なう

本節では、インストールディスクを用いてユーザ製品の製造工程内でArmadilloにイメージ書き込みを行なう手順について説明します。 インストールディスクについては、「インストールディスクとは」を参照してください。

開発の最終段階である8章量産用インストールディスクの作成の手順で、開発完了後のArmadilloを複製するためのクローンインストールディスクを作成しました。 このインストールディスクを使用することで、開発完了後のArmadilloと同等のイメージを他のArmadilloに書き込むことができます。

10.2.1. インストール時に任意の処理を行なう

量産するArmadilloひとつひとつに重複しない固定IPアドレスを設定したいなど、製造時に個体ごとに異なる設定を行ないたい場合があります。 そのような場合には、インストールディスクにはインストール時に任意のシェルスクリプトを実行する機能を利用することで実現できます。

インストールディスクには任意のサイズのexfatでフォーマットされた、ユーザが自由に利用できる第2パーティションを作ることができます。 作成方法は「開発したシステムをインストールディスクにする」を参照してください。 通常、インストールディスクの中身はWindows PCでは見ることはできませんが、exfatでフォーマットされたパーティションはWindows PCであっても読み書きすることができます。

第2パーティションを持つインストールディスクをPCに接続すると、「 INST_DATA 」というボリューム名でマウントされます。

./images/explorer.jpg

図10.1 Windows PCにインストールディスクを接続する


[注記]

PCにインストールディスクを接続しても INST_DATA がマウントされない場合は、インストールディスクを作る際に第2パーティションを作成していない可能性があります。 インストールディスク作成者に第2パーティションを作成するように問い合わせてください。

[警告]

Windows PCにインストールディスクを接続すると以下のようなメッセージが表示されますが、Windowsで扱えないファイルシステムであるだけでデータは書き込まれているので、フォーマットは行わないでください。

./images/format.jpg

この第2パーティション直下に installer_overrides.sh という名前でシェルスクリプトを配置することで、インストール処理中に任意の処理を行なうことが可能です。 installer_overrides.sh については「インストール時に任意のシェルスクリプトを実行する」を参照してください。

INST_DATA の中にサンプルファイルとして installer_overrides.sh.sampleip_config.txt.sample が配置されています。 特に installer_overrides.sh.sample の内容は、 installer_overrides.sh を作成する際に参考にできますので確認してみてください。

10.2.1.1. 個体ごとに異なる固定IPアドレスを設定する

インストール時に任意のシェルスクリプトを実行できる機能を利用して、複数のArmadilloに対して異なる固定IPアドレスを割り当てる例を紹介します。

INST_DATA 内の installer_overrides.sh.sampleip_config.txt.sample は個体ごとに異なるIPアドレスを割り振る処理を行なうサンプルファイルです。 それぞれ installer_overrides.ship_config.txt にリネームすることで、 ip_config.txt に記載されている条件の通りに個体ごとに異なる固定IPアドレスを設定することができます。 全てをここでは説明しませんので、詳細はそれぞれのファイル内の記述も参照してください。

今回はそれぞれのファイルの内容は変更せず使用します。 サンプルそのままですが、 ip_config.txt の内容を図10.2「ip_config.txtの内容」に示します。

# mandatory first IP to allocate, inclusive
START_IP=10.3.4.2 1

# mandatory last IP to allocate, inclusive
END_IP=10.3.4.249 2

# netmask to use for the IP, default to 24
#NETMASK=24 3

# Gateway to configure
# not set if absent
GATEWAY=10.3.4.1 4

# DNS servers to configure if present, semi-colon separated list
# not set if absent
DNS="1.1.1.1;8.8.8.8" 5

# interface to configure, default to eth0
#IFACE=eth0 6

図10.2 ip_config.txtの内容


1

このインストールディスクで割り振るIPアドレスの範囲の始まりを指定します。

2

このインストールディスクで割り振るIPアドレスの範囲の終わりを指定します。

3

ネットマスクを指定します。指定しない場合は24になります。デフォルトでコメントアウトされています。

4

ゲートウェイアドレスを指定します。

5

DNSアドレスを指定します。セミコロンで区切ることでセカンダリアドレスも指定できます。

6

IPアドレスの設定を行なうインターフェースを指定します。指定しない場合はeth0になります。デフォルトでコメントアウトされています。

[警告]

インストール作業の並列化の為に、複数枚のインストールディスクで固定IPアドレスを割り振る場合は、それぞれのインストールディスクが割り振るIPアドレスの範囲が被らないように ip_config.txt を設定してください。

これらのファイルを配置したインストールディスクでインストールを実行したArmadilloが、正しく設定できていることを確認します。

[armadillo /]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
    inet 10.3.4.2/24 brd 10.3.4.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 ffff::ffff:ffff:ffff:ffff/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

図10.3 IPアドレスの確認


また、サンプルスクリプトをそのまま使用すると、インストールディスクの第2パーティションに allocated_ips.csv というファイルが生成されます。 このファイルには、このインストールディスクを使用してIPアドレスの設定を行なった個体のシリアル番号、MACアドレス、設定したIPアドレスが追記されていきます。

SN,MAC,IP
00C700010009,00:11:22:33:44:55,10.3.4.2

図10.4 allocated_ips.csvの内容


[警告]

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() {
        : "This function is called after aggregating logs for archival"
        local LOG_FILE="$1"

        if [ -n "$USER_MOUNT" ]; then
                        mount /dev/mmcblk1p2 "$USER_MOUNT" 1
                        cp $LOG_FILE $USER_MOUNT/${SN}_install.log 2
                        umount "$USER_MOUNT" 3
        fi
}

図10.5 インストールログを保存する


1

send_log関数中では、SDカードの第2パーティション(/dev/mmcblk1p2)はマウントされていないのでマウントします。

2

ログファイルを <シリアル番号>_install.log というファイル名で第2パーティションにコピーします。

3

第2パーティションをアンマウントします。

これらの変更を行なったインストールディスクでインストールを実行した後に、インストールディスクをPCなどに接続して正しくログを保存できていることを確認してください。 保存したログファイルの中身の例を図10.6「インストールログの中身」に示します。

RESULT:OK
abos-ctrl make-rootfs on Tue Jun 21 17:57:07 JST 2022 4194304 6b8250df711de66b
abos-ctrl make-rootfs on Tue Jun 21 17:57:24 JST 2022 314572800 58a9b6664158943e
firm 8e9d83d1ba4db65d
appfs 5108 1fa2cbaff09c2dbf

図10.6 インストールログの中身


10.2.2. インストールを実行する

インストールディスクを使用してインストールを実行する手順は以下の通りです。

  1. Armadillo-IoT ゲートウェイ G4がケースに組み込まれている場合はケース(上)を取り外します。
  2. Armadillo-IoT ゲートウェイ G4のCON1にインストールディスクイメージが書き込まれたmicroSDカードを挿入します
  3. JP1をショート(SDブートに設定)してから電源を投入します。

    • 電源が入ると、LED3及びLED4が点灯します。
  4. イメージサイズなどによって前後しますが、8章量産用インストールディスクの作成で作成したインストールディスクでは、1分程度でインストール処理が完了しました。

    • インストールが完了するとLED3及びLED4が消灯します。
    • コンソールを接続している場合は、 reboot: Power down と表示されます。
  5. ケース付属の場合は、ケース(上)を取り付けます。

Armadillo-IoT ゲートウェイ G4のケースの取り外し方及び、取り付け方はArmadillo-IoT ゲートウェイ G4 製品マニュアルの「オプションケース(金属製)」を参照してください。

以上でインストールディスクを使用したArmadilloの複製が完了しました。 上記手順を繰り返して、同じイメージが書き込まれたArmadilloを量産することができます。

10.3. SWUpdateを用いてイメージ書き込みを行なう

本節では、SWUpdateを用いてユーザ製品の製造工程内でArmadilloにイメージ書き込みを行なう手順について説明します。 SWUpdateについては、「SWUイメージとは」を参照してください。

開発の最終段階である9章量産用SWUイメージの作成の手順で、開発完了後のArmadilloを複製するためのSWUイメージを作成しました。 このSWUイメージを使用することで、開発完了後のArmadilloと同等のイメージを他のArmadilloに書き込むことができます。

10.3.1. SWUpdateの処理内容を変更したい場合

SWUpdateは基本的にSWUイメージ内に全てのファイルが組み込まれており、後から処理内容やイメージを変更したい場合にはSWUイメージを作り直す必要があります。

SWUイメージの作成方法については9章量産用SWUイメージの作成を参照してください。

10.3.2. インストールを実行する

SWUpdateを実行する手順は以下の通りです。

  1. Armadillo-IoT ゲートウェイ G4のCON4にSWUイメージが書き込まれたUSBメモリを挿入します
  2. 電源を投入します。

    • 電源が入ると、LED3が点灯します。
  3. SWUpdateが開始されると、進捗によってLED3の状態が変化します。表9.1「SWUpdateの進捗とLED3の状態の対応表」を参照してください。
  4. SWUpdateで行なう処理や、各種ファイルサイズなどによって前後しますが、9章量産用SWUイメージの作成で作成したSWUイメージでは、2分程度でSWUpdate処理が完了しました。

    • SWUpdateが完了するとLED3が消灯します。
    • コンソールを接続している場合は、 reboot: Power down と表示されます。

以上でSWUpdateを使用したArmadilloの複製が完了しました。 上記手順を繰り返して、同じイメージが書き込まれたArmadilloを量産することができます。