Skip to contentSkip to conversation

Align final ROOTFS_SIZE after checking if base_size...

PATCH Superseded Andrei Gherzan 2 participants 3 messages Sep 10, 2012 – Sep 11, 2012

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover Align final ROOTFS_SIZE after checking if base_size...

... is greater then IMAGE_ROOTFS_SIZE

The following changes since commit 0f55a5868457300a3defc7fa7451ef191d19e018:

adt-installer: Allow changing YOCTOADT_REPO (2012-09-05 23:28:10 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ag/rootfs_size
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ag/rootfs_size

Andrei Gherzan (1):
image_types.bbclass: Round up ROOTFS_SIZE after base_size check

 meta/classes/image_types.bbclass |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 image_types.bbclass: Round up ROOTFS_SIZE after base_size check

If we round up ROOTFS_SIZE to IMAGE_ROOTFS_ALIGNMENT before checking if base_size is greater then IMAGE_ROOTFS_SIZE, we can end up adding an unaligned value to IMAGE_ROOTFS_SIZE. Obviously, if IMAGE_ROOTFS_EXTRA_SPACE was overwritten with an unaligned value. So let's add the round up code after the base_size calculus and it's comparison.

---
 meta/classes/image_types.bbclass |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
meta/classes/image_types.bbclass +6 -2
index d286eea..0bd7a6f 100644
@@ -82,9 +82,13 @@ runimagecmd () {
 	# The base_size gets calculated:
 	#  - initial size determined by `du -ks` of the IMAGE_ROOTFS
 	#  - then multiplied by the IMAGE_OVERHEAD_FACTOR
-	#  - then rounded up to IMAGE_ROOTFS_ALIGNMENT
 	#  - finally tested against IMAGE_ROOTFS_SIZE
-	ROOTFS_SIZE=`du -ks ${IMAGE_ROOTFS}|awk '{base_size = $1 * ${IMAGE_OVERHEAD_FACTOR} + ${IMAGE_ROOTFS_ALIGNMENT} - 1; base_size -= base_size % ${IMAGE_ROOTFS_ALIGNMENT}; print ((base_size > ${IMAGE_ROOTFS_SIZE} ? base_size : ${IMAGE_ROOTFS_SIZE}) + ${IMAGE_ROOTFS_EXTRA_SPACE}) }'`
+	ROOTFS_SIZE=`du -ks ${IMAGE_ROOTFS}|awk '{base_size = $1 * ${IMAGE_OVERHEAD_FACTOR}; print ((base_size > ${IMAGE_ROOTFS_SIZE} ? base_size : ${IMAGE_ROOTFS_SIZE}) + ${IMAGE_ROOTFS_EXTRA_SPACE}) }'`
+
+	# Round up ROOTFS_SIZE to IMAGE_ROOTFS_ALIGNMENT
+	ROOTFS_SIZE=`expr ${ROOTFS_SIZE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1`
+	ROOTFS_SIZE=`expr ${ROOTFS_SIZE} - ${ROOTFS_SIZE} % ${IMAGE_ROOTFS_ALIGNMENT}`
+
 	${cmd}
 	# Now create the needed compressed versions
 	cd ${DEPLOY_DIR_IMAGE}/
Signature · 1 line
1.7.9.5
#2 lore raw

Re: [PATCH 1/1] image_types.bbclass: Round up ROOTFS_SIZE after base_size check

Quoted 19 lines · Andrei Gherzan

If we round up ROOTFS_SIZE to IMAGE_ROOTFS_ALIGNMENT before checking if base_size is greater then IMAGE_ROOTFS_SIZE, we can end up adding an unaligned value to IMAGE_ROOTFS_SIZE. Obviously, if IMAGE_ROOTFS_EXTRA_SPACE was overwritten with an unaligned value. So let's add the round up code after the base_size calculus and it's comparison.

---
  meta/classes/image_types.bbclass |    8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)
meta/classes/image_types.bbclass +0 -0
index d286eea..0bd7a6f 100644
@@ -82,9 +82,13 @@ runimagecmd () {
  	# The base_size gets calculated:
  	#  - initial size determined by `du -ks` of the IMAGE_ROOTFS

meta/classes/image_types.bbclass runimagecmd () { · line 91

Quoted 10 lines
meta/classes/image_types.bbclass +6 -2
  	#  - then multiplied by the IMAGE_OVERHEAD_FACTOR
-	#  - then rounded up to IMAGE_ROOTFS_ALIGNMENT
  	#  - finally tested against IMAGE_ROOTFS_SIZE
-	ROOTFS_SIZE=`du -ks ${IMAGE_ROOTFS}|awk '{base_size = $1 * ${IMAGE_OVERHEAD_FACTOR} + ${IMAGE_ROOTFS_ALIGNMENT} - 1; base_size -= base_size % ${IMAGE_ROOTFS_ALIGNMENT}; print ((base_size > ${IMAGE_ROOTFS_SIZE} ? base_size : ${IMAGE_ROOTFS_SIZE}) + ${IMAGE_ROOTFS_EXTRA_SPACE}) }'`
+	ROOTFS_SIZE=`du -ks ${IMAGE_ROOTFS}|awk '{base_size = $1 * ${IMAGE_OVERHEAD_FACTOR}; print ((base_size > ${IMAGE_ROOTFS_SIZE} ? base_size : ${IMAGE_ROOTFS_SIZE}) + ${IMAGE_ROOTFS_EXTRA_SPACE}) }'`
+
+	# Round up ROOTFS_SIZE to IMAGE_ROOTFS_ALIGNMENT
+	ROOTFS_SIZE=`expr ${ROOTFS_SIZE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1`
+	ROOTFS_SIZE=`expr ${ROOTFS_SIZE} - ${ROOTFS_SIZE} % ${IMAGE_ROOTFS_ALIGNMENT}`
+

I saw a new expr failure on rootfs this morning testing with this patch, I have to dig into it to figure out what went wrong.

Sau!

Quoted 4 lines
meta/classes/image_types.bbclass +0 -0
  	${cmd}
  	# Now create the needed compressed versions
  	cd ${DEPLOY_DIR_IMAGE}/