量産する

本章では Armadillo を組み込んだ最終製品をお客様が製造・量産するうえで、必要となる情報や作業について記載します。

5.1. 概略

量産の進め方の概略図を図5.1「Armadillo 量産時の概略図」に示します。 お客様の製品仕様や製造工程の要件によってはこの例とは違った工程順となる場合や、工程の追加・削除がある可能性があります。

images/armadillo-manufacturing-flow.png

図5.1 Armadillo 量産時の概略図


5.1.1. リードタイムと在庫

量産モデルを発注後、お客様に納品されるまでにリードタイムが発生します。 開発セットや少量の量産モデル購入の場合、アットマークテクノや代理店在庫によって、短期間で納品できることもあります。 しかし、まとまった数量の量産モデルの場合、納品までにお時間をいただくことがあります。 新規に製品を量産・出荷する場合はリードタイムを考慮したスケジューリングをお願いします。 また、リピート製造をする場合でも、欠品を起こさないよう適切な在庫の確保をお願いいたします。

リードタイムは状況・タイミングによって異なりますので、都度、弊社営業、ご利用の販売代理店にお問い合わせください。

5.1.2. Armadillo 納品後の製造・量産作業

お客様が Armadillo を納品後に次に示すようなキッティング作業、組み立て、検査を実施し出荷を行います。

  • ソフトウェア書き込み

    • Armadillo Base OS やアプリケーションコンテナイメージの書き込み
    • 設定ファイルの書き込み
  • 別部品の組み立て

    • SD カード/ SIM カード/ RTC バックアップ電池等の接続
    • 拡張基板接続やセンサー・外部機器の接続
    • お客様専用筐体への組み込み
  • 検査

    • Armadillo の受け入れ検査
    • 組み立て後の通電電検・機能検査
    • 目視検査
  • 梱包作業
  • 出荷作業

有償の BTO サービスを利用することで、これらの作業の一部をアットマークテクノへ委託・実施済みの状態で Armadillo を納品することも可能です。 費用はいただきますがお客様による工程立ち上げ、場所の確保、作業者の教育、品質管理等のトータルコストを考えると委託した方が安く済むケースが多いです。

また、 BTO サービスではお受けできないようなキッティング、検査、作業については、実施可能な業者をご紹介する等、個別の対応をすることで解決できる場合もございます。 詳しくは弊社担当の営業、またはご利用の販売代理店にご相談ください。

5.2. BTO サービスを使わない場合と使う場合の違い

images/bto-scope.png

図5.2 BTO サービスで対応する範囲


5.2.1. BTO サービスを利用しない(標準ラインアップ品)

有償の量産サービスを利用しない場合、標準ラインアップ仕様での納品となります。 大きく分けて試作開発用途で使う「開発セット」と量産向けの「量産モデル」の 2 種類があります。 量産用途では「量産モデル」をご利用ください。

「量産モデル」には AC アダプタ等のオプション品が付属されておりませんので、内容物を確認の上、発注をお願いいたします。 量産モデルのラインアップや付属品については、各製品の製品マニュアルを参照してください。

設計開発時には、開発に必要なものを一式含んだ「開発セット」、量産時には、必要最小限のセット内容に絞った「量産用」もしくは「量産ボード」をご購入ください。 「量産用」はケース有、「量産ボード」はケース無となります。

5.2.1.1. 標準ラインアップ品に書き込まれているソフトウェア

標準ラインアップ品に書き込まれるソフトウェアイメージ(Armadillo Base OS)は、アットマークテクノで公開している標準イメージとなります。 また、ソフトウェアバージョンは指定することができず、ランニングチェンジで随時最新版を適用していきます。 このため、納品後の Armadillo 個体では、開発段階で評価した Armadillo Base OS と異なるバージョンが書き込まれている可能性があります。

また、アプリケーションコンテナについては何も書き込まれていない状態となります。

納品後、お客様の量産工程でソフトウェアの書き込み作業が必要となります。詳しくは「量産時のイメージ書き込み手法」をご確認ください。

5.2.2. BTO サービスを利用する

BTO サービスは、セミオーダー式メニューから選択して Armadillo の量産品を一括手配いただける有償サービスです。 標準ラインアップ品の仕様をベースとして、搭載するモジュールの種類やケース、 AC アダプタの有無、お客様支給品の SD カードや SIM カードの接続、お客様ご指定のソフトウェアイメージ書き込みなど、メニュー内から指定可能なキッティング項目を選択・指定することが可能です。

販売代理店またはアットマークテクノの窓口からお申し込みいただけます。

製品ごとに、対応できる作業とできない作業がございます。また、販売直後の製品の場合など BTO サービスに未対応である場合もあります。 詳しくは Armadilloサイトの BTO サービス をご確認ください。

