package/mke2img: add option to specify block size
authorYann E. MORIN <yann.morin.1998@free.fr>
Mon, 3 Jul 2017 22:51:01 +0000 (00:51 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 4 Jul 2017 06:50:40 +0000 (08:50 +0200)
ext filesystems can use a block size of 1024, 2048, or 4096 bytes, the
former being interesting to store small files, while the latter being
more intersting to store bigger files.

So far, we were using the default, which was to use a 1024-byte block.
Continue doing so (for now...).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
fs/ext2/ext2.mk
package/mke2img/mke2img

index 16e14777c3bd45bca92992e77c0304064c0331b8..0d5fc7f118737242d6a3ad3db64aa57292896888 100644 (file)
@@ -12,6 +12,7 @@ EXT2_LABEL := $(subst ",,$(BR2_TARGET_ROOTFS_EXT2_LABEL))
 EXT2_OPTS = \
        -G $(BR2_TARGET_ROOTFS_EXT2_GEN) \
        -R $(BR2_TARGET_ROOTFS_EXT2_REV) \
+       -B 1024 \
        -b $(BR2_TARGET_ROOTFS_EXT2_BLOCKS) \
        -i $(BR2_TARGET_ROOTFS_EXT2_INODES) \
        -I $(BR2_TARGET_ROOTFS_EXT2_EXTRA_INODES) \
index 266df483aacfe4bd85bc6c0d04d5216994c4160d..399012a2bed76e00a45abe07309b91621b13a895 100755 (executable)
@@ -19,9 +19,10 @@ main() {
     rev=1
     nb_extra_inodes=0
 
-    while getopts :hb:i:I:r:d:o:G:R:l:u: OPT; do
+    while getopts :hB:b:i:I:r:d:o:G:R:l:u: OPT; do
         case "${OPT}" in
         h)  help; exit 0;;
+        B)  block_size="${OPTARG}";;
         b)  nb_blocks=${OPTARG};;
         i)  nb_inodes=${OPTARG};;
         I)  nb_extra_inodes=${OPTARG};;
@@ -47,6 +48,11 @@ main() {
     if [ -z "${nb_blocks}" ]; then
         error "you must specify the size of the output image with '-b'\n"
     fi
+    case "${block_size}" in
+    1024|2048|4096) ;; # Sole valid values
+    '') error "you must specify the size of a block with -B\n";;
+    *)  error "invalid block size '%s' (valid: 1024. 2048, 4096)\n" "${block_size}";;
+    esac
     case "${gen}:${rev}" in
     2:0|2:1|3:1|4:1)
         ;;
@@ -91,7 +97,7 @@ main() {
     fi
 
     # Generate the filesystem
-    genext2fs_opts=( -z -b ${nb_blocks} -N ${nb_inodes} -d "${root_dir}" )
+    genext2fs_opts=( -z -B ${block_size} -b ${nb_blocks} -N ${nb_inodes} -d "${root_dir}" )
     if [ -n "${nb_res_blocks}" ]; then
         genext2fs_opts+=( -m ${nb_res_blocks} )
     fi