apm821xx: replace recovery image for the MBL with initramfs
authorChristian Lamparter <chunkeey@googlemail.com>
Fri, 7 Oct 2016 18:29:03 +0000 (20:29 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 13 Oct 2016 15:04:33 +0000 (17:04 +0200)
The patch "images: bump default rootfs size to 256 MB"
a1f83bad606411a561e8e60110c71232b1a28aa2 caused a crash
during boot for the recovery images. This is because
both variants of the MyBook Live only have 256MB of RAM
and for the recovery option, the ext4 rootfs was simply
stored in the RAMDISK.

This patch replaces recovery image for the MBL with an
initramfs kernel.

In order to boot the initramfs (for recovery or development):

0. copy the initramfs and device tree into tftp's server directory
   # cp *-initramfs-kernel.bin to /tftp-server/mbl.bin
   # cp *-ext4-kernel.dtb to /tftp-server/fdt.bin

1. Connect the MyBook Live (Duo) serial port.
   (Warning! Use a 3.3v level shifter).

2. Hit Enter during u-boot and insert these three lines:
   # setenv serverip 192.168.1.254; setenv ipaddr 192.168.1.1;
   # tftp ${kernel_addr_r} mbl.bin; tftp ${fdt_addr_r} fdt.bin
   # run addtty addmisc; bootm ${kernel_addr_r} - ${fdt_addr_r}

   Where 192.168.1.254 is your TFTP server.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
target/linux/apm821xx/image/Makefile
target/linux/apm821xx/image/mbl_gen_recovery_tar.sh [deleted file]
target/linux/apm821xx/sata/config-default
target/linux/apm821xx/sata/target.mk

index 607df061f14a172c39e5d60e2eb197612e20c9f7..fb1705e93abe877d5a6e7a0ebaed526319810048 100644 (file)
@@ -196,24 +196,6 @@ define Build/hdd-img
        $(if $(CONFIG_TARGET_IMAGES_GZIP),gzip -9n -c $@ > $(BIN_DIR)/$(notdir $@).gz)
 endef
 
-define Build/uRamdisk
-       $(STAGING_DIR_HOST)/bin/mkimage \
-               -A powerpc -T ramdisk -C gzip \
-               -n "$(DEVICE_NAME) rootfs" \
-               -d $@ $@.new
-       mv $@.new $@
-endef
-
-define Build/recovery-tar
-       sh ./mbl_gen_recovery_tar.sh \
-               --profile $(DEVICE_PROFILE) \
-               --dtb $(IMAGE_KERNEL).dtb \
-               --dtbname $(DEVICE_DTB) \
-               --kernel $(IMAGE_KERNEL) \
-               --rootfs $@ \
-               $@
-endef
-
 define Build/export-dtb
        cp $(IMAGE_KERNEL).dtb $@
 endef
@@ -223,13 +205,13 @@ define Device/MyBookLiveDefault
   BLOCKSIZE := 1k
   DTB_SIZE := 16384
   KERNEL := kernel-bin | dtb | gzip | uImage gzip
+  KERNEL_INITRAMFS := kernel-bin | dtb | gzip | uImage gzip
   BOOT_SIZE := 8
-  IMAGES := rootfs.img recovery.tar kernel.dtb
+  IMAGES := rootfs.img kernel.dtb
   DEVICE_DTB := apollo3g.dtb
   FILESYSTEMS := ext4
   IMAGE/kernel.dtb := export-dtb
   IMAGE/rootfs.img := boot-script | boot-img | hdd-img
-  IMAGE/recovery.tar := append-rootfs | gzip | uRamdisk | recovery-tar
 endef
 
 define Device/MyBookLiveSingle
diff --git a/target/linux/apm821xx/image/mbl_gen_recovery_tar.sh b/target/linux/apm821xx/image/mbl_gen_recovery_tar.sh
deleted file mode 100644 (file)
index f871aef..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-
-# based on scripts/sysupgrade-nand.sh
-
-profile=""
-dtb=""
-dtbname=""
-kernel=""
-rootfs=""
-outfile=""
-err=""
-
-while [ "$1" ]; do
-       case "$1" in
-       "--profile")
-               profile="$2"
-               shift
-               shift
-               continue
-               ;;
-       "--dtb")
-               dtb="$2"
-               shift
-               shift
-               continue
-               ;;
-       "--dtbname")
-               dtbname="$2"
-               shift
-               shift
-               continue
-               ;;
-       "--kernel")
-               kernel="$2"
-               shift
-               shift
-               continue
-               ;;
-       "--rootfs")
-               rootfs="$2"
-               shift
-               shift
-               continue
-               ;;
-       *)
-               if [ ! "$outfile" ]; then
-                       outfile=$1
-                       shift
-                       continue
-               else
-                       shift
-                       continue
-               fi
-               ;;
-       esac
-done
-
-if [ -z "$profile" -o ! -r "$dtb" -o ! -r "$kernel" -o ! -r "$rootfs" -o ! "$outfile" ]; then
-       echo "syntax: $0 [--profile profilename] [--dtb dtbimage] [--dtbname dtbname] [--kernel kernelimage] [--rootfs rootfs] out"
-       exit 1
-fi
-
-tmpdir="$( mktemp -d 2> /dev/null )"
-if [ -z "$tmpdir" ]; then
-       # try OSX signature
-       tmpdir="$( mktemp -t 'roottmp' -d )"
-fi
-
-if [ -z "$tmpdir" ]; then
-       exit 1
-fi
-
-mkdir -p "${tmpdir}/${profile}"
-[ -z "${dtb}" ] || cp "${dtb}" "${tmpdir}/${profile}/${dtbname}"
-[ -z "${rootfs}" ] || cp "${rootfs}" "${tmpdir}/${profile}/uRamdisk"
-[ -z "${kernel}" ] || cp "${kernel}" "${tmpdir}/${profile}/uImage"
-
-mtime=""
-if [ -n "$SOURCE_DATE_EPOCH" ]; then
-       mtime="--mtime=@${SOURCE_DATE_EPOCH}"
-fi
-
-(cd "$tmpdir"; tar cvf ${profile}.tar ${profile} ${mtime})
-err="$?"
-if [ -e "$tmpdir/${profile}.tar" ]; then
-       cp "$tmpdir/${profile}.tar" "$outfile"
-else
-       err=2
-fi
-rm -rf "$tmpdir"
-
-exit $err
index 5abc105350b79361f88578755c94856d49335bf6..b8342de0498d6cd6cd7037d01fc5bd90dab0f12f 100644 (file)
@@ -17,7 +17,6 @@ CONFIG_SATA_DWC=y
 CONFIG_EXT4_FS=y
 CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_DEV_RAM=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIO_GENERIC=y
 CONFIG_GPIO_GENERIC_PLATFORM=y
