diff --git a/packages/initramfs/sysutils/busybox-initramfs/install b/packages/initramfs/sysutils/busybox-initramfs/install index edf12c5993..35bfb23c4f 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/install +++ b/packages/initramfs/sysutils/busybox-initramfs/install @@ -31,6 +31,10 @@ mkdir -p $INSTALL/etc touch $INSTALL/etc/fstab ln -sf /proc/self/mounts $INSTALL/etc/mtab + if [ -f $PROJECT_DIR/$PROJECT/initramfs/initramfs.conf ]; then + cp $PROJECT_DIR/$PROJECT/initramfs/initramfs.conf $INSTALL/etc + fi + mkdir -p $INSTALL/dev mkdir -p $INSTALL/proc mkdir -p $INSTALL/sys diff --git a/packages/initramfs/sysutils/busybox-initramfs/scripts/init b/packages/initramfs/sysutils/busybox-initramfs/scripts/init index b5eff1045d..16974a5ee0 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/scripts/init +++ b/packages/initramfs/sysutils/busybox-initramfs/scripts/init @@ -81,6 +81,9 @@ NBD_DEVS="0" nosplash) SPLASH=no ;; + noram) + SYSTEM_TORAM=no + ;; overlay) OVERLAY=yes ;; @@ -458,7 +461,20 @@ NBD_DEVS="0" if [ -f "/flash/$IMAGE_SYSTEM" ]; then # /flash is filesystem with system image file - mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop" + INSTALLED_MEMORY=`cat /proc/meminfo | grep 'MemTotal:' | awk '{print $2}'` + SYSTEM_TORAM_LIMIT=1024000 + + if [ -f "/etc/initramfs.conf" ]; then + . /etc/initramfs.conf + fi + + if [ "$SYSTEM_TORAM" = "no" -o "$INSTALLED_MEMORY" -lt "$SYSTEM_TORAM_LIMIT" ]; then + mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop" + else + cp /flash/$IMAGE_SYSTEM /dev/$IMAGE_SYSTEM + mount_part "/dev/$IMAGE_SYSTEM" "/sysroot" "ro,loop" + fi + /bin/busybox mount --move /flash /sysroot/flash else # /flash is actual root filesystem diff --git a/projects/RPi/initramfs/initramfs.conf b/projects/RPi/initramfs/initramfs.conf new file mode 100644 index 0000000000..c5c70d1494 --- /dev/null +++ b/projects/RPi/initramfs/initramfs.conf @@ -0,0 +1,4 @@ +# min size to support System to RAM +# default for RaspberryPi we set to 356MB (256MB + appr. image size (100MB) ) +# to be sure we have at least 256MB free + SYSTEM_TORAM_LIMIT=364544