[Buildroot] [PATCH v5 4/5] fs/ext2: Add BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS option

Arnout Vandecappelle arnout at mind.be
Tue Jul 4 17:39:50 UTC 2017



On 04-07-17 16:47, Samuel Martin wrote:
> From: Sébastien Szymanski <sebastien.szymanski at armadeus.com>
> 
> This option lets the user specify mke2fs options and/or ext2/3/4
> features.
> 
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski at armadeus.com>
> Signed-off-by: Samuel Martin <s.martin49 at gmail.com>
> Cc: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> 
> ---
> changes v4->v5:
> - turn the options to accept any mke2fs options, not only ext2/3/4
>   features (Arnout)
> - add explaination for the default value for this new option (Arnout)
> 
> changes v3->v4:
> - none
> 
> changes v2->v3:
> - none
> 
> changes v1->v2:
> - rebase
> ---
>  fs/ext2/Config.in | 17 +++++++++++++++++
>  fs/ext2/ext2.mk   |  5 ++++-
>  2 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/ext2/Config.in b/fs/ext2/Config.in
> index b2363940f0..9bbeb797a5 100644
> --- a/fs/ext2/Config.in
> +++ b/fs/ext2/Config.in
> @@ -67,6 +67,23 @@ config BR2_TARGET_ROOTFS_EXT2_RESBLKS
>  	  Traditionally, this has been 5%, and all ext-related tools still
>  	  default to reserving 5% when creating a new ext filesystem.
>  
> +config BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS
> +	string "additional mke2fs options"
> +	default "-O ^64bit"
> +	help
> +	  Specify a space-separated list of mke2fs options, including any
> +	  ext2/3/4 filesystem features.
> +
> +	  For more information about the mke2fs option, see the manual page

 Lines should be wrapped at 72 columns, where tab counts for 8, so 62
significant characters.

> +	  mke2fs(8).
> +
> +	  For more information about the ext2/3/4 features which can be set,
> +	  see then manual page ext4(5).
> +
> +	  The defaults disables the 64bit ext2/3/4 filesystem support since
> +	  its has been enable lately in 2017 in uboot, so most of the uboot
> +	  versions do not support it yet.

 Replace:
	  The default is "-O ^64bit", i.e. disable the 64-bit filesystem.
	  This is chosen because U-Boot versions before 2017.02 don't
	  support that filesystem option, which may render the system
	  unbootable if it is used.

 BTW, on reading the ext4 man page, I doubt this is needed at all:

       64bit
              Enables the file system to be larger than 2^32 blocks.  This
feature is set automatically, as needed, but it can be  useful  to  specify
this  feature explicitly  if the file system might need to be resized larger
than 2^32 blocks, even if it was smaller than that threshold when it was
originally created.  Note that some older kernels and older versions of
e2fsprogs will not support file systems with this ext4 feature enabled.

In other words, unless you create a filesystem larger than 4TB, this option
wouldn't be set anyway...

 But OK, it doesn't hurt to have this default I guess.

 Sébastien, could you comment?


 Regards,
 Arnout


> +
>  choice
>  	prompt "Compression method"
>  	default BR2_TARGET_ROOTFS_EXT2_NONE
> diff --git a/fs/ext2/ext2.mk b/fs/ext2/ext2.mk
> index c8da9c4451..a4c4a7b3d3 100644
> --- a/fs/ext2/ext2.mk
> +++ b/fs/ext2/ext2.mk
> @@ -9,6 +9,8 @@ ifeq ($(BR2_TARGET_ROOTFS_EXT)-$(EXT2_SIZE),y-)
>  $(error BR2_TARGET_ROOTFS_EXT2_SIZE cannot be empty)
>  endif
>  
> +EXT2_MKFS_OPTS = $(call qstrip,$(BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS))
> +
>  # qstrip results in stripping consecutive spaces into a single one. So the
>  # variable is not qstrip-ed to preserve the integrity of the string value.
>  EXT2_LABEL := $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_LABEL))
> @@ -19,7 +21,8 @@ EXT2_OPTS = \
>  	-r $(BR2_TARGET_ROOTFS_EXT2_REV) \
>  	-N $(BR2_TARGET_ROOTFS_EXT2_INODES) \
>  	-m $(BR2_TARGET_ROOTFS_EXT2_RESBLKS) \
> -	-L "$(EXT2_LABEL)"
> +	-L "$(EXT2_LABEL)" \
> +	$(EXT2_MKFS_OPTS)
>  
>  ROOTFS_EXT2_DEPENDENCIES = host-e2fsprogs
>  
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list