apm821xx: replace recovery image for the MBL with initramfs

The patch "images: bump default rootfs size to 256 MB"
a1f83bad60 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>
This commit is contained in:
Christian Lamparter 2016-10-07 20:29:03 +02:00 committed by Felix Fietkau
parent 4104613fae
commit 4fc48a8cf2
4 changed files with 3 additions and 118 deletions

View 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

View File

@ -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

View 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

View 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