5.3. 量産時のイメージ書き込み手法

量産時に必要な手順は最終製品によって異なりますが、開発したソフトウェアをArmadilloに書き込む手順は必ず実施することになります。 Armadillo Base OS 搭載製品において、量産時に任意のソフトウェアを書き込む際には、以下の2つの手法のどちらかを用いると実現できます。

  • インストールディスクを用いてソフトウェアを書き込む
  • SWUpdateを用いてソフトウェアを書き込む

ただし、SWUpdateは運用中のArmadilloのアップデート機能であり、量産時のイメージ書き込みは本来の用途でないため、基本的にはイメージ書き込みに特化しているインストールディスクを用いた方法を選択してください。 そのため、インストールディスクイメージの作成、書き込み方法について「開発したシステムをインストールディスクにする」に記します。

5.4. 開発したシステムをインストールディスクにする

ATDE と Visual Studio Code (以降 VS Code と記載します) を使用して、開発したシステムのインストールディスクイメージを生成します。 「VS Code のセットアップ」 を参考に、 ATDE に VS Code 開発用エクステンションをインストールしてください。 VS Code を使用してインストールディスクを生成する場合は以下の手順になります。

  • 仮想環境のセットアップ
  • VS Code のセットアップ
  • VS Code を使用した初期設定用 SWU の生成
  • 初期設定用 SWU を ABOS Web からインストール
  • VS Code を使用したインストールディスク作成用 SWU の生成
  • Armadillo に USBメモリを挿入
  • インストールディスク作成用 SWU を ABOS Web からインストール
  • USBメモリ上にインストールディスクイメージを生成
[警告]

この機能を使用するには、以下に示すバージョンのソフトウェアが必要です。

  • ABOSDE 1.6.0 以上
  • mkswu 5.3 以上
  • abos-base 2.3 以上
[ティップ]

Visual Studio Code および VS Code は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。

5.4.1. 仮想環境のセットアップ

作業用 PC をセットアップします。 アットマークテクノでは、製品のソフトウェア開発や動作確認を簡単に行うために、Oracle VM VirtualBox 仮想マシンのデータイメージを提供しています。 このデータイメージを ATDE(Atmark Techno Development Environment) と呼びます。 ATDE の起動には仮想化ソフトウェアである VirtualBox を使用します。

[ティップ]

Oracle VM VirtualBoxには以下の特徴があります。

  • GPL v2(General Public License version 2)で提供されている [1]
  • VMware形式の仮想ディスク(.vmdk)ファイルに対応している

5.4.1.1. VirtualBox のインストール

