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:
parent
4104613fae
commit
4fc48a8cf2
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue