meta-digi: dynamically resize EXT4 filesystem to the partition size
https://jira.digi.com/browse/DEL-935 Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
parent
0a7b0619d0
commit
8e8cafb227
|
|
@ -15,6 +15,7 @@ UBOOT_SUFFIX = "imx"
|
|||
MACHINE_FIRMWARE ?= ""
|
||||
MACHINE_FIRMWARE_append = " firmware-imx-vpu-imx6q"
|
||||
|
||||
MACHINE_EXTRA_RDEPENDS += "e2fsprogs e2fsprogs-mke2fs parted"
|
||||
MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}"
|
||||
MACHINE_EXTRA_RRECOMMENDS += "fsl-alsa-plugins"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Busybox version: 1.21.1
|
||||
# Thu Dec 5 12:44:05 2013
|
||||
# Fri Feb 14 15:39:27 2014
|
||||
#
|
||||
CONFIG_HAVE_DOT_CONFIG=y
|
||||
|
||||
|
|
@ -533,8 +533,8 @@ CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
|
|||
CONFIG_REV=y
|
||||
CONFIG_ACPID=y
|
||||
CONFIG_FEATURE_ACPID_COMPAT=y
|
||||
# CONFIG_BLKID is not set
|
||||
# CONFIG_FEATURE_BLKID_TYPE is not set
|
||||
CONFIG_BLKID=y
|
||||
CONFIG_FEATURE_BLKID_TYPE=y
|
||||
CONFIG_DMESG=y
|
||||
CONFIG_FEATURE_DMESG_PRETTY=y
|
||||
CONFIG_FBSET=y
|
||||
|
|
@ -605,27 +605,31 @@ CONFIG_FEATURE_UMOUNT_ALL=y
|
|||
CONFIG_FEATURE_MOUNT_LOOP=y
|
||||
CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
|
||||
# CONFIG_FEATURE_MTAB_SUPPORT is not set
|
||||
# CONFIG_VOLUMEID is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_EXT is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_REISERFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_FAT is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_HFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_JFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_XFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_NILFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_UDF is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_SYSV is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
|
||||
# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
|
||||
CONFIG_VOLUMEID=y
|
||||
|
||||
#
|
||||
# Filesystem/Volume identification
|
||||
#
|
||||
CONFIG_FEATURE_VOLUMEID_EXT=y
|
||||
CONFIG_FEATURE_VOLUMEID_BTRFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_REISERFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_FAT=y
|
||||
CONFIG_FEATURE_VOLUMEID_EXFAT=y
|
||||
CONFIG_FEATURE_VOLUMEID_HFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_JFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_XFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_NILFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_NTFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_ISO9660=y
|
||||
CONFIG_FEATURE_VOLUMEID_UDF=y
|
||||
CONFIG_FEATURE_VOLUMEID_LUKS=y
|
||||
CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
|
||||
CONFIG_FEATURE_VOLUMEID_CRAMFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_ROMFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_SQUASHFS=y
|
||||
CONFIG_FEATURE_VOLUMEID_SYSV=y
|
||||
CONFIG_FEATURE_VOLUMEID_OCFS2=y
|
||||
CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
|
||||
|
||||
#
|
||||
# Miscellaneous Utilities
|
||||
|
|
|
|||
|
|
@ -14,3 +14,10 @@ do_install_append() {
|
|||
rm -f ${D}${sysconfdir}/rc5.d/S99stop-bootlogd
|
||||
rm -f ${D}${sysconfdir}/rcS.d/S07bootlogd
|
||||
}
|
||||
|
||||
do_install_append_ccimx6adpt() {
|
||||
cat >> ${D}${sysconfdir}/default/rcS <<-EOF
|
||||
# Resize EXT4 filesystems to the size of the partition on boot
|
||||
RESIZE_EXT4FS=yes
|
||||
EOF
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
#===============================================================================
|
||||
#
|
||||
# resize-ext4fs.sh
|
||||
#
|
||||
# Copyright (C) 2014 by Digi International Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 as published by
|
||||
# the Free Software Foundation.
|
||||
#
|
||||
#
|
||||
# !Description: Resize EXT4 filesystems to the size of the partition
|
||||
#
|
||||
#===============================================================================
|
||||
|
||||
get_emmc_block_device() {
|
||||
emmc_number="$(sed -ne 's,.*mmcblk\(.\)boot0.*,\1,g;T;p' /proc/partitions)"
|
||||
if [ -b "/dev/mmcblk${emmc_number}" ] &&
|
||||
[ -b "/dev/mmcblk${emmc_number}boot0" ] &&
|
||||
[ -b "/dev/mmcblk${emmc_number}boot1" ] &&
|
||||
[ -b "/dev/mmcblk${emmc_number}rpmb" ]; then
|
||||
echo "/dev/mmcblk${emmc_number}"
|
||||
fi
|
||||
}
|
||||
|
||||
EMMC_BLOCK_DEVICE="$(get_emmc_block_device)"
|
||||
if [ "${RESIZE_EXT4FS}" = "yes" -a -n "${EMMC_BLOCK_DEVICE}" ]; then
|
||||
PARTITIONS="$(blkid | sed -ne "{s,\(^${EMMC_BLOCK_DEVICE}[^:]\+\):.*TYPE=\"ext4\".*,\1,g;T;p}" | sort -u)"
|
||||
for i in ${PARTITIONS}; do
|
||||
if ! resize2fs ${i} 2>/dev/null; then
|
||||
echo "ERROR: resize2fs ${i}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# Copyright (C) 2014 Digi International.
|
||||
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
|
||||
|
||||
SRC_URI += "file://resize-ext4fs.sh"
|
||||
|
||||
inherit update-rc.d
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
install -m 0755 ${WORKDIR}/resize-ext4fs.sh ${D}${sysconfdir}/init.d/
|
||||
}
|
||||
|
||||
INITSCRIPT_NAME = "resize-ext4fs.sh"
|
||||
INITSCRIPT_PARAMS = "start 36 S ."
|
||||
Loading…
Reference in New Issue