Armadilloフォーラム

A6EのOSアップデート用SWUファイルの作成について

sori_001

2023年11月7日 17時41分

お世話になっております。﨤町です。

初回アップデート(initial_setup.swu)で、「アットマークテクノが作成したイメージをインストール可能 : no」を選択したため、
この機会にOSアップデート用のSWUの自作を試みておりますが、下記のエラーが発生します。
原因分かりますでしょうか。

Jan  1 09:30:08 armadillo kern.info kernel: [ 1808.552330] usb 1-1: new high-speed USB device number 5 using ci_hdrc
Jan  1 09:30:08 armadillo kern.info kernel: [ 1808.759622] usb-storage 1-1:1.0: USB Mass Storage device detected
Jan  1 09:30:08 armadillo kern.info kernel: [ 1808.766407] scsi host0: usb-storage 1-1:1.0
Jan  1 09:30:09 armadillo kern.notice kernel: [ 1809.918851] scsi 0:0:0:0: Direct-Access     Imation  USB Mass Storage PMAP PQ: 0 ANSI: 4
Jan  1 09:30:10 armadillo kern.notice kernel: [ 1810.883270] sd 0:0:0:0: [sda] 7581696 512-byte logical blocks: (3.88 GB/3.62 GiB)
Jan  1 09:30:10 armadillo kern.notice kernel: [ 1810.884598] sd 0:0:0:0: [sda] Write Protect is off
Jan  1 09:30:10 armadillo kern.debug kernel: [ 1810.884620] sd 0:0:0:0: [sda] Mode Sense: 23 00 00 00
Jan  1 09:30:10 armadillo kern.err kernel: [ 1810.885844] sd 0:0:0:0: [sda] No Caching mode page found
Jan  1 09:30:10 armadillo kern.err kernel: [ 1810.891214] sd 0:0:0:0: [sda] Assuming drive cache: write through
Jan  1 09:30:10 armadillo kern.info kernel: [ 1810.929445]  sda: sda1
Jan  1 09:30:10 armadillo kern.notice kernel: [ 1810.936132] sd 0:0:0:0: [sda] Attached SCSI removable disk
Jan  1 09:30:11 armadillo user.notice swupdate-auto-update: Mounting sda1 on /mnt in private namespace
Jan  1 09:30:11 armadillo user.notice swupdate-auto-update: Trying update /mnt/osupdate.swu
Jan  1 09:30:11 armadillo user.info swupdate: START Software Update started !
Jan  1 09:30:11 armadillo user.err swupdate: FAILURE ERROR : HW compatibility not found
Jan  1 09:30:11 armadillo user.err swupdate: FAILURE ERROR : Found nothing to install
Jan  1 09:30:11 armadillo user.err swupdate: FAILURE ERROR : JSON File corrupted
Jan  1 09:30:11 armadillo user.err swupdate: FAILURE ERROR : no parser available to parse sw-description!
Jan  1 09:30:11 armadillo user.err swupdate: FAILURE ERROR : Compatible SW not found

update-baseos-6e-3.18.4-at.5.desc

# boot image can be generated with atmark imx-boot script
swdesc_boot --install-if different \
            --version boot 2020.4-at20 \
            --description u-boot \
            --board iot-a6e-es2 \
            u-boot-aiotg-a6e-v2020.04-at20.imx
 
# base OS is a tar that will be extracted on a blank filesystem,
# after copying just a few key config files.
#
# OS updates are only installed if version is greater than previous update
# so if you install your own updates atmark-techno provided Armadillo Base OS
# updates might not get installed
swdesc_tar --description baseos-6e-3.18.4-at.5 \
           --version base_os 3.18.4-at.5 \
           --preserve-attributes baseos-6e-3.18.4-at.5.tar.zst

各OS、ubootの更新ファイルは下記からローカル(ATDE上)にダウンロードして、同ディレクトリに格納しております。
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-a6e/b…
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-a6e/b…

コメント

お世話になっております。﨤町です。

下記ページの一番最後の情報も提供いたします。(messageログとほぼ同じですが)
※指定オプションは -d ではなく -c でしょうか。
https://armadillo.atmark-techno.com/faq/swupdate-troubleshooting-abos

armadillo:~# swupdate -c -i /mnt/osupdate.swu 
SWUpdate v2022.12_git20230414-r0
 
Licensed under GPLv2. See source distribution for detailed copyright notices.
 
