2024-05-22 01:24 AM - edited 2024-05-22 07:52 AM
Hi, I am trying to create an image for writing to NAND memory.
The problem is that when generating a TSV file using Yocto, I get a layout without a bootfs partition.
In this case, it is unclear how to load the Linux kernel and the DeviceTree.
Can someone explain to me why the bootfs is excluded from the image layout file (TSV) and how to handle this situation?
I can try to add this file to the image, but I am confused because this partition is missing even in the examples.
Maybe there's a reason for this that I'm not aware of.
I would greatly appreciate any help.
Solved! Go to Solution.
2024-05-22 06:21 AM - edited 2024-05-22 06:24 AM
@Piratkin ,
In your U-Boot console, can you give the output of :
U-boot $> ls ubi ubi0:boot
U-boot $> ls ubi ubi0:rootfs /boot
Kind regards,
Erwan.
2024-05-22 06:34 AM - edited 2024-05-22 10:43 PM
I've checked this several times when testing the image.
The /boot directory is present, but it's empty.
I'm using the same script to create the image, slightly modified for my needs, but there can't be an error in it since I've compared the fragments included in the image.
Moreover, there's only one UBIFS image, so it's quite straightforward.
It seems like there should be a separate bootfs partition in the image, but there isn't.
The documentation linked specifies that bootfs should be included in multivolume.ubifs (the contents of bootfs and not itself, of course).
However, bootfs.ubi is created but not used, which looks like a bug or an error.
Otherwise, it doesn't make sense to create this image:
st-image-boot-test-stm32mp135d-20240522072918_nand_4_256.bootfs.ubi
2024-05-22 07:03 AM - edited 2024-05-23 05:47 AM
I've looked through the whole rootfs and there are no boot files and yes, I've checked /boot too
2024-05-23 12:48 AM
Hello @Piratkin ,
I just take back the files that are generated on OpenSTLinux v5, thanks to yocto, and just to compare with what you can see on your side :
The st-image-weston-openstlinux-weston-stm32mp1_nand_4_256_multivolume.ubi generated and present in the TSV file is the analog of your test-image-stm32mp135d_nand_4_256_multivolume.ubi.
When I check the content of this file :
PC $> ubireader_extract_images ./st-image-weston-openstlinux-weston-stm32mp1_nand_4_256_multivolume.ubi
PC $> cd ubifs-root/
PC $> cd st-image-weston-openstlinux-weston-stm32mp1_nand_4_256_multivolume.ubi/
PC $> ubireader_extract_files img-697060950_vol-boot.ubifs
PC $> cd ubifs-root/
PC $> ls
Output :
boot.scr.uimg stm32mp135f-dk.dtb stm32mp157c-ev1.dtb stm32mp157f-dk2-m4-examples.dtb
mmc0_extlinux stm32mp157a-dk1.dtb stm32mp157c-ev1-m4-examples.dtb stm32mp157f-ed1.dtb
mmc1_extlinux stm32mp157a-ev1.dtb stm32mp157d-dk1-a7-examples.dtb stm32mp157f-ev1-a7-examples.dtb
nand0_extlinux stm32mp157c-dk2-a7-examples.dtb stm32mp157d-dk1.dtb stm32mp157f-ev1.dtb
splash_landscape.bmp stm32mp157c-dk2.dtb stm32mp157d-dk1-m4-examples.dtb stm32mp157f-ev1-m4-examples.dtb
splash_portrait.bmp stm32mp157c-dk2-m4-examples.dtb stm32mp157d-ev1.dtb uImage
st-image-resize-initrd stm32mp157c-ed1.dtb stm32mp157f-dk2-a7-examples.dtb
stm32mp135f-dk-a7-examples.dtb stm32mp157c-ev1-a7-examples.dtb stm32mp157f-dk2.dtb
So it seems that all the information are well placed. I will check which part of Yocto do it so you can clearly compare with the normal situation.
Kind regards,
Erwan.
2024-05-23 04:48 AM
@Piratkin ,
Can you show me the content of this file that you have in your subfolder ?
ubinize_nand_4_256_multivolume-test-image-stm32mp135d.cfg
Regards,
Erwan.
2024-05-23 05:31 AM
You are right, the files can be extracted, so they must be in the multivolume.rootfs.ubi image.
I probably made a mistake somewhere.
Thank you for your support!!!
2024-05-23 05:34 AM
@Piratkin ,
No problem, I hope that you will find the root cause. Do not hesitate to share a little word here if you find it.
Kind regards,
Erwan.
2024-05-23 05:44 AM
Yes, of course, here it is:
[stm32mp135d]$ cat ubinize_nand_4_256_multivolume-test-image-stm32mp135d-20240523113348.cfg
[U-Boot-env-1]
mode=ubi
vol_id=0
vol_type=dynamic
vol_name=uboot_config
vol_size=256KiB
[U-Boot-env-2]
mode=ubi
vol_id=1
vol_type=dynamic
vol_name=uboot_config_r
vol_size=256KiB
[st-image-bootfs]
mode=ubi
image=/yocto/build/tmp/deploy/images/stm32mp135d/st-image-bootfs-test-stm32mp135d-20240523113348_nand_4_256.bootfs.ubifs
vol_id=2
vol_type=dynamic
vol_name=boot
vol_size=67840KiB
[st-image-vendorfs]
mode=ubi
image=/yocto/build/tmp/deploy/images/stm32mp135d/st-image-vendorfs-test-stm32mp135d-20240523113348_nand_4_256.vendorfs.ubifs
vol_id=3
vol_type=dynamic
vol_name=vendorfs
vol_size=18688KiB
[ubifs]
mode=ubi
image=/yocto/build/tmp/work/stm32mp135d-test-linux-gnueabi/test-image/1.0-r0/deploy-test-image-image-complete/test-image-stm32mp135d-20240523113348_nand_4_256.rootfs.ubifs
vol_id=4
vol_type=dynamic
vol_name=rootfs
vol_size=1754368KiB
[st-image-userfs]
mode=ubi
image=/yocto/build/tmp/deploy/images/stm32mp135d/st-image-userfs-test-stm32mp135d-20240523113348_nand_4_256.userfs.ubifs
vol_id=5
vol_type=dynamic
vol_name=userfs
vol_flags=autoresize