2.2 エッジゲートウェイのファームウェアイメージを作成する #
まず、ゲートウェイ上にユーザーが作成したアプリケーションや必要なパッケージなどをインストールします。次に、その環境からファームウェアイメージを作成します。
ファームウェアイメージにする以外の方法(archive.list、userfs 領域)との使い分けは『2.3 アプリケーションをファームウェア更新後も残す』を参照してください。
2.2.1 アプリケーションやパッケージのインストール #
作成したアプリケーションを、rootfs領域やuserfs領域に保存します。
アプリケーションの動作に必要なパッケージは、以下のコマンドでインストールします。
実行環境: エッジゲートウェイ
admin@amnimo:~$ sudo apt update
admin@amnimo:~$ sudo apt install <package name>
2.2.2 ファームウェアイメージの作成 #
以下のコマンドで、指定した冗長領域からファームウェアイメージを作成します。コマンドを実行すると、シャットダウンが開始され、シャットダウン中にrootfs領域およびuserfs領域を含むファームウェアイメージが作成されます。
書式 (バージョン1.4.5以前)
amfwgen snapshot --target=<target> --partition=<partition> <amf>
書式 (バージョン1.5.0以降)
amfwgen snapshot --target=<target> --partition=<partition> [--exclude=<exclude>] [--device=<device>] <amf>
パラメーター
| 項目 | 内容 |
|---|---|
| target | ファームウェアイメージを作成する冗長領域を指定します。 ※1を参照 |
| partition | ファームウェアイメージを作成する冗長領域を指定します。 ※2を参照 |
| exclude | 作成するファームウェアイメージから除外したいファイルやディレクトリを記載したファイルへのパスを指定します。ファイルには、一行毎に一つのファイルやディレクトリへのパスを記載したテキストファイルを指定してください。本オプションは、生成したファームウェアイメージを複数の機器にインストールする場合に、機器固有のファイルやパスワード/署名ファイルを除外するために使用することを想定しています。 補足: 本オプションはバージョン1.5.0以降で利用可能です。 |
| device | 作成するファームウェアイメージを保存するストレージを示すデバイスファイルを指定します。指定しない場合は、デフォルト値として現在起動している冗長領域のデバイスファイルが指定されます。デバイスファイルは/dev/XXXの形式で指定してください。ファームウェアイメージは、指定したストレージ上の<amf>で指定したパスに保存されます。 補足: 本オプションはバージョン1.5.0以降で利用可能です。 |
| amf | ファームウェアイメージの出力先を指定します。再起動すると、ここで指定したパスに、ファームウェアイメージが生成されます。 注意: バージョン1.4.5以前のファームウェアを使用している場合、出力先にはrootfs上のパスを指定してください。userfs/sharefsやSDカードのマウント先を指定することはできません。 |
※1
| 表示 | 内容 |
|---|---|
| fore | 現在起動している冗長領域を指定します。 targetを省略した場合のデフォルト値として使用されます。 |
| back | 現在動作していない冗長領域を指定します。 |
※2
| 表示 | 内容 |
|---|---|
| rootfs | rootfsを指定します。 |
| userfs | userfsを指定します。 |
補足: 本コマンドを実行すると、シャットダウンが開始されます。
本コマンドを実行してから再起動までにかかる時間は、冗長領域の使用サイズによって変化します。通常、1時間から数時間かかります。
事前に冗長領域の使用サイズを削減してからコマンドを実行することをおすすめします。
作成したファームウェアイメージのヘッダー情報は、
amfwgen show <amf>で表示できます。
注意: 本コマンドで作成したファームウェアはCLIのファームウェア更新機能(『エッジゲートウェイシリーズCLIユーザーズマニュアル』の『2.4 ファームウェアを操作する』)で利用可能ですが、バージョン1.4.5以前の場合GUIのファームウェア更新機能では利用不可です。バージョン1.5.0以降に更新後、本コマンドで作成したファームウェアは、GUIのファームウェア更新機能でも利用可能です。
バージョン2.4.3以前のファームウェアでは、DMS機能で利用するデバイス証明書が/var/lib/amnimo-ecc配下に保存される不具合があります。ファームウェアイメージの作成の際は以下のファイルの削除をお願いします。
/var/lib/amnimo-ecc/aac.txt /var/lib/amnimo-ecc/awsiot/private.pem.key /var/lib/amnimo-ecc/awsiot/thing.json /var/lib/amnimo-ecc/awsiot/certificate.pem.crt
実行例 (バージョン1.5.0以降)
現在起動している領域のrootfsとuserfsを含むファームウェアイメージを生成します。ファームウェアイメージは、/dev/sda1上のファイルシステムのトップディレクトリに保存されます。ファームウェアイメージには、/etc/amnimo/archive.listに記載されたファイルは含まれません。
実行環境: エッジゲートウェイ
admin@amnimo:~$ cat /etc/amnimo/archive.list ← 機器固有のファイルリスト
/etc/amnimo/archive.list
/etc/amnimo/config.yaml
/etc/machine-id
/etc/ssh/ssh_host_ecdsa_key
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
/etc/amnimo/dimoni.conf
/opt/networkoptix/mediaserver/var/ssl/cert.pem
/etc/remoteit/config.json
admin@amnimo:~$ sudo amfwgen snapshot --target=fore --partition=rootfs,userfs --exclude=/etc/amnimo/archive.list --device=/dev/sda1 firmware.amf

補足: 本コマンドを実行すると、シャットダウンが開始されます。
注意: 本コマンドで作成したファームウェアはCLIのファームウェア更新機能(『エッジゲートウェイシリーズCLIユーザーズマニュアル』の『2.4 ファームウェアを操作する』)で利用可能ですが、バージョン1.4.5以前の場合GUIのファームウェア更新機能では利用不可です。バージョン1.5.0以降に更新後、本コマンドで作成したファームウェアは、GUIのファームウェア更新機能でも利用可能です。