[INFO ] : SWUPDATE running :  [main] : Running on iot-a6e Revision at1
[INFO ] : SWUPDATE started :  Software Update started !
[ERROR] : SWUPDATE failed [0] ERROR : HW compatibility not found
[ERROR] : SWUPDATE failed [0] ERROR : Found nothing to install
[ERROR] : SWUPDATE failed [0] ERROR : JSON File corrupted
[ERROR] : SWUPDATE failed [0] ERROR : no parser available to parse sw-description!
[ERROR] : SWUPDATE failed [0] ERROR : Compatible SW not found
swupdate_image_write failed: Broken pipe
[ERROR] : SWUPDATE failed [1] Image invalid or corrupted. Not installing ...
[INFO ] : No SWUPDATE running :  Waiting for requests...

at_mitsuhiro.yoshida

2023年11月8日 9時12分

吉田です。

ATDE の /usr/share/mkswu/examples/OS_update.desc をベースに、
swdesc_boot の部分を u-boot-aiotg-a6e-v2020.04-at20.imx のみにするといかがでしょうか。

# boot image can be generated with atmark imx-boot script
swdesc_boot u-boot-aiotg-a6e-v2020.04-at20.imx
 
# base OS is a tar that will be extracted on a blank filesystem,
# after copying just a few key config files.
#
# OS updates are only installed if version is greater than previous update
# so if you install your own updates atmark-techno provided Armadillo Base OS
# updates might not get installed
swdesc_tar "baseos-6e-3.18.4-at.5.tar.zst" \
           --version base_os 3.18.4-at.5 \
           --preserve-attributes

製品マニュアルにも記載しておりますが、swdesc_boot だけはバージョンが自動的に設定されます。
ご確認よろしくお願いします。

at_dominique.m…

2023年11月8日 9時35分

﨤町さん

お世話になっています、
マルティネです。

吉田さんはすでに解決方法を提供してくれましたが、よこから一言を追加させていただきます。

> [ERROR] : SWUPDATE failed [0] ERROR : HW compatibility not found

この行は今回のエラーです。--board でしていしているハードウェアが /etc/hwrevision の内容と一致しないとインストールできないようになっています(例えば、Armadillo IoT A6E のアップデートを Armadillo G4 にインストールできないために使用ています。あまりお客さんに使うメリットがないので製品マニュアルにも説明のないオプションです)。
おそらくarmadillo.atmark-techno.com の swu の mkswu --show を元にして、--board iot-a6e-es2 をそのままコピーしましたが、mkswu --show のシンプルな構成で実際に複数の 「swdesc_boot --board xxx」のうちに最初の行だけが残っていて、混乱を招きましたね。申し訳ございません。
吉田さんの言う通りに、「swdesc_boot u-boot...」だけにすれば問題なくインストールできるようになります。(バージョンはしていしてもいいですが、自動的に取得されるためそれも不要です)

mkswu --show を改善して、FAQ にも追加しておきます。

> ※指定オプションは -d ではなく -c でしょうか。
> https://armadillo.atmark-techno.com/faq/swupdate-troubleshooting-abos

指摘ありがとうございます! -v のつもりでよくある --debug オプションの -d と混ざって、swupdate での -d は違いますね。-v に修正しました。

よろしくお願いします。

吉田さん、マルティネさん

お世話になっております。﨤町です。
ご回答いただき、ありがとうございます。

> ATDE の /usr/share/mkswu/examples/OS_update.desc をベースに、
> swdesc_boot の部分を u-boot-aiotg-a6e-v2020.04-at20.imx のみにするといかがでしょうか。
> 製品マニュアルにも記載しておりますが、swdesc_boot だけはバージョンが自動的に設定されます。

ご教示いただいた内容で試したところ、問題なくバージョンアップが成功しました。
ありがとうございます!

> この行は今回のエラーです。--board でしていしているハードウェアが /etc/hwrevision の内容と一致しないとインストールできないようになっています(例えば、Armadillo IoT A6E のアップデートを Armadillo G4 にインストールできないために使用ています。あまりお客さんに使うメリットがないので製品マニュアルにも説明のないオプションです)。

エラーの原因についてご教示いただきありがとうございます。
詳しく理解できました。

> おそらくarmadillo.atmark-techno.com の swu の mkswu --show を元にして、--board iot-a6e-es2 をそのままコピーしましたが、mkswu --show のシンプルな構成で実際に複数の 「swdesc_boot --board xxx」のうちに最初の行だけが残っていて、混乱を招きましたね。申し訳ございません。

はい、ご推測の通り、貴社配布のswuを --showオプションで参考にしていました。
他には製品マニュアル、OS_update.descも参考にしておりました。

以上です。ありがとうございました。