Armadilloフォーラム

initial_setup.descに他のモジュールを追加する場合の「base_os」の指定方法

tkhrosm

2024年7月8日 15時06分

お世話になっております。
descファイルの記述方法についてお伺いいたします。
環境:ATDE9

https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev… を参考に、initial_setup.desc + 自作のdescファイル(develop.desc)の構成でイメージの生成を試みているのですが、develop.descに記載している
swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
にて『ERROR: 「base_os」の更新は最初に指定してください。』のエラーが表示され、イメージ生成に失敗します。
このビルドはmkswu=5.3-1ではエラーが発生せず、正常な状態で完了できていました。mkswuを最新版(6.2.1-1)にしたところ、上記のエラーが発生しました。
base_osの指定はinitial_setup.descではなくdevelop.descで行いたいのですが、mkswu=6.2.1-1では実装不可でしょうか。もしくは別の指定方法があるのであればお教えいただけますでしょうか。

また合わせてお聞きしたいのですが、mkswuのダウングレードはできないでしょうか。確認したところ、6.2.1-1以外のバージョンを指定してインストールすることができなくなっているようです。今後、過去のバージョンを使用することはできるのかも教えていただけますと幸いです。

お伝えできる情報が限られている中でのご相談となり恐縮ですが、よろしくお願いいたします。

コメント

at_makoto.sato

2024年7月9日 11時16分

佐藤です。

> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-dev… を参考に、initial_setup.desc + 自作のdescファイル(develop.desc)の構成でイメージの生成を試みているのですが、develop.descに記載している
> swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
> にて『ERROR: 「base_os」の更新は最初に指定してください。』のエラーが表示され、イメージ生成に失敗します。
> このビルドはmkswu=5.3-1ではエラーが発生せず、正常な状態で完了できていました。mkswuを最新版(6.2.1-1)にしたところ、上記のエラーが発生しました。
> base_osの指定はinitial_setup.descではなくdevelop.descで行いたいのですが、mkswu=6.2.1-1では実装不可でしょうか。もしくは別の指定方法があるのであればお教えいただけますでしょうか。
おそらく、develop.descファイルには
swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
この行の他にも、"swdesc_" で始まる行をいくつか書いてあるのではないかと推察します。
もしそうであれば、他の "swdesc_" よりも先に
swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
を記載してみてもらえますでしょうか。

> また合わせてお聞きしたいのですが、mkswuのダウングレードはできないでしょうか。確認したところ、6.2.1-1以外のバージョンを指定してインストールすることができなくなっているようです。今後、過去のバージョンを使用することはできるのかも教えていただけますと幸いです。
>
上記でお伝えした方法でエラーが解消できればmkswuをダウングレードする必要はないかと思いますが、
以下から必要な .deb ファイルをダウンロードしていただき、
sudo apt install ./mkswu_<version>.deb
でインストールできます。
https://download.atmark-techno.com/debian/pool/main/m/mkswu/

tkhrosm

2024年7月9日 17時39分

> おそらく、develop.descファイルには
> swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
> この行の他にも、"swdesc_" で始まる行をいくつか書いてあるのではないかと推察します。
> もしそうであれば、他の "swdesc_" よりも先に
> swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
> を記載してみてもらえますでしょうか。
>
develop.descには"swdesc_"で始まる行は複数ありますが、該当の行より以前にあるものは
swdesc_boot imx-boot_armadillo_x2_2020.04-at23
のみとなっております。こちらと順を変えて実施しましたが、同様の結果が得られました。

補足として、mkswu initial_setup.descおよびmkswu develop.descの各生成コマンドはそれぞれ成功しています。
mkswu initial_setup.desc develop.descを実行した場合でのみ今回のエラーが発生しております。

initial_setup.descにも"swdesc_"で始まる行は複数ありますが、こちらも影響があるのではないでしょうか。
影響ある場合、
swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
の記載はinitial_setup.descの先頭である必要があると推察しています。ですが、できればそれは回避してdevelop.descへ記載したいと考えています。

