Skip to content

Commit

Permalink
fs/squashfs: Add block size option
Browse files Browse the repository at this point in the history
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@cosmos-ink.net>
[yann.morin.1998@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@free.fr>
  • Loading branch information
LinusCDE authored and yann-morin-1998 committed May 17, 2022
1 parent 1386336 commit 555f8df
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
50 changes: 50 additions & 0 deletions fs/squashfs/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 4 additions & 1 deletion fs/squashfs/squashfs.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 555f8df

Please sign in to comment.