config TARGET_ROOTFS_SECURITY_LABELS
bool
select KERNEL_SQUASHFS_XATTR
+ select KERNEL_EROFS_FS_SECURITY
select KERNEL_EXT4_FS_SECURITY
select KERNEL_F2FS_FS_SECURITY
select KERNEL_UBIFS_FS_SECURITY
comment "Root filesystem images"
+ menuconfig TARGET_ROOTFS_EROFS
+ bool "erofs"
+ default y if USES_EROFS
+ select KERNEL_EROFS_FS
+ help
+ Build a EROFS root filesystem.
+
+ config TARGET_EROFS_PCLUSTER_SIZE
+ int "physical cluster size (in KiB)"
+ depends on TARGET_ROOTFS_EROFS
+ default 64 if LOW_MEMORY_FOOTPRINT
+ default 1024 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
+ default 256
+ help
+ Specify the EROFS physical cluster size (must be equal
+ to or a multiple of the filesystem block size).
+
menuconfig TARGET_ROOTFS_EXT4FS
bool "ext4"
default y if USES_EXT4
Say Y here if you want to make the kernel to be able to boot off a
BTRFS partition.
+config KERNEL_EROFS_FS
+ bool "Compile the kernel with built-in EROFS support"
+ help
+ Say Y here if you want to make the kernel to be able to boot off a
+ EROFS partition.
+
+config KERNEL_EROFS_FS_XATTR
+ bool "EROFS XATTR support"
+
+config KERNEL_EROFS_FS_ZIP
+ bool
+ default y if KERNEL_EROFS_FS
+
+config KERNEL_EROFS_FS_ZIP_LZMA
+ bool
+ default y if KERNEL_EROFS_FS
+
menu "Filesystem ACL and attr support options"
config USE_FS_ACL_ATTR
bool "Use filesystem ACL and attr support by default"
select KERNEL_FS_POSIX_ACL
default y if USE_FS_ACL_ATTR
+ config KERNEL_EROFS_FS_POSIX_ACL
+ bool "Enable POSIX ACL for EROFS Filesystems"
+ select KERNEL_FS_POSIX_ACL
+ default y if USE_FS_ACL_ATTR
+
config KERNEL_EXT4_FS_POSIX_ACL
bool "Enable POSIX ACL for Ext4 Filesystems"
select KERNEL_FS_POSIX_ACL
default "lockdown,yama,loadpin,safesetid,integrity,selinux"
depends on KERNEL_SECURITY_SELINUX
+config KERNEL_EROFS_FS_SECURITY
+ bool "EROFS Security Labels"
+ default y if !SMALL_FLASH
+ select KERNEL_EROFS_FS_XATTR
+
config KERNEL_EXT4_FS_SECURITY
bool "Ext4 Security Labels"
default y if !SMALL_FLASH
JFFS2_BLOCKSIZE ?= 64k 128k
+EROFS_PCLUSTERSIZE := $(shell echo $$(($(CONFIG_TARGET_EROFS_PCLUSTER_SIZE)*1024)))
+EROFSOPT := -C$(EROFS_PCLUSTERSIZE)
+EROFSOPT += -Efragments,dedupe,ztailpacking -Uclear --all-root
+EROFSOPT += $(if $(SOURCE_DATE_EPOCH),-T$(SOURCE_DATE_EPOCH) --ignore-mtime)
+EROFSOPT += $(if $(CONFIG_SELINUX),,-x-1)
+EROFSCOMP := lz4hc,12
+ifeq ($(CONFIG_EROFS_FS_ZIP_LZMA),y)
+EROFSCOMP := lzma,109
+endif
+
fs-types-$(CONFIG_TARGET_ROOTFS_SQUASHFS) += squashfs
fs-types-$(CONFIG_TARGET_ROOTFS_JFFS2) += $(addprefix jffs2-,$(JFFS2_BLOCKSIZE))
fs-types-$(CONFIG_TARGET_ROOTFS_JFFS2_NAND) += $(addprefix jffs2-nand-,$(NAND_BLOCKSIZE))
fs-types-$(CONFIG_TARGET_ROOTFS_EXT4FS) += ext4
fs-types-$(CONFIG_TARGET_ROOTFS_UBIFS) += ubifs
+fs-types-$(CONFIG_TARGET_ROOTFS_EROFS) += erofs
fs-subtypes-$(CONFIG_TARGET_ROOTFS_JFFS2) += $(addsuffix -raw,$(addprefix jffs2-,$(JFFS2_BLOCKSIZE)))
TARGET_FILESYSTEMS := $(fs-types-y)
$@ $(call mkfs_target_dir,$(1))/
endef
+# Don't use the mkfs.erofs builtin $SOURCE_DATE_EPOCH behavior
+define Image/mkfs/erofs
+ env -u SOURCE_DATE_EPOCH $(STAGING_DIR_HOST)/bin/mkfs.erofs -z$(EROFSCOMP) $(EROFSOPT) \
+ $@ $(call mkfs_target_dir,$(1))
+endef
+
define Image/Manifest
$(if $(CONFIG_USE_APK), \
$(call apk,$(TARGET_DIR_ORIG)) list --quiet --manifest --no-network \
/^dt$/ and $ret .= "\tselect USES_DEVICETREE\n";
/^dt-overlay$/ and $ret .= "\tselect HAS_DT_OVERLAY_SUPPORT\n";
/^emmc$/ and $ret .= "\tselect EMMC_SUPPORT\n";
+ /^erofs$/ and $ret .= "\tselect USES_EROFS\n";
/^ext4$/ and $ret .= "\tselect USES_EXT4\n";
/^fpu$/ and $ret .= "\tselect HAS_FPU\n";
/^gpio$/ and $ret .= "\tselect GPIO_SUPPORT\n";
config USES_EXT4
bool
+config USES_EROFS
+ bool
+
config USES_TARGZ
bool
CONFIG_EPOLL=y
# CONFIG_EQUALIZER is not set
# CONFIG_EROFS_FS is not set
+# CONFIG_EROFS_FS_DEBUG is not set
+# CONFIG_EROFS_FS_XATTR is not set
+# CONFIG_EROFS_FS_POSIX_ACL is not set
+# CONFIG_EROFS_FS_SECURITY is not set
+# CONFIG_EROFS_FS_BACKED_BY_FILE is not set
+# CONFIG_EROFS_FS_ZIP is not set
+# CONFIG_EROFS_FS_ZIP_DEFLATE is not set
+# CONFIG_EROFS_FS_ZIP_ZSTD is not set
+# CONFIG_EROFS_FS_ONDEMAND is not set
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
# CONFIG_ET131X is not set
CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set
CONFIG_EPOLL=y
# CONFIG_EQUALIZER is not set
# CONFIG_EROFS_FS is not set
+# CONFIG_EROFS_FS_DEBUG is not set
+# CONFIG_EROFS_FS_XATTR is not set
+# CONFIG_EROFS_FS_POSIX_ACL is not set
+# CONFIG_EROFS_FS_SECURITY is not set
+# CONFIG_EROFS_FS_ZIP is not set
+# CONFIG_EROFS_FS_ZIP_DEFLATE is not set
+# CONFIG_EROFS_FS_ONDEMAND is not set
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_EROFS_FS_PCPU_KTHREAD_HIPRI=y
# CONFIG_ET131X is not set
CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set