> 上記でお伝えした方法でエラーが解消できればmkswuをダウングレードする必要はないかと思いますが、
> 以下から必要な .deb ファイルをダウンロードしていただき、
> sudo apt install ./mkswu_<version>.deb
> でインストールできます。
> https://download.atmark-techno.com/debian/pool/main/m/mkswu/

こちらは無事確認できました。お教えいただきありがとうございます。
やはりmkswuを5.3-1にダウングレードした場合ではビルドできました。当面はこの対応で解決できます。

at_makoto.sato

2024年7月9日 17時47分

佐藤です。

> initial_setup.descにも"swdesc_"で始まる行は複数ありますが、こちらも影響があるのではないでしょうか。
> 影響ある場合、
> swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes
> の記載はinitial_setup.descの先頭である必要があると推察しています。ですが、できればそれは回避してdevelop.descへ記載したいと考えています。
承知しました。
では逆に、initial_setup.desc の方にある"swdesc_"で始まる行を、develop.descの swdesc_tar "baseos-x2-<version>.tar.zst" --version base_os <version> --preserve-attributes よりも下へ記載するのも難しいでしょうか。

at_dominique.m…

2024年7月10日 9時48分

横からすみません、
マルティネです。

今回の犯人です、お手数をおかけして申し訳ございません。

この新しいエラーは、"base os" の部分をインストールする前に他の swdesc_{exec,script,command} を実行できません:
initial_setup.desc では swdesc_command で usermod を実行してパスワードを変更しますが、base os を展開する前ですと usermod コマンドもなければ /etc/shadowに保存されているパスワードファイルもありません。

そのため、base_os の部分を無理やりにアップデートの最初のステップでインストールしていますが、それでは他の swdesc_tar との組み合わせがあれば上書きされるファイルの順番が入れ替わって大変分かりにくいことになる可能性があります。

ただし、今までビルド・インストールできていた swu をビルドできなくなるのは困りますので、今月のアップデートでエラーからワーニングだけに変更しようと思います。報告ありがとうございました。

今回の対応ですが、内部実装依存で回避することは可能ですがとりあえず 6.0 以前のバージョンで swu をビルドしていただいても問題ありません。
今月のアップデートができましたら更新してください。

よろしくお願いします。

tkhrosm

2024年7月10日 14時13分

> 横からすみません、
> マルティネです。
>
> 今回の犯人です、お手数をおかけして申し訳ございません。
>
> この新しいエラーは、"base os" の部分をインストールする前に他の swdesc_{exec,script,command} を実行できません:
> initial_setup.desc では swdesc_command で usermod を実行してパスワードを変更しますが、base os を展開する前ですと usermod コマンドもなければ /etc/shadowに保存されているパスワードファイルもありません。
>
> そのため、base_os の部分を無理やりにアップデートの最初のステップでインストールしていますが、それでは他の swdesc_tar との組み合わせがあれば上書きされるファイルの順番が入れ替わって大変分かりにくいことになる可能性があります。
>
> ただし、今までビルド・インストールできていた swu をビルドできなくなるのは困りますので、今月のアップデートでエラーからワーニングだけに変更しようと思います。報告ありがとうございました。
>
>
> 今回の対応ですが、内部実装依存で回避することは可能ですがとりあえず 6.0 以前のバージョンで swu をビルドしていただいても問題ありません。
> 今月のアップデートができましたら更新してください。
>
> よろしくお願いします。
>

今回のエラー仕様の背景について理解いたしました。今後の実装の参考にさせていただきます。
アップデートでワーニングに変更とのことで、ご対応ありがとうございます。よろしくお願いいたします。
それまでは以前の教えていただいた方法で以前のバージョンで実施したいと思います。

佐藤さん、マルティネさん、ご回答ありがとうございました。