@@ -26,9 +25,6 @@ CONFIG_LEDS_TRIGGER_DISK=y
 CONFIG_BLK_DEV_DM=y
 CONFIG_BLK_DEV_DM_BUILTIN=y
 CONFIG_BLK_DEV_MD=y
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
 CONFIG_MD=y
 CONFIG_MD_AUTODETECT=y
 # CONFIG_MD_LINEAR is not set
@@ -37,7 +33,6 @@ CONFIG_MD_RAID0=y
 CONFIG_MD_RAID1=y
 # CONFIG_MD_RAID10 is not set
 # CONFIG_MD_RAID456 is not set
-CONFIG_BLK_DEV_RAM_SIZE=50331648
 CONFIG_PPC_EARLY_DEBUG=y
 CONFIG_PPC_EARLY_DEBUG_44x=y
 # CONFIG_PPC_EARLY_DEBUG_MEMCONS is not set
index c652fe40eb6c95ccd5a9d978923a1e5b0e640d96..1c7856828c4a50d205a0d2552b81b2a3be6486ca 100644 (file)
@@ -1,5 +1,5 @@
 BOARDNAME := Devices which boot from SATA (NAS)
-FEATURES += ext4 usb
+FEATURES += ext4 usb ramdisk
 DEFAULT_PACKAGES += badblocks block-mount e2fsprogs \
                    kmod-dm kmod-md-mod partx-utils