ATDE を使用するために、作業用 PC に VirtualBox をインストールします。 VirtualBox の Web ページ(https://www.virtualbox.org/) を参照してインストールしてください。

また、ホスト OS が Linux の場合、デフォルトでは VirtualBox で USB デバイスを使用することができません。 ホスト OS(Linux)で以下のコマンドを実行後、ホスト OS を再起動してください。

[PC ~]$ sudo usermod -a -G vboxusers $USER

ホスト OS が Windows の場合はこの操作は必要ありません。

5.4.1.2. ATDE のアーカイブを取得

ATDE のアーカイブ(.ova ファイル)を Armadillo サイト(https://armadillo.atmark-techno.com/resources/software/atde/atde-v9)から ダウンロードします。

[注記]

アットマークテクノ製品の種類ごとに対応している ATDE のバージョンが異なります。 本製品に対応している ATDE のバージョンは以下のとおりです。

VirtualBox
ATDE9 v20240925 以降
VMware
ATDE9 v20230123 から ATDE9 v20240826

ATDE9 は Debian GNU/Linux 11 (コードネーム bullseye) をベースに、Armadillo-640 のソフトウェア開発を行うために必要なクロス開発ツールや、Armadillo-640 の動作確認を行うために必要なツールが事前にインストールされています。

[警告]

作業用 PC の動作環境(ハードウェア、VirtualBox、ATDE の対応アーキテクチャなど)により、 ATDE が正常に動作しない可能性があります。 VirtualBox の Web ページ(https://www.virtualbox.org/) から、 使用している VirtualBox のドキュメントなどを参照して動作環境を確認してください。

5.4.1.3. ATDE のインポート

  1. VirtualBox を起動し、[ファイル]-[仮想アプライアンスのインポート]を選択します。
  2. [ソース]の項目で、ダウンロードした ATDE のアーカイブ(.ova ファイル)を選択します。
  3. [設定]の項目で、[ハードドライブをVDIとしてインポート]のチェックを外します。
  4. [完了]をクリックします。インポートの処理が完了するまで数分程要します。
  5. インポートの処理が完了したら、ホスト OS の環境に合わせた設定に更新するため 仮想マシンを選択して[設定]をクリックした後に[OK]をクリックします。
[ティップ]

ATDE に割り当てるメモリおよびプロセッサ数を増やすことで、 ATDE をより快適に使用することができます。 仮想マシンのハードウェア設定の変更方法については、 VirtualBox の Web ページ(https://www.virtualbox.org/) から、 VirtualBox のドキュメントなどを参照してください。

5.4.1.4. ATDE の起動

  1. 仮想マシンを選択して[起動]をクリックしてください。
  2. ATDE のログイン画面が表示されます。

ATDE にログイン可能なユーザーを、表5.1「ユーザー名とパスワード」に示します [2]

表5.1 ユーザー名とパスワード

ユーザー名パスワード権限

atmark

atmark

一般ユーザー

root

root

特権ユーザー


5.4.1.5. コマンドライン端末(GNOME端末)の起動

Armadillo を利用した開発では、 CUI (Character-based User Interface)環境を提供するコマンドライン端末を通じて、 Armadillo や ATDE に対して操作を行う場面が多々あります。 コマンドライン端末にはいくつかの種類がありますが、ここではGNOMEデスクトップ環境に標準インストールされているGNOME端末を起動します。

GNOME端末を起動するには、図5.3「GNOME端末の起動」のようにデスクトップ左上のアプリケーションの「ユーティリティ」カテゴリから「端末」を選択してください。

images/common-images/open-gnome_terminal-on-atde/gnome_terminal_menu.png

図5.3 GNOME端末の起動


図5.4「GNOME端末のウィンドウ」のようにウィンドウが開きます。

images/common-images/open-gnome_terminal-on-atde/gnome_terminal_open.png

図5.4 GNOME端末のウィンドウ


5.4.1.6. ソフトウェアのアップデート

コマンドライン端末から次の操作を行い、ソフトウェアを最新版へアップデートしてください。

[ATDE ~]$ sudo apt update
[ATDE ~]$ sudo apt upgrade

図5.5 ソフトウェアをアップデートする


5.4.1.7. 取り外し可能デバイスの使用

VirtualBoxは、ゲストOS (ATDE)による取り外し可能デバイス(USBデバイスやDVDなど)の使用をサポートしています。 デバイスによっては、ホストOS (VirtualBoxを起動しているOS)と ATDE で同時に使用することができません。 そのようなデバイスを ATDE で使用するためには、ATDE にデバイスを接続する 図5.6「ATDE にデバイスを接続する」 の操作が必要になります。

images/atde-images/atde9-vb-device-usb.png

図5.6 ATDE にデバイスを接続する


5.4.1.8. VirtualBox Guest Additions の再インストール

ATDE は VirtualBox 仮想マシン用ソフトである VirtualBox Guest Additions があらかじめインストールされた状態で配布されています。

Guest Additions のバージョンは VirtualBox 自体のバージョンと連動しているため、 お使いの VirtualBox のバージョンと ATDE にインストール済みの Guest Additions のバージョンが異なる場合があります。

VirtualBox と Guest Additions のバージョンが異なることによって問題が起こる可能性は低いですが、 これに起因すると思われる不具合(ATDEの画面・共有フォルダー・クリップボード等の不調)が発生した場合は、 以下の手順を参考に Guest Additions を再インストールしてください。 (実行前に ATDE のスナップショットを作成しておくことを推奨します)

  1. ATDE を起動後、上部バーの[ツール]-[Guest Additions CD イメージの挿入]を選択してください。
  2. お使いの VirtualBox と同じバージョンの VBox_GAs_[VERSION] が「ファイル」上に表示されます。
  3. VBox_GAs_[VERSION] をマウントするために、「ファイル」から VBox_GAs_[VERSION] を押下してください。
  4. インストールする前に、以下のコマンドで既にインストール済みの Guest Additions をアンインストールします。

    sudo /opt/VBoxGuestAdditions-[VERSION]/uninstall.sh
  5. 以下のコマンドでお使いの VirtualBox のバージョンに合った Guest Additions がインストールされます。

    cd /media/cdrom0
    sudo sh ./autorun.sh

5.4.1.9. 共有フォルダーの作成

ホスト OS と ATDE 間でファイルを受け渡す手段として、共有フォルダーがあると大変便利です。 ここでは、ホスト OS と ATDE 間の共有フォルダを作成する手順を紹介しますが、 不要な方はこの手順をスキップしてください。

  1. VirtualBox の上部バーから[デバイス]-[共有フォルダー]-[共有フォルダー設定]を選択します。(図5.7「共有フォルダー設定を開く」
  2. 図5.8「共有フォルダー設定」 の赤枠で示したアイコンをクリックします。
  3. 図5.9「共有フォルダーの追加」 のように、[フォルダーのパス]-[その他]を選択して、共有フォルダーに設定したいホストOS上のフォルダーを選択します。
  4. 図5.9「共有フォルダーの追加」 のように、[自動マウント]と[永続化する]にチェックを入れます。
  5. [OK]をクリックして共有フォルダーを追加します。
images/atde-images/atde9-vb-share-folder-bar.png

図5.7 共有フォルダー設定を開く


images/atde-images/atde9-vb-share-folder-setting.png

図5.8 共有フォルダー設定


images/atde-images/atde9-vb-share-folder-add.png

図5.9 共有フォルダーの追加


images/atde-images/atde9-vb-share-folder-file.png

図5.10 「ファイル」に表示される共有フォルダー


追加した共有フォルダーは、図5.10「「ファイル」に表示される共有フォルダー」のように「ファイル」からアクセスするか、 または /media/sf_share(共有フォルダー名) からアクセスできます。 ( share というフォルダー名で作成すると、ATDE上では sf_share として表示されます。)

5.4.2. VS Code のセットアップ

ATDE に VS Code 及び、開発用エクステンションとクロスコンパイル用ライブラリをインストールしてください。

以下の手順は全てATDE上で実施します。

5.4.2.1. ソフトウェアのアップデート

ATDE のバージョン v20230123 以上には、 VS Code がインストール済みのため新規にインストールする必要はありませんが、 使用する前には 図5.5「ソフトウェアをアップデートする」 を参照して最新版へのアップデートを行ってください。

VS Code を起動するには code コマンドを実行します。

[ATDE ~]$ code

図5.11 VS Code を起動する


[ティップ]

VS Code を起動すると、日本語化エクステンションのインストールを提案してくることがあります。 その時に表示されるダイアログに従ってインストールを行うと VS Code を日本語化できます。

5.4.2.2. VS Code に開発用エクステンションをインストールする

VS Code 上でアプリケーションを開発するためのエクステンションをインストールします。

エクステンションはマーケットプレイスからインストールすることができます。 VS Code を起動し、左サイドバーのエクステンションを選択して、検索フォームに「abos」と入力してください。

images/common-images/vscode_install_extension.png

図5.12 VS Code に開発用エクステンションをインストールする


表示された「Armadillo Base OS Development Environment」の 「Install」ボタンを押すとインストールは完了します。

5.4.3. VS Code を使用した初期設定用 SWU の生成

initial_setup.swu はログインパスワードやユーザー固有の証明書などの 初期設定を Armadillo にインストールするためのファイルです。 initial_setup.swu でインストールされるユーザー固有の証明書がない場合、 ユーザーが開発したアプリケーションをインストール、またはアップデートすることができません。 このため、開発開始時に initial_setup.swu のインストールを行う必要があります。

図5.13「initial_setup.swu を作成する」 に示すように、VS Code の左ペインの [COMMON PROJECT COMMAND] から [Generate Initial Setup Swu] を実行してください。

images/abos-images/armadillo_setup_vscode_initial_setup.png

図5.13 initial_setup.swu を作成する


初回実行時には各種設定の入力を求められます。 入力する設定の内容を 図5.14「initial_setup.swu 初回生成時の各種設定」 に示します。

Executing task: ./scripts/generate_initial_setup_swu.sh

mkdir: ディレクトリ '/home/atmark/mkswu' を作成しました
設定ファイルを更新しました:/home/atmark/mkswu/mkswu.conf
証明書のコモンネーム(一般名)を入力してください: [COMMON_NAME] 1
証明書の鍵のパスワードを入力ください(4-1024文字)2
証明書の鍵のパスワード(確認):
Generating an EC private key
writing new private key to '/home/atmark/mkswu/swupdate.key.tmp'
 -----
アップデートイメージを暗号化しますか? (N/y) 3
アットマークテクノが作成したイメージをインストール可能にしますか? (Y/n) 4
rootパスワード: 5
root のパスワード(確認):
atmarkユーザのパスワード(空の場合はアカウントをロックします): 6
atmark のパスワード(確認):
BaseOS/プリインストールコンテナを armadillo.atmark-techno.com サーバーから自動アップデートしますか? (N/y) 7
abos-web のパスワードを設定してください。
abos-web のパスワード(空の場合はサービスを無効にします): 8
abos-web のパスワード(確認):
/home/atmark/mkswu/initial_setup.swu を作成しました。

"/home/atmark/mkswu/initial_setup.swu" をそのまま使うことができますが、
モジュールを追加してイメージを再構築する場合は次のコマンドで作成してください:
  mkswu "/home/atmark/mkswu/initial_setup.desc" [他の.descファイル]

インストール後は、このディレクトリを削除しないように注意してください。
鍵を失うと新たなアップデートはデバイスの /etc/swupdate.pem
を修正しないとインストールできなくなります。
 *  Terminal will be reused by tasks, press any key to close it.

[ATDE ~]$ ls ~/mkswu
initial_setup.desc  initial_setup.swu  mkswu.conf
swupdate.aes-key    swupdate.key       swupdate.pem 9

図5.14 initial_setup.swu 初回生成時の各種設定


1

COMMON_NAME には証明鍵の「common name」として会社や製品が分かるような任意の名称を入力してください。

2

証明鍵を保護するパスフレーズを2回入力します。

3

SWUイメージ自体を暗号化する場合に「y」を入力します。

4

アットマークテクノのアップデートをインストールしない場合は「n」を入力します。

5

rootのパスワードを2回入力します。 使用するパスワードは以下のルールに従ってください。

  • 辞書に載っている言葉を使用しない
  • 単調な文字列を使用しない
  • 8文字以上のパスワード長にする

6

atmarkユーザーのパスワードを2回入力します。 何も入力しない場合はユーザーをロックします。 使用できるパスワードの制限はrootと同様です。

7

自動アップデートを無効のままで進みます。ここで「y」を入れると、定期的に アットマークテクノのサーバーからアップデートの有無を確認し、自動的にインストールします。

8

abos-webを使用する場合はパスワードを設定してください。 ここで設定したパスワードは abos-web から変更できます。 使用できるパスワードの制限はrootと同様です。

9

作成したファイルを確認します。「swupdate.aes-key」は暗号化の場合にのみ作成されます。

ファイルは ~/mkswu/initial_setup.swu に保存されます。 この SWU イメージを 「初期設定用 SWU を ABOS Web からインストール」 を参照して Armadillo へインストールしてください。

インストール後に ~/mkswu ディレクトリ以下にある mkswu.conf と、鍵ファイルの swupdate.* をなくさないようにしてください。

5.4.4. 初期設定用 SWU を ABOS Web からインストール

ABOS Web を使用して、PC 上の SWU イメージや HTTP サーバー上の SWU イメージを Armadillo にインストールすることができます。 生成した initial_setup.swu をインストールします。

ABOS Web のトップページから、"SWU インストール"をクリックすると、図5.15「SWU インストール」の画面に遷移します。

images/abos-images/abos-web/swu-select_image.png

図5.15 SWU インストール


この画面では、PC 上の SWU イメージファイルまたは、HTTP サーバー上の SWU イメージファイルの URL を指定して、Armadillo にインストールすることができます。 Armadillo のソフトウェアのアップデート用に最初に行う設定で作成する initial_setup.swu が、まだ Armadillo にインストールされていなければ、"mkswu --init で作成した initial_setup.swu をインストールしてください。" というメッセージを画面上部に表示します。

生成した initial_setup.swu を選択します。 実行中のログが ABOS Web 上に表示されます。インストールに成功したら完了です。

5.4.5. VS Code を使用したインストールディスク作成用 SWU の生成

VS Code の左ペインの [COMMON PROJECT COMMAND] から [Generate Installer On USB Swu] を実行します。

images/common-images/abosde_common_project_command.png

図5.16 make-installer.swu を作成する


次に、対象製品を選択します。

images/common-images/abosde_common_project_command_select_product.png

図5.17 対象製品を選択する


無事に生成された場合、コンソールに以下のログが出力されます。

/home/atmark/.vscode/extensions/atmark-techno.armadillo-base-os-development-environment-1.6.0/shell/desc/make_installer_usb.desc のバージョンを 1 から 2 に変更しました。
Enter pass phrase for /home/atmark/mkswu/swupdate.key: 1
/home/atmark/mkswu/make_installer_usb.swu を作成しました。
To create Armadillo installer on USB memory install /home/atmark/mkswu/make_installer_usb.swu in Armadillo
 *  Terminal will be reused by tasks, press any key to close it.

図5.18 make-installer.swu 生成時のログ


1

パスワードの入力を求められますので、初期化用 swu を生成したときと同じパスワードを入力します

/home/atmark/mkswu ディレクトリ内に make-installer.swu が作成されます。

[注記]

セキュリティーの観点から、インストールディスクによるインストール実行時に以下のファイルを再生成しております:

  • /etc/machine-id (ランダムな個体識別番号)
  • /etc/abos_web/tls (ABOS-Web の https 鍵)
  • /etc/ssh/ssh_host_*key* (ssh サーバーの鍵。なければ生成しません)ABOS 3.19.1-at.3 以降
[警告]

Node-RED ではポート番号 1880 を使用して、ネットワーク上からアクセスして開発します。 しかし、量産時にポートを開けておくと外部からアクセスできてしまう危険性があります。 そのため、make-installer.swu を使用してインストールディスクイメージを生成する場合は、このポートを閉じます。

5.4.5.1. Armadillo に USBメモリを挿入

Armadillo に電源を投入し、インストールディスクを保存するために USB メモリを挿入してください。

[警告]

USB メモリは vfat もしくは ext4 形式でフォーマットし、空き容量が 10GB 以上のものを使用してください。 Armadillo-640 への USB メモリのマウントは不要です。

インストールディスクイメージは installer.img という名前で保存します。すでに同名のファイルが存在する場合は上書きされます。

5.4.5.2. インストールディスク作成用 SWU を ABOS Web からインストール

「初期設定用 SWU を ABOS Web からインストール」 で実行したように、今度は生成した make-installer.swu をインストールします。

ABOS Web のトップページから、"SWU インストール"をクリックすると、図5.19「SWU インストール」の画面に遷移します。 実行時は ABOS Web 上に図5.20「make-installer.swu インストール時のログ」ようなログが表示されます。

images/abos-images/abos-web/swu-select_image.png

図5.19 SWU インストール


生成した make-installer.swu を選択します。

make_installer_usb.swu をインストールします。
SWU アップロード完了

SWUpdate v2023.05_git20231025-r0

Licensed under GPLv2. See source distribution for detailed copyright notices.

[INFO ] : SWUPDATE running : [main] : Running on iot-a6e Revision at1

[INFO ] : SWUPDATE started : Software Update started !

[INFO ] : SWUPDATE running : [install_single_image] : Installing pre_script

[INFO ] : SWUPDATE running : [read_lines_notify] : No base os update: copying current os over

[INFO ] : SWUPDATE running : [read_lines_notify] : Waiting for btrfs to flush deleted subvolumes

[INFO ] : SWUPDATE running : [install_single_image] : Installing Copying installer to USB device

[INFO ] : SWUPDATE running : [install_single_image] : Installing swdesc_command_nochroot 'podman kill -a'

[INFO ] : SWUPDATE running : [install_single_image] : Installing swdesc_command_nochroot --stdout-info 'abos-ctrl make-installer --noprompt --output /target/mnt/installer.img'

[INFO ] : SWUPDATE running : [read_lines_notify] : Using installer image on image file.

[INFO ] : SWUPDATE running : [read_lines_notify] : Would you like to create a windows partition?

[INFO ] : SWUPDATE running : [read_lines_notify] : That partition would only be used for customization script at the end of

[INFO ] : SWUPDATE running : [read_lines_notify] : install, leave at 0 to skip creating it.

[INFO ] : SWUPDATE running : [read_lines_notify] : Custom partition size (MB, [0] or 16 - 364): 0

[INFO ] : SWUPDATE running : [read_lines_notify] : Checking and growing installer main partition

[INFO ] : SWUPDATE running : [read_lines_notify] : Resize device id 1 (/dev/loop0p1) from 513.00MiB to max

[INFO ] : SWUPDATE running : [read_lines_notify] : Copying boot image

[INFO ] : SWUPDATE running : [read_lines_notify] : Copying rootfs

[INFO ] : SWUPDATE running : [read_lines_notify] : Copying appfs

[INFO ] : SWUPDATE running : [read_lines_notify] : At subvol app/snapshots/volumes

[INFO ] : SWUPDATE running : [read_lines_notify] : At subvol app/snapshots/boot_volumes

[INFO ] : SWUPDATE running : [read_lines_notify] : At subvol app/snapshots/boot_containers_storage

[INFO ] : SWUPDATE running : [read_lines_notify] : Trying to shrink the installer partition...

[INFO ] : SWUPDATE running : [read_lines_notify] : Shrinking the installer partition...

[INFO ] : SWUPDATE running : [read_lines_notify] : Cleaning up and syncing changes to disk...

[INFO ] : SWUPDATE running : [read_lines_notify] : Installer updated successfully!

[INFO ] : SWUPDATE running : [read_lines_notify] : -rwxr-xr-x 1 root root 687.0M Jan 23 15:12 /target/mnt/installer.img

[INFO ] : SWUPDATE running : [install_single_image] : Installing post_script

[INFO ] : SWUPDATE running : [read_lines_notify] : Removing unused containers

[INFO ] : SWUPDATE running : [read_lines_notify] : Command 'command podman rm -a -f' output:

[INFO ] : SWUPDATE running : [read_lines_notify] : 9f4f64ec1926d17e75de4060dac4a448e66ca3d9535c408f632e4e2de4bafa4f

[INFO ] : SWUPDATE running : Installation in progress

[INFO ] : SWUPDATE successful ! SWUPDATE successful !

[INFO ] : No SWUPDATE running : Waiting for requests...

swupdate exited

インストールが成功しました。

図5.20 make-installer.swu インストール時のログ


完了後、USBメモリを抜いてください。 もし、エラーが出た場合はArmadillo-640の電源を再投入してやり直してください。

5.4.6. USBメモリ上にインストールディスクイメージを生成

無事に生成が完了した場合、USBメモリ上に installer.img が保存されています。 この installer.img を microSD カードに書き込むことでインストールディスクを作成することができます。動作確認については「インストールディスクの動作確認を行う」をご参照ください。 これで、VS Code を使用してインストールディスクを生成する方法については終了です。

5.5. インストールディスクの動作確認を行う

生成したインストールディスクの動作確認を実施するには、開発に使用した Armadillo 以外の個体が必要になります。 また、インストール先の Armadillo の eMMC 内のデータは上書きされて消えるため、必要なデータは予めバックアップを取っておいてください。

開発したシステムをインストールディスクにする手順を無事に終了している場合、USB メモリ中に installer.img が存在します。 microSDカードに`installer.img` を書き込んで、インストールディスクを作成します。

5.5.1. インストールディスクを作成する

5.5.1.1. Windows PC 上でインストールディスクを作成する

Windows PCの場合、[Win32 Disk Imager Renewal] を使用してimgファイルをmicroSDカードに書き込みます。 [Win32 Disk Imager Renewal] は以下からダウンロードしてください。

最新版のEXEファイルをダウンロードして起動します。以下にimgファイルの書き込み手順について示します。

  1. [image File] に installer.img ファイルを指定します。
  2. [Device] には microSD が挿入されているスロットを指定します。

    images/node-red/common-images/setup_win_write.png

    図5.21 Win32 Disk Imager Renewal 設定画面


  3. [write] ボタンを押すと警告が出ますので、問題なければ[はい]を選択して書き込みます。
  4. 書き込み終了ダイアログが表示されたらインストールディスクの作成は完了です。

5.5.1.2. Linux PC 上でインストールディスクを作成する

Linux PCの場合、以下のようにmicroSDカードに書き込むことができます。 sd[X] の [X] は microSD のドライブを指定してください。

[PC ~]$ sudo dd if=installer.img of=/dev/sd[X] bs=1M oflag=direct status=progress

図5.22 インストールディスクを作成する


書き込みが終了したらインストールディスクの作成は完了です。

5.5.2. インストールディスクを使用する

  1. インストールディスクを Armadillo-640 の microSD に挿入します。microSD の挿抜方法は「microSDカードの挿抜方法」を参照してください。
  2. Armadillo-640 の JP1 と JP2 を共にジャンパーでショート(SD ブートに設定)します。JP1 と JP2 の場所については「インターフェースレイアウト」を参照してください。
  3. Armadillo-640 の AC アダプターをコンセントに繋ぎ電源を投入すると、20分程度でインストールが完了します。
  4. インストールが完了すると電源が切れて、全ての LED が消灯します。
  5. Armadillo-640 の AC アダプターをコンセントから抜き、続いてジャンパーと microSD カードを外してください。
  6. 10 秒以上待ってから再び電源を投入すると、Armadillo-640 が起動します。

5.6. SDカードを使用する

以下の説明では、共通の操作が可能な場合に、 microSD/microSDHC/microSDXC カードを microSD カードと表記します。

5.6.1. ハードウェア仕様

Armadillo-640 のSDホストは、i.MX6ULL の uSDHC (Ultra Secured Digital Host Controller) を利用しています。

Armadillo-640 では、オンボードmicroSDコネクタ (CON1) がuSDHC2を利用しています。

機能
  • カードタイプ: microSD/microSDHC/microSDXC/microSDIO
  • バス幅: 1bit or 4bit
  • スピードモード: Default Speed (24.75MHz), High Speed (49.5MHz)
  • カードディテクトサポート
インターフェース仕様

CON1はハイスピード(最大クロック周波数: 49.5MHz)に対応したSDインターフェースです。 信号線はi.MX6ULLのSDホストコントローラ(uSDHC2)に接続されています。

SDカードに供給される電源はi.MX6ULLのNAND_ALEピン(GPIO4_IO10)で制御が可能です。 Highレベル出力で電源が供給され、Lowレベル出力で電源が切断されます。

[警告]

CON1は活線挿抜に対応していません。microSDカードの挿抜は、電源を切断してから行ってください。

[警告]

SDコントローラ(uSDHC2)はCON1、CON9、CON11で利用可能ですが、排他利用となります。

表5.2 CON1 信号配列

ピン番号 ピン名 I/O 説明

1

DAT2

In/Out

SDデータバス(bit2)、i.MX6ULLのNAND_DATA02ピンに接続

2

CD/DAT3

In/Out

SDデータバス(bit3)、i.MX6ULLのNAND_DATA03ピンに接続

3

CMD

In/Out

SDコマンド/レスポンス、i.MX6ULLのNAND_WE_Bピンに接続

4

VDD

Power

電源(VCC_3.3V)

5

CLK

Out

SDクロック、i.MX6ULLのNAND_RE_Bピンに接続

6

VSS

Power

電源(GND)

7

DAT0

In/Out

SDデータバス(bit0)、i.MX6ULLのNAND_DATA00ピンに接続

8

DAT1

In/Out

SDデータバス(bit1)、i.MX6ULLのNAND_DATA01ピンに接続


5.6.2. microSDカードの挿抜方法

  1. 上からカバーを軽く押し、約1.2mmスライドさせて、ロックを解除します。

    images/sd-1.png

    図5.23 カバーのロックを解除する


  2. カバーを開けます。

    images/sd-2.png

    図5.24 カバーを開ける


    [警告]

    カバーは過度な力で回転させたり、回転方向以外の方向へ力を加えると、 破損の原因となりますので、ご注意ください。

  3. 任意の角度までトレイを開いた状態で、microSDカードを挿抜します。

    images/sd-4.png

    図5.25 microSDカードの挿抜


    [ティップ]

    microSDカード挿入方向については、カバーに刻印されているカードマークを目安にしてください。

    images/sd-3.png

    図5.26 カードマークの確認


  4. カバーを閉めます。

    images/sd-5.png

    図5.27 カバーを閉める


  5. 上からカバーを軽く押し、約1.2mmスライドさせて、ロックします。

    images/sd-6.png

    図5.28 カバーをロックする


[ティップ]

microSDカード装着後のカードの抜き取り手順は挿入時と同じです。

5.7. アップデート用 SWU の生成手法

開発終了後の Node-RED について、フローの修正などが必要な場合、修正したフローを製品に適用する必要があります。 その方法として SWUpdate を推奨します。SWUpdate を用いると必要なソフトウェアのみをアップデートすることが可能です。 以下に SWUpdate で使用する SWU の生成方法について記します。

  • 更新用フローの取得
  • ATDE 上でアップデート用 SWU の生成
  • アップデート用 SWU のインストール
[警告]

この機能を使用するには、「量産時のイメージ書き込み手法」 の内容を完了している必要があります。

5.7.1. 更新用フローの取得

Node-RED からフローを取得します。 メニューから [書き出し] を選択します。

images/node-red/common-images/get_flows.png

図5.29 フローの書き出し


書き出し対象が [現在のタブ] の場合、クリップボードに含まれるノードの一覧が表示されます。 問題なければ右下にある[ダウンロード]ボタンを押してダウンロードします。

images/node-red/common-images/download_flows.png

図5.30 フローのダウンロード


flows.json がダウンロードされたことを確認してください。

5.7.2. ATDE 上でアップデート用 SWU を生成

ATDE を起動します。以下のディレクトリに SWU 生成に必要な desc ファイルが置かれたディレクトリをコピーします。コピーしたディレクトリにダウンロードしたフロー flows.json を配置します。

[ATDE ~]$ cp -r /usr/share/mkswu/examples/node-red/ ~/mkswu/node-red/
[ATDE ~]$ cp flows.json ~/mkswu/node-red/

図5.31 フローの配置


以下のコマンドを実行して SWU を生成します。

[ATDE ~]$ mkswu --update-version ~/mkswu/node-red/update_flows.desc 1
/home/atmark/mkswu/node-red/update_flows.desc のバージョンを 1 から 2 に変更しました。
[ATDE ~]$ mkswu ~/mkswu/node-red/update_flows.desc -o update_flows.swu
Enter pass phrase for /home/atmark/mkswu/swupdate.key: 2
update_flows.swu を作成しました。

図5.32 SWU の生成


1

SWU のバージョンの更新を行います。

2

証明書の鍵のパスワードを入力します。

成功すると現在のディレクトリに update_flows.swu が生成されます。

5.7.3. アップデート用 SWU の適用

「ATDE 上でアップデート用 SWU を生成」 で生成した update_flows.swu を製品に適用します。 「初期設定用 SWU を ABOS Web からインストール」 を参照して Armadillo へインストールしてください。

インストールに成功したら Armadillo は自動的に再起動します。

[注記]

初期設定用 SWU を適用していない状態で update_flows.swu を適用した場合「FAILURE ERROR : Signature verification failed」というエラーが発生します。 その場合は、「VS Code を使用した初期設定用 SWU の生成」「初期設定用 SWU を ABOS Web からインストール」 を参照して、初期設定用 SWU の生成と Armadillo へのインストールを行ってください。

初期設定用SWU を適用後、改めて update_flows.swu を適用してください。



[1] バージョン3.xまではPUEL(VirtualBox Personal Use and Evaluation License)が適用されている場合があります。

[2] 特権ユーザーで GUI ログインを行うことはできません