This service is available only in Japanese-language.
yocto 2.6.1を使用してNXP社製8MMINILPD4-EVKボード用のディスクイメージ(4.14.78 sumo)を作成しているのですが、
件名の通り、レシピによるu-boot環境変数の追加ができません。
bbappendファイルでu-bootのソースを直接書き換えるパッチを適用していますが、
いざ生成されたディスクイメージを描いてみると書き換わっていません。
そもそもレシピファイルの書き方が悪いのか、u-bootの環境変数の書き換えは
レシピファイルではできないのか、が切り分けできない状態です。
以上、よろしくお願いします。
==
レシピファイルとしては、
meta-local/recipes-bsp/u-boot/u-boot-imx_2018.03.bbappend
を定義しています。
--
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://0001-add-run_m4_tcm-fdt_file.patch "
--
$ bitbake-layers show-appends の結果は以下の通りで、bbapendファイル自体は適用されているように見えます。
u-boot-imx_2018.03.bb:
/home/tkashi/imx-yocto-bsp/sources/meta-local/recipes-bsp/u-boot/u-boot-imx_2018.03.bbappend
yakuhito
2019/6/13 (木) 15:44
念のためお伺いしますが
env default -a
を実行して環境変数の初期化処理を行っても、変更が反映されていないという状況でしょうか?
tkashi
2019/6/13 (木) 16:11
> env default -a
> env default -a
> を実行して環境変数の初期化処理を行っても、変更が反映されていないという状況でしょうか?
はい。patchを適用する前の変数になっています。いまのところu-bootの”include/configs/imx8mm_evk.h”
にパッチを当てているですが、パッチを当てるファイルが違うのでしょうか?
(いまのところ、ディスクイメージを書き込んだ後に毎回手でsetenvしている状態です)
yakuhito
2019/6/14 (金) 17:45
以下の確認をお願いします
- 以下のファイルにパッチが正常に適用されているか?
tmp/work/imx8mmevk-poky-linux/u-boot-imx/2018.03-r0/git/include/configs/imx8mm_evk.h
- 以下のファイルで configs/imx8mm_evk.h をインクルードしているか?
(これが無い場合、パッチをあてるファイルの間違い)
tmp/work/imx8mmevk-poky-linux/u-boot-imx/2018.03-r0/build/include/config.h
- 起動メッセージの u-boot のタイムスタンプはビルド時のものになっているか?
また、変更箇所ですが#ifdef で囲まれている部分の多いファイルです。
実際のbuild時に有効となる場所に対して修正を行っているのかご確認下さい。
tkashi
2019/6/18 (火) 11:40
確認しました(u-bootのタイムスタンプが違いました)
返信ありがとうございます。
> - 以下のファイルにパッチが正常に適用されているか?
> tmp/work/imx8mmevk-poky-linux/u-boot-imx/2018.03-r0/git/include/configs/imx8mm_evk.h
パッチは適用されていました。
> - 以下のファイルで configs/imx8mm_evk.h をインクルードしているか?
> (これが無い場合、パッチをあてるファイルの間違い)
> tmp/work/imx8mmevk-poky-linux/u-boot-imx/2018.03-r0/build/include/config.h
これもincludeされていました。
> - 起動メッセージの u-boot のタイムスタンプはビルド時のものになっているか?
なっていませんでした。
image/boot/u-boot-sd-2018.03-r0.binは生成されていましたが、
$bitbake fsl-iamge-qt5-validation-imx
を実行すると、違うu-boot.binが組み込まれているということでしょうか?
--
u-boot=> version
U-Boot 2018.03-imx_v2018.03_4.14.78_1.0.0_ga+g654088c (Nov 28 2018 - 19:15:55 +0000)
--
> また、変更箇所ですが#ifdef で囲まれている部分の多いファイルです。
> 実際のbuild時に有効となる場所に対して修正を行っているのかご確認下さい。
#ifdefで囲まれていない範囲であることを確認しました。
yakuhito
2019/6/20 (木) 11:49
bootで使用するメディアはどのように作成していますか?
bitbake fsl-iamge-qt5-validation-imx -c clean を実施した後に
bitbake fsl-iamge-qt5-validation-imx を実行することで、sdcard.bz2
ファイルは再生成されますが、こちらのu-bootも古いままでしょうか?
tkashi
2019/6/20 (木) 12:58
書き込みはuuu.exeを使用しています
書き込みは、評価ボードのDIPSWでBOOT MODEをDOWNLOAD Modeにしたあとusbを接続、uuu.exeを使用して
fsl-image-qt5-validation-imx-imx8mmevk.sdcardをeMMCに書き込んでいます。
(もしかしてここが間違ってるでしょうか?)
> bitbake fsl-iamge-qt5-validation-imx -c clean を実施した後に
> bitbake fsl-iamge-qt5-validation-imx を実行することで、sdcard.bz2
> ファイルは再生成されますが、こちらのu-bootも古いままでしょうか?
tmp/deploy/images/imx8mmevk/ でu-bootに関係しそうなファイルは以下の通りです。
タイムスタンプとしてはビルドした日付になっています。
--
lrwxrwxrwx 2 tkashi tkashi 24 6月 18 11:25 u-boot-imx8mmevk.bin -> u-boot-sd-2018.03-r0.bin
lrwxrwxrwx 2 tkashi tkashi 24 6月 18 11:25 u-boot-imx8mmevk.bin-sd -> u-boot-sd-2018.03-r0.bin
-rw-r--r-- 2 tkashi tkashi 663909 6月 18 11:25 u-boot-sd-2018.03-r0.bin
lrwxrwxrwx 2 tkashi tkashi 49 6月 18 11:25 u-boot-spl.bin -> u-boot-spl.bin-imx8mmevk-2018.03-r0-sd-2018.03-r0
lrwxrwxrwx 2 tkashi tkashi 49 6月 18 11:25 u-boot-spl.bin-imx8mmevk -> u-boot-spl.bin-imx8mmevk-2018.03-r0-sd-2018.03-r0
-rw-r--r-- 2 tkashi tkashi 90600 6月 18 11:25 u-boot-spl.bin-imx8mmevk-2018.03-r0-sd-2018.03-r0
lrwxrwxrwx 2 tkashi tkashi 49 6月 18 11:25 u-boot-spl.bin-imx8mmevk-sd -> u-boot-spl.bin-imx8mmevk-2018.03-r0-sd-2018.03-r0
lrwxrwxrwx 2 tkashi tkashi 49 6月 18 11:25 u-boot-spl.bin-sd -> u-boot-spl.bin-imx8mmevk-2018.03-r0-sd-2018.03-r0
lrwxrwxrwx 2 tkashi tkashi 24 6月 18 11:25 u-boot.bin -> u-boot-sd-2018.03-r0.bin
lrwxrwxrwx 2 tkashi tkashi 24 6月 18 11:25 u-boot.bin-sd -> u-boot-sd-2018.03-r0.bin
--
以上、よろしくお願いします。
yakuhito
2019/6/20 (木) 17:59
fsl-image-qt5-validation-imx-imx8mmevk.sdcard はSD書き込み用のrawデータです
上記ファイルは、ddコマンドを使用してsdに書き込みを行うディスクイメージファイルとなります。
uuuで書き込みを行う場合はディスクイメージではなくファイルシステムイメージのu-boot-imx8mmevk.bin-sd
を使用して、ご確認ください。
tkashi
2019/6/21 (金) 10:00
u-boot-imx8mmevk.bin-sdではブートしないようです
返信ありがとうございます。
下記ようにuuu.autoを書き換えてu-boot-imx8mmevk.bin-sdを書き込んでみましたが、ブートしないようです。
(確かにbootloaderとして”imx-boot-imx8mmevk-sd.bin-flash_evk”を書いていました。おはずかしい。。。。)
----
uuu_version 1.0.1
SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
# This command will be run when use SPL
SDPU: delay 1000
SDPU: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -offset 0x57c00
SDPU: jump
# This command will be run when ROM support stream mode
SDPS: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
FB: flash -raw2sparse all fsl-image-qt5-validation-imx-imx8mmevk.sdcard
FB: flash bootloader u-boot-imx8mmevk.bin
FB: ucmd mmc partconf ${emmc_dev} 0 1 0
FB: done
----
どうもimx-boot-imx8mmevk-sd.bin-flash_evkにu-bootが含まれているように見えます。
imx-boot-imx8mmevk-sd.bin-flash_evk自体はimx-bootで作られているようなので、
"./tmp/deploy/images/imx8mmevk/imx-boot-toolsmkimage_uboot"を使用して
imx-boot-imx8mmevk-sd.bin-flash_evkを作り直せということでしょうか?
以上、よろしくお願いします。
yakuhito
2019/6/21 (金) 10:45
i.MX_Linux_User's_Guide によると、書き換え時は以下コマンドとなります
説明が不足して申し訳ないです。
4.14.78 の Linux User's Guide では uuu を使用して書き換えを行う手順として
uuu -b emmc_all <bootloader> <rootfs.sdcard>
uuu -b spl <bootloader>
が紹介されています。
最初の例は、emmc 全体の書き換えで第一パーティション/第二パーティションに書き込むrootfs.sdcard の指定の前に、
bootloaderファイルの指定が必要となります。
2番目の例は
The following command executes downloading and bootloader (SPL and U-Boot) by USB:
となっており、SPLとU-Boot を書き換える指定となっています。
今回のトライでeMMCの中身に不整合が発生している可能性もありますので
最初に1番目の例で全パーティションを書き換えを行い、ボードが正常に起動することをご確認下さい。
今後、u-boot に変更を行った場合は2番目の例でSPL/U-BOOT のみ書き換えが行えます。
ブートローダーのみの書き換えは、2番目の例で可能です。
tkashi
2019/6/21 (金) 12:58
u-boot-imx8mmevk.binにはIVTヘッダが含まれていませんでした。
返信ありがとうございます。
uuuを実行してみたところ[Can find validate IVT header]と表示されて書き込みできませんでした。
バイナリエディタで” imx-boot-imx8mmevk-sd.bin-flash_evk”と見比べたところ
確かにIVTヘッダ(Tag=0xD1, Len=0x0020, Ver=0x40)がありませんでした。
----
D:\L4.14.78_1.0.0_ga_images_MX8MMEVK>uuu -b emmc_all u-boot-imx8mmevk.bin fsl-image-qt5-validation-imx-imx8mmevk.sdcard
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.2.0-0-g194351b
Success 0 Failure 1
1:3 1/ 1 [Can find validate IVT header] SDP: boot -f u-boot-imx8mmevk.bin
D:\L4.14.78_1.0.0_ga_images_MX8MMEVK>uuu -b emmc_all imx-boot-imx8mmevk-sd.bin-flash_evk fsl-image-qt5-validation-imx-imx8mmevk.sdcard
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.2.0-0-g194351b
Success 1 Failure 0
1:3 7/ 7 [Done ] FB: done
D:\L4.14.78_1.0.0_ga_images_MX8MMEVK>uuu -b spl u-boot-imx8mmevk.bin
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.2.0-0-g194351b
Success 0 Failure 1
1:3 1/ 1 [Can find validate IVT header] SDP: boot -f u-boot-imx8mmevk.bin
D:\L4.14.78_1.0.0_ga_images_MX8MMEVK>
----
また、ファイルサイズもだいぶ違うようです。
imx-boot-imx8mmevk-sd.bin-flash_evk 1369KB
u-boot-imx8mmevk.bin 649KB
やはりbitbake u-boot-imx以外に実行すべきコマンドがあるのでしょうか?
以上、よろしくお願いします。