[Buildroot] [git commit] fs/squashfs: Add block size option
Yann E. MORIN
yann.morin.1998 at free.fr
Tue May 17 05:51:18 UTC 2022
commit: https://git.buildroot.net/buildroot/commit/?id=555f8dfd6ef893463ce19d5ee242afd6b83cb450
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master
One advantage of squashfs over similar technologies is the support for
bigger block sizes. However the default size is not a lot bigger
(typically 128k if no `-b` flag specified).
This patch adds the ability to select from common block sizes
which for example can aid in improving compression ratio.
Signed-off-by: Linus Kaschulla <linus at cosmos-ink.net>
[yann.morin.1998 at free.fr:
- drop spurious boolean-based setting in .mk
- split into multi-line
- qstrip variable expansion
]
Signed-off-by: Yann E. MORIN <yann.morin.1998 at free.fr>
---
fs/squashfs/Config.in | 50 +++++++++++++++++++++++++++++++++++++++++++++++++
fs/squashfs/squashfs.mk | 5 ++++-
2 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/fs/squashfs/Config.in b/fs/squashfs/Config.in
index 70d4a20cf0..341e50a08c 100644
--- a/fs/squashfs/Config.in
+++ b/fs/squashfs/Config.in
@@ -5,6 +5,56 @@ config BR2_TARGET_ROOTFS_SQUASHFS
if BR2_TARGET_ROOTFS_SQUASHFS
+choice
+ prompt "block size"
+ default BR2_TARGET_ROOTFS_SQUASHFS_BS_128K
+ help
+ Data block size. Bigger values can improve
+ compression ratio.
+
+ If unsure, leave at 128k (default).
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_4K
+ bool "4k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_8K
+ bool "8k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_16K
+ bool "16k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_32K
+ bool "32k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_64K
+ bool "64k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_128K
+ bool "128k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_256K
+ bool "256k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_512K
+ bool "512k"
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS_1024K
+ bool "1024k"
+
+endchoice
+
+config BR2_TARGET_ROOTFS_SQUASHFS_BS
+ string
+ default "4K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_4K
+ default "8K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_84K
+ default "16K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_16K
+ default "32K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_32K
+ default "64K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_64K
+ default "128K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_128K
+ default "256K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_256K
+ default "512K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_512K
+ default "1024K" if BR2_TARGET_ROOTFS_SQUASHFS_BS_1024K
+
config BR2_TARGET_ROOTFS_SQUASHFS_PAD
bool "pad to a 4K boundary"
default y # legacy was always ON
diff --git a/fs/squashfs/squashfs.mk b/fs/squashfs/squashfs.mk
index 7a5e3e313e..2148bb4494 100644
--- a/fs/squashfs/squashfs.mk
+++ b/fs/squashfs/squashfs.mk
@@ -6,7 +6,10 @@
ROOTFS_SQUASHFS_DEPENDENCIES = host-squashfs
-ROOTFS_SQUASHFS_ARGS = -noappend -processors $(PARALLEL_JOBS)
+ROOTFS_SQUASHFS_ARGS = \
+ -noappend \
+ -processors $(PARALLEL_JOBS) \
+ -b $(call qstrip,$(BR2_TARGET_ROOTFS_SQUASHFS_BS))
ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS_PAD),)
ROOTFS_SQUASHFS_ARGS += -nopad
More information about the buildroot
mailing list