Armadilloフォーラム

インストールディスクをswuファイルにする

m-h

2024年9月30日 10時32分

いつもお世話になっております。

表記の件につきまして、cliでインストールディスクイメージをswuファイルにする方法をご教授いただけますでしょうか。
インストールディスクについては、"abos-ctrl make-installer"コマンドを使用して作成しております。
マニュアルにVScodeで実行する手順の記載はありましたが、cliで実行する方法の記載がございませんでした。
お手数ですが、よろしくお願いいたします。

マニュアルの見落としがありましたら申し訳ございません。

コメント

at_satoshi.ohta

2024年10月1日 13時25分

太田です。

申し訳ありません。
インストールディスクイメージをswuファイルにする方法は現在提供しておりません。

VScodeで実行する手順というのは具体的にはマニュアルのどの節をご覧になれましたか?
お教えいただけましたら幸いです。

どうぞよろしくお願いいたします。

m-h

2024年10月1日 13時45分

太田様
ご回答ありがとうございます。

> VScodeで実行する手順というのは具体的にはマニュアルのどの節をご覧になれましたか?
> お教えいただけましたら幸いです。
[4.4.7. VSCode を使用して生成する]の項目からインストールディスクイメージをswuファイルにするものだと誤認しておりました。
申し訳ございません。

> インストールディスクイメージをswuファイルにする方法は現在提供しておりません。
こちら提供していただくことは可能でしょうか?
記載ないということは推奨されていないという事でしょうか。

以上、よろしくお願いいたいします。

at_satoshi.ohta

2024年10月1日 16時05分

太田です。

ご返信有り難うございます。

> こちら提供していただくことは可能でしょうか?
> 記載ないということは推奨されていないという事でしょうか。

申し訳ありません。実装が簡単ではないのですぐに提供は出来ません。
こちらでは代替方法を案内させていただきます。

以下の方法は開発用のArmadillo上にあるコンテナイメージなどの必要なデータをswuイメージに含める方法です。

1. はじめにArmadilloにシリアルまたはsshでログインしてください。

2. 作成したコンテナイメージが存在するか確認します。
以下のコマンドをArmadilloのターミナル上で実行してください。
ここではコンテナイメージ名をmy_project とします。

armadillo:~# podman images
REPOSITORY                TAG         IMAGE ID      CREATED       SIZE        R/O
my_project  latest      76f9bbd7c78a  20 hours ago  436 MB      true

3. Armadillo上のコンテナイメージをtarアーカイブに保存します。
以下のコマンドをArmadilloのターミナル上で実行してください。

armadillo:~# podman save -o my_project.tar my_project
armadillo:~# ls
my_project.tar

4. Armadillo上にある必要なデータをATDE上に転送します。
ここではUSBメモリを使用します。(scpなどでも問題ないです。)
また、ここではmy_project.tarとコンテナ自動起動ファイル(/etc/atmark/containers/my_project.tar)、ソースコードがあるディレクトリ(/var/app/rollback/volumes/my_project)が必要なデータとします。
USBをArmadilloに挿入後、以下のコマンドを実行してください。
(必要に応じてご使用の環境にあわせてください。)

armadillo:~# ls /dev/sda1
/dev/sda1
armadillo:~# mount -t vfat /dev/sda1 /mnt
armadillo:~# ls
my_project.tar
armadillo:~# cp my_project.tar /mnt/
armadillo:~# cp /etc/atmark/containers/my_project.conf /mnt/
armadillo:~# cp -r /var/app/rollback/volumes/my_project /mnt/
armadillo:~# umount /mnt

USBメモリをローカルPCに挿入してATDE上にそれらのデータを保存してください。
ここでは、ATDEのホームディレクトリに保存したことにします。

5. swuイメージを作成するためにATDE上でdescファイルを作成します。
ここではdescファイル名をmy_project.descにします。
my_project.descに記述する内容の例を以下に示します。

swdesc_option component=my_project
swdesc_option version=1
 
swdesc_files --extra-os --dest /etc/atmark/containers my_project.conf
swdesc_files --dest /var/app/rollback/volumes/my_project my_project
swdesc_embed_container "my_project.tar"

必要に応じてdescファイルの内容は修正してください。
実行できるコマンド例はマニュアルに記載がございますのでご参照ください。
https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p…

6. descファイルからSWUイメージを作成します。
ATDE上のターミナルで以下のコマンドを実行してください。

