On 03/14/2011 07:11 AM, Ben Gardiner wrote:
The ubifs image filenames produced by the ubi and ubifs commands differ.
IMAGE_CMD_ubi produces an interim ubifs image
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ; whereas IMAGE_CMD_ubifs
produces a final ubifs image
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img
This results in the undesirable behaviour then when a user specifies
IMAGE_FSTYPES contains ubifs (as opposed to ubi) they get a broken link
${DEPLOY_DIR_IMAGE}/${ROOTFS_IMAGE}-${MACHINE}.ubifs pointing to the
non-existant ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs
Fix the discrepancy by making the IMAGE_CMD_ubifs also produce the
.rootfs.ubifs target like the IMAGE_CMD_ubi does and preserve the old
.ubifs.img filename as a link for backwards compatibility.
So, wait. What's the problem here? If you do IMAGE_FSTYPES="ubifs" you
get the interim image which isn't useful normally but is useful if
you're doing volume management outside of the provided build targets.
It's not however a valid rootfs target since it can't be used as is. I
think what's missing here is just a comment to the effect that most
people do not want 'ubifs' and they do want 'ubi' as we provide ubifs
for advanced usages.
Signed-off-by: Ben Gardiner<[email protected]>
CC: Tom Rini<[email protected]>
CC: Koen Kooi<[email protected]>
CC: Denys Dmytriyenko<[email protected]>
---
Please also consider this patch for inclusion into the 2011.03-maintenance
branch and into arago-oe-dev
Just as a general comment, I don't want combined requests for
2011.03-maintenance but do feel free to make the request as soon as it
hits a mainline tree (and you've done the relevant testing on
2011.03-maintenance).
The reason I want to be able to address the ubifs image -- and
not the UBI image -- is because I am trying to produce a UBI image from a
a different ubinize config file which will contain both rootfs and
kernel volumes.
I am trying to accomplish this by creating a recipe which depends on the
rootfs and kernel images we use. This recipe needs to synthesize the image
file path, but without this patch it isn't simple since the link
${DEPLOY_DIR_IMAGE}/${ROOTFS_IMAGE}-${MACHINE}.ubifs is broken.
So, this is a valid use case (which I was spelling out above, before I
got down here). but I think you're using the wrong variables. There
should be something that maps over to ${IMAGE_NAME}.ubifs.img
---
conf/bitbake.conf | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 903b9b7..49c4263 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -404,7 +404,7 @@ IMAGE_CMD_cpio.xz = "type cpio>/dev/null; cd
${IMAGE_ROOTFS}&& (find . | cpio
IMAGE_CMD_cpio.gz.u-boot = "type cpio>/dev/null; cd ${IMAGE_ROOTFS}&& (find . | cpio
-o -H newc | gzip -c -9>${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz) ${EXTRA_IMAGECMD}; mkimage
-A ${UBOOT_ARCH} -O linux -T ramdisk -C gzip -n ${IMAGE_NAME} -d
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz.u-boot"
IMAGE_CMD_cpio.lzma = "type cpio>/dev/null; cd ${IMAGE_ROOTFS}&& (find . | cpio -o
-H newc | lzma -c ${LZMA_COMPRESSION_LEVEL}>${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.lzma)
${EXTRA_IMAGECMD}"
IMAGE_CMD_ubi = "echo \[ubifs\]> ubinize.cfg ; echo mode=ubi>> ubinize.cfg ; echo
image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs>> ubinize.cfg ; echo vol_id=0>> ubinize.cfg ; echo
vol_type=dynamic>> ubinize.cfg ; echo vol_name=${UBI_VOLNAME}>> ubinize.cfg ; echo vol_flags=autoresize>>
ubinize.cfg;mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}&& ubinize -o
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${UBINIZE_ARGS} ubinize.cfg"
-IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img ${MKUBIFS_ARGS}"
+IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}; rm -f
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img; ln -sf
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs
${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img"
EXTRA_IMAGECMD = ""
EXTRA_IMAGECMD_jffs2 = ""
--
Tom Rini
Mentor Graphics Corporation
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel