Armadilloフォーラム

OP-TEEを組み込んだブートローダ更新用SWUビルド時のエラー

aos

2024年5月18日 22時57分

お世話になります。
現在、以下のマニュアルの§6.4に従い、OP-TEEを組み込んだブートローダのビルド及びインストールを試みております。
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec…

imx-optee-client、optee_example、imx-optee-testのバージョンもマニュアルに記載されているものを使用し、6.4.3.の「3. swu ファイルを作成する」の手順までたどり着いたのですが、この時点で以下のようなエラーが発生しました。

atmark@atde9:~/Develop/armadillo/op-tee$ mkswu imx-boot_update.desc -o ./update_imx-boot.swu
/usr/bin/mkswu: 5: ./imx-boot_update.desc: /home/atmark/Develop/armadillo/op-tee/imx-boot/imx-boot_armadillo_x2: Permission denied

imx-boot_armadillo_x2の権限を確認した所、実行権限が付与されていなかったため、これが原因であると推定しchmod +xにて実行権限を付与しました。
ところが、今度は以下のようにExec Format Errorが発生するようになりました。

atmark@atde9:~/Develop/armadillo/op-tee$ mkswu imx-boot_update.desc -o ./update_imx-boot.swu
/usr/bin/mkswu: 5: ./imx-boot_update.desc: /home/atmark/Develop/armadillo/op-tee/imx-boot/imx-boot_armadillo_x2: Exec format error

何度かビルドのし直しを試みたり、またクロスコンパイル用のライブラリがインストールされていることも確認したのですが、上記エラーの解決の目処が立たないため、ご助力いただけますと大変助かります。

ATDE9のバージョンはatde9-amd64-20240321であり、§6.4.2~6.4.8までの手順全てをこのATDE9上で実施しています。
(マニュアルですと6.4.2~6.4.7のプロンプトが「[ATDE ~]」ではなく「[PC ~]」となっていますが、特にこれに関して特筆はされていないのでATDEで実行しています)

また、当のimx-boot_armadillo_x2に対してfileコマンドをかけてみた結果は以下の通りでした。

atmark@atde9:~/Develop/armadillo/op-tee$ file imx-boot/imx-boot_armadillo_x2 
imx-boot/imx-boot_armadillo_x2: Apple DiskCopy 4.2 image , 167772180 bytes, 0x1f2003d5 tag size, 0xf8 encoding, 0x22 format

私がどこかしらかで初歩的なミスを犯している可能性も十二分にございますが、上記ご確認よろしくお願いいたします。
追加で掲載すべき情報がございましたらその旨お伝えください。

コメント

at_dominique.m…

2024年5月20日 9時47分

aosさん、

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

atmark@atde9:~/Develop/armadillo/op-tee$ mkswu imx-boot_update.desc -o ./update_imx-boot.swu
/usr/bin/mkswu: 5: ./imx-boot_update.desc: /home/atmark/Develop/armadillo/op-tee/imx-boot/imx-boot_armadillo_x2: Permission denied

この(とその次の)エラーでは、imx-boot_armadillo_x2 を実行しようとしていますが、imx-boot は ATDE で実行する様なファイルではありませんので desc ファイルに何かの書き間違いがないかと思われます。

セキュリティガイドでのブートローダーのアップデート手順では、「swdesc_boot /path/imx-boot/imx-boot_armadillo_x2」として記載されていますが、「swdesc_boot」の部分が残ってるかを確認していただけますでしょうか?

> また、当のimx-boot_armadillo_x2に対してfileコマンドをかけてみた結果は以下の通りでした。
>

atmark@atde9:~/Develop/armadillo/op-tee$ file imx-boot/imx-boot_armadillo_x2 
imx-boot/imx-boot_armadillo_x2: Apple DiskCopy 4.2 image , 167772180 bytes, 0x1f2003d5 tag size, 0xf8 encoding, 0x22 format

この出力は大丈夫です。
mkswu を実行する際に imx-boot のヘッダーを確認しますので、「swdesc_boot imx-boot_armadillo_x2」が記載されている desc ファイルを SWU に変換できた場合はビルド手順に大きいな問題がないはずです。
(確実に「起動できるイメージ」の保証はできませんが、全く関係ファイルをブートローダーとして書き込まない程度の確認を行っています)

よろしくお願いします。

マルティネ様

ご返信ありがとうございます。
descファイルを確認しました所、ご指摘の通りまさにその部分の記述に誤りがございました。

本来

swdesc_boot /home/atmark/Develop/armadillo/op-tee/imx-boot/imx-boot_armadillo_x2

とすべき所を、

/home/atmark/Develop/armadillo/op-tee/imx-boot/imx-boot_armadillo_x2

というように書いておりました。

修正後再度SWUのビルドを試みた所、無事正常にビルドできる事を確認いたしました。

初歩的なミスでお時間取ってしまい恐縮ですが、大変助かりました。今後ともよろしくお願いいたします。