atmark@atde9:~$ ls
my_project  my_project.conf  my_project.desc  my_project.tar
atmark@atde9:~$ mkswu my_project.desc
Enter pass phrase for /home/atmark/mkswu/swupdate.key:
my_project.swu を作成しました。
atmark@atde9:~$ ls
my_project  my_project.conf  my_project.desc  my_project.swu  my_project.tar 

これにより、必要なデータを含むSWUイメージ(my_project.swu)が作成されます。

あとは、作成したSWUイメージをABOS Webなどで量産用のArmadilloにインストールした後に、想定する挙動をするか確かめていただければと思います。
手順が長くて申し訳ありません。

どうぞよろしくお願いいたします。

m-h

2024年10月1日 17時52分

太田様

代替案ご提示いただきありがとうございます
上記手法で実施いたします

kirihara

2024年10月3日 15時17分

本件について、質問させてください。

ちょうど、最新のArmadillo Base OSにて、インストール用イメージを作成しようとして、同じような問題にあたっておりました。

"4.4.7. VSCode を使用して生成する"
を参照しているのですが、VScodeの拡張機能の使用に制約があるため、VScodeを用いない方法を探しております。
(AG6211、AG6271を使用しており、"4.4.9 コマンドラインから作成する"の方法もできませんでした。)

"4.4.7.1. VSCode を使用したインストールディスク作成用 SWU の生成"に記載されている、
"make-installer.swu"をコマンドラインで作成できれば、その後は問題ないと考えているのですが、
こちらを行う方法が無い…という認識でよいでしょうか。

もしくは、以前のArmadillo Base OSであれば、USBメモリに直接、"abos-ctrl make-installer --output /mnt/a6e-bto-installer.img"コマンドで、
イメージファイルを書き出せたのですが、この方法はもう使用できないのでしょうか。
(試したのですが、エラーコードがでてしまいました。)

よろしくお願いいたします。

at_satoshi.ohta

2024年10月3日 16時50分

太田です。

> 4.4.7.1. VSCode を使用したインストールディスク作成用 SWU の生成"に記載されている、
> "make-installer.swu"をコマンドラインで作成できれば、その後は問題ないと考えているのですが、
> こちらを行う方法が無い…という認識でよいでしょうか。

"make-installer.swu"をコマンドラインで行う方法もありますが、"make-installer.swu"で実行しているのはabos-ctrl make-installerコマンドです。
そのため、ABOSDEを使用できない環境であれば、SSHやコンソールでArmadilloにログインした後、abos-ctrl make-installerコマンドを実行する方が簡単だと思います。
("make-installer.swu"はマニュアルの誤記であり、正しくは"make_installer_usb.swu"でした。今月修正します。)

> もしくは、以前のArmadillo Base OSであれば、USBメモリに直接、"abos-ctrl make-installer --output /mnt/a6e-bto-installer.img"コマンドで、
> イメージファイルを書き出せたのですが、この方法はもう使用できないのでしょうか。
>(試したのですが、エラーコードがでてしまいました。)

使用できるはずです。
よろしければ、実行時のエラーの内容を教えていただければ幸いです。

よろしくお願いいたします。

at_satoshi.ohta

2024年10月3日 16時54分

太田です。
立て続けに申し訳ありません。
文章の不備を訂正させてください。

> "make-installer.swu"をコマンドラインで行う方法もありますが
正しくは「"make-installer.swu"と同等の機能のSWUイメージをコマンドラインで作成する方法もありますが」です。

よろしくお願いいたします。

kirihara

2024年10月4日 19時26分

> > もしくは、以前のArmadillo Base OSであれば、USBメモリに直接、"abos-ctrl make-installer --output /mnt/a6e-bto-installer.img"コマンドで、
> > イメージファイルを書き出せたのですが、この方法はもう使用できないのでしょうか。
> >(試したのですが、エラーコードがでてしまいました。)
>
> 使用できるはずです。
> よろしければ、実行時のエラーの内容を教えていただければ幸いです。
>

お世話になります。

まだ確認しきれておらず、途中経過です。

エラー発生時のArmadillo(自作コンテナを追加したり、ネットワーク設定をいじったもの)が手元に無かったため、
とりあえず別のArmadillo(新品にinitのswuファイルだけ当てたもの)で試してみました。
→この場合にはimgファイルの出力に成功しました。

エラー発生時の内容を確認次第、また共有させていただきます。