From: Yann E. MORIN Date: Thu, 28 Dec 2017 10:40:31 +0000 (+0100) Subject: fs/ubifs: spin-off ubi to be its own filesystem X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9fc21664e850f0999c4aa358235ab2b73f4bfb60;p=buildroot.git fs/ubifs: spin-off ubi to be its own filesystem Currently, the ubifs-in-ubi-image ("UBI image" thereafter) filesystem is half an option of the ubifs filesystem, half a filesystem on its own: the config options are options of the ubifs filesystem, but the .mk code is in a separate .mk and registers a real filesystem. Make it a full filesystem on its own, in its own directory tree. Signed-off-by: "Yann E. MORIN" Cc: Thomas Petazzoni Signed-off-by: Thomas Petazzoni --- diff --git a/fs/Config.in b/fs/Config.in index 51ccf28169..c25b01c3de 100644 --- a/fs/Config.in +++ b/fs/Config.in @@ -11,6 +11,7 @@ source "fs/jffs2/Config.in" source "fs/romfs/Config.in" source "fs/squashfs/Config.in" source "fs/tar/Config.in" +source "fs/ubi/Config.in" source "fs/ubifs/Config.in" source "fs/yaffs2/Config.in" diff --git a/fs/ubi/Config.in b/fs/ubi/Config.in new file mode 100644 index 0000000000..5fa2f1f61d --- /dev/null +++ b/fs/ubi/Config.in @@ -0,0 +1,51 @@ +config BR2_TARGET_ROOTFS_UBI + bool "ubi image containing an ubifs root filesystem" + select BR2_TARGET_ROOTFS_UBIFS + help + Build an ubi image from the ubifs one (with ubinize). + +if BR2_TARGET_ROOTFS_UBI + +config BR2_TARGET_ROOTFS_UBI_PEBSIZE + hex "physical eraseblock size" + default 0x20000 + help + Tells ubinize the physical eraseblock (PEB) size of the + flash chip the ubi image is created for. The value provided + here is passed to the -p/--peb-size option of ubinize. + +config BR2_TARGET_ROOTFS_UBI_SUBSIZE + int "sub-page size" + default 512 + help + Tells ubinize that the flash supports sub-pages and the sub-page + size. Use 0 if sub-pages are not supported on flash chip. + The value provided here is passed to the -s/--sub-page-size + option of ubinize. + +config BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG + bool "Use custom config file" + help + Select this option to use a custom ubinize configuration file, + rather than the default configuration used by Buildroot (which + defines a single dynamic volume marked as auto-resize). Passing + a custom ubinize configuration file allows you to create several + volumes, specify volume types, etc. + + As a convenience, buildroot replaces the string + "BR2_ROOTFS_UBIFS_PATH" with the path to the built ubifs file. + So the volume defined for the root filesystem can specify the + image path as: image=BR2_ROOTFS_UBIFS_PATH + +config BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG + help + Path to the ubinize configuration file. + +config BR2_TARGET_ROOTFS_UBI_OPTS + string "Additional ubinize options" + help + Any additional ubinize options you may want to include. + +endif # BR2_TARGET_ROOTFS_UBI diff --git a/fs/ubi/ubi.mk b/fs/ubi/ubi.mk new file mode 100644 index 0000000000..b71a555efb --- /dev/null +++ b/fs/ubi/ubi.mk @@ -0,0 +1,32 @@ +################################################################################ +# +# Embed the ubifs image into an ubi image +# +################################################################################ + +UBI_UBINIZE_OPTS := -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE) +UBI_UBINIZE_OPTS += -p $(BR2_TARGET_ROOTFS_UBI_PEBSIZE) +ifneq ($(BR2_TARGET_ROOTFS_UBI_SUBSIZE),0) +UBI_UBINIZE_OPTS += -s $(BR2_TARGET_ROOTFS_UBI_SUBSIZE) +endif + +UBI_UBINIZE_OPTS += $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_OPTS)) + +ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs + +ifeq ($(BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG),y) +UBINIZE_CONFIG_FILE_PATH = $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE)) +else +UBINIZE_CONFIG_FILE_PATH = fs/ubi/ubinize.cfg +endif + +# don't use sed -i as it misbehaves on systems with SELinux enabled when this is +# executed through fakeroot (see #9386) +define ROOTFS_UBI_CMD + sed 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' \ + $(UBINIZE_CONFIG_FILE_PATH) > $(BUILD_DIR)/ubinize.cfg + $(HOST_DIR)/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg + rm $(BUILD_DIR)/ubinize.cfg +endef + +$(eval $(call ROOTFS_TARGET,ubi)) diff --git a/fs/ubi/ubinize.cfg b/fs/ubi/ubinize.cfg new file mode 100644 index 0000000000..b0aace7b9f --- /dev/null +++ b/fs/ubi/ubinize.cfg @@ -0,0 +1,8 @@ +[ubifs] +mode=ubi +vol_id=0 +vol_type=dynamic +vol_name=rootfs +vol_alignment=1 +vol_flags=autoresize +image=BR2_ROOTFS_UBIFS_PATH diff --git a/fs/ubifs/Config.in b/fs/ubifs/Config.in index ff604c5c38..e79ab9a17e 100644 --- a/fs/ubifs/Config.in +++ b/fs/ubifs/Config.in @@ -95,55 +95,4 @@ config BR2_TARGET_ROOTFS_UBIFS_OPTS help Any additional mkfs.ubifs options you may want to include. -config BR2_TARGET_ROOTFS_UBI - bool "Embed into an UBI image" - help - Build an ubi image from the ubifs one (with ubinize). - -if BR2_TARGET_ROOTFS_UBI - -config BR2_TARGET_ROOTFS_UBI_PEBSIZE - hex "physical eraseblock size" - default 0x20000 - help - Tells ubinize the physical eraseblock (PEB) size of the - flash chip the ubi image is created for. The value provided - here is passed to the -p/--peb-size option of ubinize. - -config BR2_TARGET_ROOTFS_UBI_SUBSIZE - int "sub-page size" - default 512 - help - Tells ubinize that the flash supports sub-pages and the sub-page - size. Use 0 if sub-pages are not supported on flash chip. - The value provided here is passed to the -s/--sub-page-size - option of ubinize. - -config BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG - bool "Use custom config file" - help - Select this option to use a custom ubinize configuration file, - rather than the default configuration used by Buildroot (which - defines a single dynamic volume marked as auto-resize). Passing - a custom ubinize configuration file allows you to create several - volumes, specify volume types, etc. - - As a convenience, buildroot replaces the string - "BR2_ROOTFS_UBIFS_PATH" with the path to the built ubifs file. - So the volume defined for the root filesystem can specify the - image path as: image=BR2_ROOTFS_UBIFS_PATH - -config BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE - string "Configuration file path" - depends on BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG - help - Path to the ubinize configuration file. - -config BR2_TARGET_ROOTFS_UBI_OPTS - string "Additional ubinize options" - help - Any additional ubinize options you may want to include. - -endif # BR2_TARGET_ROOTFS_UBI - endif # BR2_TARGET_ROOTFS_UBIFS diff --git a/fs/ubifs/ubi.mk b/fs/ubifs/ubi.mk deleted file mode 100644 index 2baece5fb0..0000000000 --- a/fs/ubifs/ubi.mk +++ /dev/null @@ -1,32 +0,0 @@ -################################################################################ -# -# Embed the ubifs image into an ubi image -# -################################################################################ - -UBI_UBINIZE_OPTS := -m $(BR2_TARGET_ROOTFS_UBIFS_MINIOSIZE) -UBI_UBINIZE_OPTS += -p $(BR2_TARGET_ROOTFS_UBI_PEBSIZE) -ifneq ($(BR2_TARGET_ROOTFS_UBI_SUBSIZE),0) -UBI_UBINIZE_OPTS += -s $(BR2_TARGET_ROOTFS_UBI_SUBSIZE) -endif - -UBI_UBINIZE_OPTS += $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_OPTS)) - -ROOTFS_UBI_DEPENDENCIES = rootfs-ubifs - -ifeq ($(BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG),y) -UBINIZE_CONFIG_FILE_PATH = $(call qstrip,$(BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE)) -else -UBINIZE_CONFIG_FILE_PATH = fs/ubifs/ubinize.cfg -endif - -# don't use sed -i as it misbehaves on systems with SELinux enabled when this is -# executed through fakeroot (see #9386) -define ROOTFS_UBI_CMD - sed 's;BR2_ROOTFS_UBIFS_PATH;$@fs;' \ - $(UBINIZE_CONFIG_FILE_PATH) > $(BUILD_DIR)/ubinize.cfg - $(HOST_DIR)/sbin/ubinize -o $@ $(UBI_UBINIZE_OPTS) $(BUILD_DIR)/ubinize.cfg - rm $(BUILD_DIR)/ubinize.cfg -endef - -$(eval $(call ROOTFS_TARGET,ubi)) diff --git a/fs/ubifs/ubinize.cfg b/fs/ubifs/ubinize.cfg deleted file mode 100644 index b0aace7b9f..0000000000 --- a/fs/ubifs/ubinize.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[ubifs] -mode=ubi -vol_id=0 -vol_type=dynamic -vol_name=rootfs -vol_alignment=1 -vol_flags=autoresize -image=BR2_ROOTFS_UBIFS_PATH