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

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

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

> 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にインストールした後に、想定する挙動をするか確かめていただければと思います。
手順が長くて申し訳ありません。

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

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

ちょうど、最新の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イメージをコマンドラインで作成する方法もありますが」です。

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

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

お世話になります。

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

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

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

>
> > > もしくは、以前のArmadillo Base OSであれば、USBメモリに直接、"abos-ctrl make-installer --output /mnt/a6e-bto-installer.img"コマンドで、
> > > イメージファイルを書き出せたのですが、この方法はもう使用できないのでしょうか。
> > >(試したのですが、エラーコードがでてしまいました。)
> >
> > 使用できるはずです。
> > よろしければ、実行時のエラーの内容を教えていただければ幸いです。
> >
>
> お世話になります。
>
> まだ確認しきれておらず、途中経過です。
>
> エラー発生時のArmadillo(自作コンテナを追加したり、ネットワーク設定をいじったもの)が手元に無かったため、
> とりあえず別のArmadillo(新品にinitのswuファイルだけ当てたもの)で試してみました。
> →この場合にはimgファイルの出力に成功しました。
>
> エラー発生時の内容を確認次第、また共有させていただきます。

お世話になります。

本件ですが、自作のpodmanイメージファイルを追加した状態ですと、imgの出力に失敗しました。
出力時の表示は以下のとおりです。
どのような原因が考えられますでしょうか。
(なお、出力先のUSBメモリはFAT32で使用しており、空き容量は18GB程度です。)

armadillo:~# ping -c 3 pong.soracom.io
PING pong.soracom.io (100.127.100.127): 56 data bytes
64 bytes from 100.127.100.127: seq=0 ttl=63 time=41.997 ms
64 bytes from 100.127.100.127: seq=1 ttl=63 time=53.629 ms
64 bytes from 100.127.100.127: seq=2 ttl=63 time=53.289 ms
 
--- pong.soracom.io ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 41.997/49.638/53.629 ms
armadillo:~#
armadillo:~# podman images
REPOSITORY        TAG         IMAGE ID      CREATED        SIZE        R/O
localhost/app     1.0.2.3     21eb9b35b431  4 weeks ago    951 MB      true
localhost/reboot  latest      a5bf4aa3e03c  12 months ago  4.99 MB     true
armadillo:~#
armadillo:~# mount /dev/sda1 /mnt
armadillo:~# abos-ctrl make-installer --output /mnt/a6e-bto-installer.img
Checking if /mnt/a6e-bto-installer.img-in-progress can be used safely...
An installer system is already available on image file. Use it? [Y/n]
Y
Would you like to create a windows partition?
That partition would only be used for customization script at the end of
install, leave at 0 to skip creating it.
Custom partition size (MB, [0] or 16 - 350): 0
Checking and growing installer main partition
Resize device id 1 (/dev/loop0p1) from 517.00MiB to max
Copying boot image
Copying rootfs
ERROR: e2fsck failed for rootfs, aborting: e2fsck 1.47.0 (5-Feb-2023)
Warning!  /dev/mmcblk0p1 is in use.
Pass 1: Checking inodes, blocks, and sizes
Inodes that were part of a corrupted orphan linked list found.  Fix? no
 
Inode 35329 was part of the orphaned inode list.  IGNORED.
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
 
rootfs_0: ********** WARNING: Filesystem still has errors **********
 
rootfs_0: 4094/76912 files (0.4% non-contiguous), 170854/307200 blocks
Terminating, cleaning up...
armadillo:~#

太田です。

こちらの以前投稿されたフォーラムでも同様のエラーが発生しているようにみえます。

https://armadillo.atmark-techno.com/forum/armadillo/22110

armadillo:~# abos-ctrl rollback-clone && abos-ctrl rollback --reboot

を実行した後、もう一度"abos-ctrl make-installer"コマンドを実行してみていただいてもよろしいでしょうか?

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

太田様

上記のコマンドを実行したところ、成功しました。
ファイルシステムが一部破損していたものを、ロールバックによって復旧できた…というような感じでしょうか。
ご対応ありがとうございました。