mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 08:30:47 -09:00
fs/erofs: add custom compression option with optional compress-hints file
Add another option for FS compression that allows fine-grained control using a list of algorithms and optional compress-hints file. This way multiple algorithms and pcluster sizes can be used for different files, fully exposing EROFS compression abilities. Signed-off-by: Jan Čermák <sairon@sairon.cz> Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
committed by
Arnout Vandecappelle
parent
39aec97630
commit
a02e437417
@@ -22,6 +22,10 @@ choice
|
|||||||
slower both in compression and decompression, and higher
|
slower both in compression and decompression, and higher
|
||||||
compression levels can have noticeable memory requirements.
|
compression levels can have noticeable memory requirements.
|
||||||
|
|
||||||
|
Custom compression allows for advanced configuration of the
|
||||||
|
compression algorithms, and adds the possibility of
|
||||||
|
finegrained per-file compression using compression hints.
|
||||||
|
|
||||||
config BR2_TARGET_ROOTFS_EROFS_NONE
|
config BR2_TARGET_ROOTFS_EROFS_NONE
|
||||||
bool "no compression"
|
bool "no compression"
|
||||||
|
|
||||||
@@ -31,6 +35,9 @@ config BR2_TARGET_ROOTFS_EROFS_LZ4HC
|
|||||||
config BR2_TARGET_ROOTFS_EROFS_LZMA
|
config BR2_TARGET_ROOTFS_EROFS_LZMA
|
||||||
bool "lzma"
|
bool "lzma"
|
||||||
|
|
||||||
|
config BR2_TARGET_ROOTFS_EROFS_CUSTOM_COMPRESSION
|
||||||
|
bool "custom"
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
if BR2_TARGET_ROOTFS_EROFS_LZ4HC
|
if BR2_TARGET_ROOTFS_EROFS_LZ4HC
|
||||||
@@ -58,6 +65,35 @@ config BR2_TARGET_ROOTFS_EROFS_LZMA_LEVEL
|
|||||||
|
|
||||||
endif # BR2_TARGET_ROOTFS_EROFS_LZMA
|
endif # BR2_TARGET_ROOTFS_EROFS_LZMA
|
||||||
|
|
||||||
|
if BR2_TARGET_ROOTFS_EROFS_CUSTOM_COMPRESSION
|
||||||
|
|
||||||
|
config BR2_TARGET_ROOTFS_EROFS_COMPRESSION_ALGORITHMS
|
||||||
|
string "compression algorithms"
|
||||||
|
default "lz4hc,12"
|
||||||
|
help
|
||||||
|
Specify arbitrary compression option, useful in combination
|
||||||
|
with compression hints. Individual algorithms are separated
|
||||||
|
by colon with optional level, e.g. "lz4hc,12:lzma".
|
||||||
|
See erofs-utils documentaion for detailed information.
|
||||||
|
|
||||||
|
config BR2_TARGET_ROOTFS_EROFS_COMPRESSION_HINTS
|
||||||
|
string "path to compression hints file"
|
||||||
|
default ""
|
||||||
|
help
|
||||||
|
Path to file containing compression hints. Each line in the
|
||||||
|
file is defined by tokens separated by spaces in the
|
||||||
|
following form. Optionally, instead of the given primary
|
||||||
|
algorithm, algorithms can be specified with zero-based
|
||||||
|
algorithm-index explicitly:
|
||||||
|
|
||||||
|
<pcluster-size-in-bytes> [algorithm-index] <match-pattern>
|
||||||
|
|
||||||
|
match-patterns are extended regular expressions, matched
|
||||||
|
against absolute paths within the output filesystem, with no
|
||||||
|
leading /.
|
||||||
|
|
||||||
|
endif # BR2_TARGET_ROOTFS_EROFS_LZMA
|
||||||
|
|
||||||
config BR2_TARGET_ROOTFS_EROFS_DEDUPE
|
config BR2_TARGET_ROOTFS_EROFS_DEDUPE
|
||||||
bool "enable data deduplication"
|
bool "enable data deduplication"
|
||||||
depends on !BR2_TARGET_ROOTFS_EROFS_NONE
|
depends on !BR2_TARGET_ROOTFS_EROFS_NONE
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ ifeq ($(BR2_TARGET_ROOTFS_EROFS_LZ4HC),y)
|
|||||||
ROOTFS_EROFS_ARGS += -zlz4hc,$(BR2_TARGET_ROOTFS_EROFS_LZ4HC_LEVEL)
|
ROOTFS_EROFS_ARGS += -zlz4hc,$(BR2_TARGET_ROOTFS_EROFS_LZ4HC_LEVEL)
|
||||||
else ifeq ($(BR2_TARGET_ROOTFS_EROFS_LZMA),y)
|
else ifeq ($(BR2_TARGET_ROOTFS_EROFS_LZMA),y)
|
||||||
ROOTFS_EROFS_ARGS += -zlzma,$(BR2_TARGET_ROOTFS_EROFS_LZMA_LEVEL)
|
ROOTFS_EROFS_ARGS += -zlzma,$(BR2_TARGET_ROOTFS_EROFS_LZMA_LEVEL)
|
||||||
|
else ifeq ($(BR2_TARGET_ROOTFS_EROFS_CUSTOM_COMPRESSION),y)
|
||||||
|
ROOTFS_EROFS_ARGS += -z$(strip $(BR2_TARGET_ROOTFS_EROFS_COMPRESSION_ALGORITHMS))
|
||||||
|
ifneq ($(strip $(BR2_TARGET_ROOTFS_EROFS_COMPRESSION_HINTS)),)
|
||||||
|
ROOTFS_EROFS_ARGS += --compress-hints $(strip $(BR2_TARGET_ROOTFS_EROFS_COMPRESSION_HINTS))
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BR2_REPRODUCIBLE),y)
|
ifeq ($(BR2_REPRODUCIBLE),y)
|
||||||
|
|||||||
Reference in New Issue
Block a user