On Tue, Dec 5, 2017 at 3:27 PM, Saul Wold <s...@linux.intel.com> wrote: > The f2fs filesystem is a newer flash filesystem that is available in > meta-filesystems. This needs a minimum sized blank space to operate > in correctly. > > The f2fs has overprovision functionality and when building smaller > filesystems, you actually need more space, therefore under 500M (or so) > double the amount of space needed in order to handle the overprovision > functions in f2fs. > > Signed-off-by: Saul Wold <s...@linux.intel.com> > --- > meta/classes/image_types.bbclass | 21 +++++++++++++++++++++ > 1 file changed, 21 insertions(+) > > diff --git a/meta/classes/image_types.bbclass > b/meta/classes/image_types.bbclass > index d09d1277eaa..aaba1073a08 100644 > --- a/meta/classes/image_types.bbclass > +++ b/meta/classes/image_types.bbclass > @@ -218,6 +218,24 @@ IMAGE_CMD_ubi () { > > IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o > ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}" > > +MKF2FS_ARGS = "" > +FIX_F2FS_SIZE ?= "524288" > +IMAGE_CMD_f2fs () { > + # We need to add additional smarts here form devices smaller than > 1.5G > + # Need to scale appropriately between 40M -> 1.5G as the > "overprovision > + # ratio" goes down as the device gets bigger (70% -> 4.5%), below > about > + # 500M the standard IMAGE_OVERHEAD_FACTOR does not work, so add > additional > + # space here when under 500M > + size=${ROOTFS_SIZE} > + if [ ${size} -lt ${FIX_F2FS_SIZE} ] ; then > + size=`expr ${size}*2` > + bbwarn "Rootfs size is too small for F2FS. Filesystem will be > extended to ${size}K" > + fi > + dd if=/dev/zero > of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.f2fs count=${size} > bs=1024
The equivalent dd command in oe_mkext234fs() creates a sparse file. Any reason not to do so here (and in IMAGE_CMD_btrfs()) ? > + mkfs.f2fs ${MKF2FS_ARGS} > ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.f2fs > + sload.f2fs -f ${IMAGE_ROOTFS} > ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.f2fs > +} > + > EXTRA_IMAGECMD = "" > > inherit siteinfo kernel-arch > @@ -231,6 +249,7 @@ EXTRA_IMAGECMD_ext3 ?= "-i 4096" > EXTRA_IMAGECMD_ext4 ?= "-i 4096" > EXTRA_IMAGECMD_btrfs ?= "-n 4096" > EXTRA_IMAGECMD_elf ?= "" > +EXTRA_IMAGECMD_f2fs ?= "" This probably doesn't need to be defined (since IMAGE_CMD_f2fs() uses MKF2FS_ARGS to pass custom arguments, rather than using EXTRA_IMAGECMD as the other image commands do) ? > do_image_jffs2[depends] += "mtd-utils-native:do_populate_sysroot" > do_image_cramfs[depends] += "util-linux-native:do_populate_sysroot" > @@ -246,6 +265,7 @@ do_image_elf[depends] += > "virtual/kernel:do_populate_sysroot mkelfimage-native:d > do_image_ubi[depends] += "mtd-utils-native:do_populate_sysroot" > do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot" > do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot" > +do_image_f2fs[depends] += "f2fs-tools-native:do_populate_sysroot" > > # This variable is available to request which values are suitable for > IMAGE_FSTYPES > IMAGE_TYPES = " \ > @@ -264,6 +284,7 @@ IMAGE_TYPES = " \ > elf \ > wic wic.gz wic.bz2 wic.lzma \ > container \ > + f2fs \ > " > > # Compression is a special case of conversion. The old variable > -- > 2.13.6 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core