brcm2708: add squashfs rootfs image

This patch adds a image with squashfs as the root filesystem.
A rootfs_data partition will be generated on the first boot
and placed inside the rootfs partition (just after the squashfs
image).

advantages:
 - it is possible to migrate from an existing -ext4
   installation and back via sysupgrade.
 - existing partition layout will not be lost.
 - slightly smaller image size.
 - support for attendedsysupgrade

disadvantages:
 - needs f2fs + tools as well. This is because fs-tools decides on the
   blocksize of the sdcard. So either f2fs or ext4 can get choosen as
   the rootfs_data filesystem (depends on the size of the root partition).
 - rootfs_data is placed into the rootfs partition. This makes
   it difficult for tools that expect a /dev/mmc0pX device.
   It also makes it difficult for data recovery tools since they
   might not expect to find a embedded partition or will be
   confused.

For people with existing build configurations: make sure to include mkf2fs
and f2fsck package into the image... Otherwise the new -squashfs image will
boot of a ram-overlay and won't keep the configurations after a reboot.

Cc: Álvaro Fernández Rojas <noltari@gmail.com>
Cc: Paul Spooren <spooren@informatik.uni-leipzig.de>
Cc: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Acked-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Christian Lamparter 2018-03-27 19:42:18 +02:00 committed by John Crispin
parent 8f9baf5e1a
commit 707b6c815b
6 changed files with 19 additions and 7 deletions

View file

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
ARCH:=arm ARCH:=arm
BOARD:=brcm2708 BOARD:=brcm2708
BOARDNAME:=Broadcom BCM27xx BOARDNAME:=Broadcom BCM27xx
FEATURES:=ext4 audio usb usbgadget display gpio fpu FEATURES:=ext4 audio usb usbgadget display gpio fpu squashfs
MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com> MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
SUBTARGETS:=bcm2708 bcm2709 bcm2710 SUBTARGETS:=bcm2708 bcm2709 bcm2710
@ -27,7 +27,8 @@ DEFAULT_PACKAGES += \
kmod-usb-hid \ kmod-usb-hid \
kmod-sound-core kmod-sound-arm-bcm2835 \ kmod-sound-core kmod-sound-arm-bcm2835 \
kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \ kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
brcmfmac-firmware-43430-sdio kmod-brcmfmac wpad-mini brcmfmac-firmware-43430-sdio kmod-brcmfmac wpad-mini \
partx-utils mkf2fs e2fsprogs
KERNELNAME:=Image dtbs KERNELNAME:=Image dtbs

View file

@ -141,6 +141,11 @@ CONFIG_ENABLE_MUST_CHECK=y
CONFIG_EXT4_FS=y CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y
# CONFIG_F2FS_CHECK_FS is not set
CONFIG_F2FS_FS=y
# CONFIG_F2FS_FS_SECURITY is not set
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_STAT_FS=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_BCM2708=y CONFIG_FB_BCM2708=y
CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_COPYAREA=y
@ -342,7 +347,6 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SG_POOL=y CONFIG_SG_POOL=y
CONFIG_SPARSE_IRQ=y CONFIG_SPARSE_IRQ=y
# CONFIG_SQUASHFS is not set
CONFIG_SRCU=y CONFIG_SRCU=y
# CONFIG_STRIP_ASM_SYMS is not set # CONFIG_STRIP_ASM_SYMS is not set
CONFIG_SUSPEND=y CONFIG_SUSPEND=y

View file

@ -155,6 +155,11 @@ CONFIG_ENABLE_MUST_CHECK=y
CONFIG_EXT4_FS=y CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y
# CONFIG_F2FS_CHECK_FS is not set
CONFIG_F2FS_FS=y
# CONFIG_F2FS_FS_SECURITY is not set
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_STAT_FS=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_BCM2708=y CONFIG_FB_BCM2708=y
CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_COPYAREA=y
@ -372,7 +377,6 @@ CONFIG_SG_POOL=y
CONFIG_SMP=y CONFIG_SMP=y
CONFIG_SMP_ON_UP=y CONFIG_SMP_ON_UP=y
CONFIG_SPARSE_IRQ=y CONFIG_SPARSE_IRQ=y
# CONFIG_SQUASHFS is not set
CONFIG_SRCU=y CONFIG_SRCU=y
# CONFIG_STRIP_ASM_SYMS is not set # CONFIG_STRIP_ASM_SYMS is not set
CONFIG_SUSPEND=y CONFIG_SUSPEND=y

View file

@ -160,6 +160,11 @@ CONFIG_ENABLE_MUST_CHECK=y
CONFIG_EXT4_FS=y CONFIG_EXT4_FS=y
CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_EXT4_FS_SECURITY=y CONFIG_EXT4_FS_SECURITY=y
# CONFIG_F2FS_CHECK_FS is not set
CONFIG_F2FS_FS=y
# CONFIG_F2FS_FS_SECURITY is not set
CONFIG_F2FS_FS_XATTR=y
CONFIG_F2FS_STAT_FS=y
CONFIG_FB=y CONFIG_FB=y
CONFIG_FB_BCM2708=y CONFIG_FB_BCM2708=y
CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_COPYAREA=y
@ -388,7 +393,6 @@ CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSE_IRQ=y CONFIG_SPARSE_IRQ=y
# CONFIG_SQUASHFS is not set
CONFIG_SRCU=y CONFIG_SRCU=y
# CONFIG_STRIP_ASM_SYMS is not set # CONFIG_STRIP_ASM_SYMS is not set
CONFIG_SUSPEND=y CONFIG_SUSPEND=y

View file

@ -47,7 +47,6 @@ endef
### Devices ### ### Devices ###
define Device/Default define Device/Default
FILESYSTEMS := ext4
KERNEL := kernel-bin | kernel-img KERNEL := kernel-bin | kernel-img
KERNEL_IMG := kernel.img KERNEL_IMG := kernel.img
IMAGES := sdcard.img.gz IMAGES := sdcard.img.gz

View file

@ -1 +1 @@
dwc_otg.lpm_enable=0 console=serial0,115200 kgdboc=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait dwc_otg.lpm_enable=0 console=serial0,115200 kgdboc=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=squashfs,ext4 rootwait