ボード本体のフラッシュメモリに書き込む、指定イメージファイルを作成する方法を記載します。
必要なもの
本手順を実行するために必要なものは以下の通りです。
- 以下の条件を満たす Armadillo-640 本体
- 開発完了済みのソフトウェアが書き込まれていること
- インターネットに接続されていること
- シリアルインターフェース経由で操作できること
- 作業用 PC (シリアルインターフェース経由で Armadillo-640 を操作できるもの)
- 16GB 以上の USB メモリ
- 16GB 以上の microSD カード
指定イメージの種類
ROM イメージ書き込みで「指定イメージ」を選択された場合は、下記の 2 種類のファイルをあらかじめご用意ください。
ファイル内容 | 注意事項 |
---|---|
イメージファイル | ファイルタイプ:gz, tar, zip, tgz ファイルサイズ上限:4GB 以下[*1] |
MD5 ファイル | ファイルタイプ:txt, md5 ファイルサイズ上限:2MB 以下 |
[*1] 本体基板に書き込むイメージファイルのサイズ上限については、製品マニュアルをご覧ください。
指定イメージの作成方法
Armadillo-640 では、開発完了後の Armadillo のソフトウェアを、別の Armadillo にクローンするインストールディスクを作成することができます。
Armadillo-640 の BTO では、このクローン用インストールディスクイメージを当社にファイル交換サイトを通じて送っていただくことで、指定イメージを書き込んだ状態で Armadillo-640 を出荷します。
以下に BTO 用インストールディスクの作成手順を示します。
事前準備
インストールディスク作成前にいくつかの前準備が必要なことがあります。 以下に必要な前準備とその手順について紹介します。
Armadillo Base OS の更新
基本的にArmadillo Base OSは常に最新版を使用することを推奨します。 開発中にArmadillo Base OSの新しいバージョンがリリースされている場合もありますので、インストールディスクを作成する前にArmadillo Base OSのバージョンを最新版にしてください。
/etc/swupdate_preserve_fileへの追記
ここでは SWUpdate というアップデート機能を使用して Armadillo Base OS のアップデートを行ないますが、このアップデートを行なうと、 /etc/swupdate_preserve_files に記載の無いファイルは消えてしまいます。
Armadillo Base OS のルートファイルシステム上に消えてほしくないファイルを開発中に配置していた場合は、以下に示すコマンドを実行することで /etc/swupdate_preserve_files にそのファイルが追記され、アップデート後も保持し続けるようになります。
[armadillo]# persist_file -p <ファイルのパス>
Armadillo Base OS アップデートの実行
Armadillo-640 Armadillo Base OS から「Armadillo-640 用 SWUイメージイメージファイル」のURLをコピーして、以下に示すコマンドを実行することで Armadillo Base OS を最新版にアップデートできます。
[armadillo]# swupdate -d '-u https://armadillo.atmark-techno.com/files/downloads/armadillo-640/image/baseos-600-[VERSION].swu'
SWUpdate の初期設定
これまでに一度もSWUpdateによるアップデートを行なっていない場合、Armadillo Base OS 開発ガイド「SWUpdateによる初回アップデート」の手順にしたがって初回アップデートを実行してください。
Armadillo Base OS 搭載製品は、USB メモリにアップデートイメージを配置して Armadillo に接続することで、SWUpdate によるアップデートを行うことができます。 一度も SWUpdate を実行していない個体に関しては、第三者が作ったアップデートイメージであっても受け付けてしまいます。そのため、初回アップデートを行なっていないArmadilloを量産して出荷することはとても危険です。 SWUpdate による初回アップデートでは、自分以外が作成したアップデートイメージを受け付けなくするように設定します。
初回 SWUpdate 時に作成した認証鍵は、出荷後のリモートアップデートなどに使用できるため削除しないよう注意してください。
パスワードの確認と変更
Armadillo の各ユーザの初回ログイン時に、ログインパスワードを設定しました。 開発中はログインしやすいような単純なパスワードにしていることがよくあるので、製品に適用しないようにこのタイミングで強固なパスワードに変更することを推奨します。
パスワードの変更は以下の手順で実施できます。
[armadillo /]# passwd (1) Changing password for root New password: (2) Retype password: (3) passwd: password for root changed by root [armadillo /]# passwd atmark (4) Changing password for atmark New password: (5) Retype password: (6) passwd: password for atmark changed by root [armadillo /]# persist_file /etc/shadow (7)
- (1) rootユーザのパスワードを変更します。
- (2) 新しいrootユーザ用パスワードを入力します。
- (3) 再度新しいrootユーザ用パスワードを入力します。
- (4) atmarkユーザのパスワードを変更します。
- (5) 新しいatmarkユーザ用パスワードを入力します。
- (6) 再度新しいatmarkユーザ用パスワードを入力します。
- (7) パスワードの変更を永続化させます。
開発中のみ使用していたコンテナイメージの削除
開発用に使用し、運用時には不要なコンテナ及びコンテナイメージは、インストールディスク作成前に削除することを推奨します。
以下のコマンドを実行することで作成したコンテナの一覧を取得できます。
[armadillo /]# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3ca118e9473b docker.io/library/alpine:latest /bin/sh 3 seconds ago Exited (0) 3 seconds ago vibrant_easley 9c908ab45ed8 localhost/abos-dev-guide:v1.0.0 /bin/bash 3 minutes ago Exited (0) 5 months ago sample_container
基本的に運用時におけるコンテナは/etc/atmark/containers/*.confファイルによって自動的に作成されますので、上記コマンドで表示されたコンテナは全て削除して問題無いはずです。以下にコンテナを削除する例を示します。
[armadillo /]# podman rm sample_container (1) [armadillo /]# podman rm 3ca118e9473b (2) [armadillo /]# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES (3)
- (1) コンテナの名前で削除するコンテナを指定しています。
- (2) コンテナのIDで削除するコンテナを指定しています。
- (3) 何も表示されず、全てのコンテナが削除されたことを確認します。
以下に示すコマンドを実行することでコンテナイメージの一覧を取得できます。 readonly 領域に保存されているコンテナイメージが 1 つでもある場合は、 R/O 列が表示されます。 R/O 列が表示されない場合は、全てのコンテナイメージの R/O が false であることを意味しています。
[armadillo /]# podman images REPOSITORY TAG IMAGE ID CREATED SIZE R/O docker.io/library/alpine latest 6e30ab57aeee 2 weeks ago 5.56 MB false docker.io/library/busybox latest 3c19bafed223 5 days ago 1.64 MB true localhost/abos-container v1.0.0 2394ea5f177f 5 hours ago 932 MB false
ここでは運用時に必要な localhost/abos-container:v1.0.0 を除いた、その他のコンテナイメージを削除します。
R/O が false のイメージは podman rmi コマンドで削除できます。
[armadillo /]# podman rmi docker.io/library/alpine Untagged: docker.io/library/alpine:latest Deleted: 6e30ab57aeeef1ebca8ac5a6ea05b5dd39d54990be94e7be18bb969a02d10a3f
R/O が true のイメージは abos-ctrl podman-rw rmi コマンドで削除できます。
[armadillo /]# abos-ctrl podman-rw rmi docker.io/library/busybox:latest Untagged: docker.io/library/busybox:latest Deleted: 3c19bafed22355e11a608c4b613d87d06b9cdd37d378e6e0176cbc8e7144d5c6
開発したコンテナイメージを tmpfs に移行する
開発中は podman のデータは電源を切っても保持されるように eMMC に保存していました。 開発中はこのままで問題ありませんが、運用する場合には eMMC への書き込みを最小限にする観点から、 podman のデータの保存先を tmpfs に変更しておくことを推奨します。
以下に示すコマンドを実行することで、eMMCに保存されている開発完了後のコンテナイメージをtmpfsモードでも読み取り専用で使用できるように変更できます。
[armadillo /]# abos-ctrl podman-storage --tmpfs List of images configured on development storage: REPOSITORY TAG IMAGE ID CREATED SIZE localhost/abos-dev-guide v1.0.0 2394ea5f177f 5 hours ago 932 MB What should we do? ([C]opy (default), [N]othing, [D]elete) C (1) Delete subvolume (no-commit): '/mnt/containers_storage' Replacing development images to readonly storage succeeded Switching back to tmpfs container storage. Successfully reverted podman storage to tmpfs [armadillo /]# abos-ctrl podman-rw image list (2) REPOSITORY TAG IMAGE ID CREATED SIZE localhost/abos-dev-guide v1.0.0 2394ea5f177f 5 hours ago 932 MB
- (1) C を入力しEnterを押下します。
- (2) tmpfsモードでコンテナイメージが読み込めていることを確認します。
開発したシステムをインストールディスクにする
Armadillo Base OS では、 abos-ctrl make-installer コマンドを実行することで、現在起動しているルートファイルシステム及びブートローダーをそのままインストールディスクイメージとして出力し、USB メモリに書き込むことができます。
あらかじめ、USB メモリに Armadillo-640 のインストールディスクイメージをコピーしてください。
Armadillo Base OS対応 Armadillo-640 インストールディスクイメージよりダウンロードできます。
以下の例では、インストールディスクイメージを a640-bto-installer.img とリネームして実施しております。
abos-ctrl make-installer コマンドを実行する前に、Armadillo がインターネットに接続されており、かつ USB メモリが挿入されていることを確認してください。
armadillo:~# abos-ctrl make-installer --output /mnt/a640-bto-installer.img /mnt/a640-bto-installer.img (534MiB) was bigger than 366MiB and was not truncated. An installer system is already available on image file. Use it? [Y/n] (1) Y Copying boot image Copying rootfs 314572800 bytes (315 MB, 300 MiB) copied, 69 s, 4.5 MB/s 300+0 records in 300+0 records out 314572800 bytes (315 MB, 300 MiB) copied, 69.2607 s, 4.5 MB/s Copying appfs At subvol app/snapshots/volumes At subvol app/snapshots/boot_volumes At subvol app/snapshots/boot_containers_storage Trying to shrink the installer partition... Installer partition is not shrinkable Cleaning up and syncing changes to disk... Installer updated successfully! -rwxr-xr-x 1 root root 534M May **:**:** /mnt/a640-bto-installer.img
- (1) Y キーを押下します。
「Installer updated successfully!」と表示されれば、正常に USB メモリにインストールディスクイメージを書き込むことができています。 Armadillo から USB メモリを抜去してください。
インストールディスクの動作確認を行う
作成したインストールディスクの動作確認を実施してください。開発に使用した Armadillo 以外の個体が必要になります。また、インストール先の Armadillo の eMMC 内のデータは上書きされて消えるため、必要なデータは予めバックアップを取っておいてください。
開発したシステムをインストールディスクにするの手順で使用した USB メモリの中に a640-bto-installer.img が存在しますので、ATDE 上でこのイメージをもとに microSD カードにインストールディスクを作成してください。ATDE 上に a640-bto-installer.img をコピーした場合、コマンドは以下のようになります。/dev/sd[X] の [X] は microSD を示す文字を指定してください。
[ATDE ~] sudo dd if=a640-bto-installer.img of=/dev/sd[X] bs=1M oflag=direct status=progress
上記コマンドで作成した microSD のインストールディスクを、インストール先の Armadillo に挿入してください。その後、SW2 (起動デバイス設定スイッチ)を ON にしてから電源を入れます。 Armadilloがインストールディスクから起動し、自動的にインストールスクリプトが動作します。
しばらくすると「reboot: Power down」と表示されるので、Armadilloの電源を切ります。 その後 Armadillo から microSD カードを抜き、SW2 (起動デバイス設定スイッチ)を OFF にします。 再度電源を投入することで、インストールは完了です。
実際にクローンした Armadillo が想定した通りの動作をすることを確認してください。
指定イメージファイルの送付方法
指定イメージファイルは、ご発注時まで[*3]に「アットマークテクノ BTO イメージファイル受付サイト」からお送りください。
「アットマークテクノ BTO イメージファイル受付サイト」のアクセス方法については、ご発注時に営業担当よりご案内いたします。
注意事項
- ROM イメージは、BTO サービスお申込み時にお客様に提供いただきます。
- 弊社では MD5 ファイルの照合のみを行い、イメージファイルの動作確認は行いません。
- ROM イメージ書き込みについての注意事項は、「Armadillo BTO サービスのご案内(各製品シリーズの共通事項)」の「ソフトウェアの保証」の項目をご確認ください。
[*3] 期日までに指定イメージファイルをお送りいただけなかった場合、納期をお約束いたしかねますのであらかじめご了承ください。お手続きの流れについては、「Armadillo BTO サービスのご案内(各製品シリーズの共通事項)」の「お申込みから納品までの流れ」の内容をご確認ください。