From 365b48a036f370f6b5d56a1c4f794c06b3f90a95 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Mon, 23 Nov 2015 07:14:38 +0000 Subject: [PATCH] CC: brcm2708: Add sysupgrade support for Raspberry Pi Also create .gz images if configured to do so. This is equivalent, but different to what we have in trunk, as the image creation has been rewritten there. Signed-off-by: Bruno Randolf SVN-Revision: 47604 --- .../base-files/lib/preinit/79_move_config | 18 ++++++++++++++++++ .../base-files/lib/upgrade/platform.sh | 17 +++++++++++++++++ target/linux/brcm2708/image/Makefile | 3 +++ 3 files changed, 38 insertions(+) create mode 100644 target/linux/brcm2708/base-files/lib/preinit/79_move_config create mode 100644 target/linux/brcm2708/base-files/lib/upgrade/platform.sh diff --git a/target/linux/brcm2708/base-files/lib/preinit/79_move_config b/target/linux/brcm2708/base-files/lib/preinit/79_move_config new file mode 100644 index 0000000000..7bcea7bf6f --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/preinit/79_move_config @@ -0,0 +1,18 @@ +#!/bin/sh +# Copyright (C) 2015 OpenWrt.org + +BOOTPART=/dev/mmcblk0p1 + +move_config() { + if [ -b $BOOTPART ]; then + insmod nls_cp437 + insmod nls_iso8859-1 + insmod fat + insmod vfat + mount -t vfat -o rw,noatime $BOOTPART /mnt + [ -f /mnt/sysupgrade.tgz ] && mv -f /mnt/sysupgrade.tgz / + umount /mnt + fi +} + +boot_hook_add preinit_mount_root move_config diff --git a/target/linux/brcm2708/base-files/lib/upgrade/platform.sh b/target/linux/brcm2708/base-files/lib/upgrade/platform.sh new file mode 100644 index 0000000000..3e1ee0067c --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/upgrade/platform.sh @@ -0,0 +1,17 @@ +platform_check_image() { + # i know no way to verify the image + return 0; +} + +platform_do_upgrade() { + sync + get_image "$1" | dd of=/dev/mmcblk0 bs=2M conv=fsync + sleep 1 +} + +platform_copy_config() { + mount -t vfat -o rw,noatime /dev/mmcblk0p1 /mnt + cp -af "$CONF_TAR" /mnt/ + sync + umount /mnt +} diff --git a/target/linux/brcm2708/image/Makefile b/target/linux/brcm2708/image/Makefile index e70bdd04d8..633ed88005 100644 --- a/target/linux/brcm2708/image/Makefile +++ b/target/linux/brcm2708/image/Makefile @@ -28,6 +28,9 @@ define Image/Build/RaspberryPi mcopy -i $(KDIR)/boot.img $(KDIR)/Image ::kernel.img # Copy OpenWrt built kernel ./gen_rpi_sdcard_img.sh $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img $(KDIR)/boot.img $(KDIR)/root.$(1) \ $(CONFIG_BRCM2708_SD_BOOT_PARTSIZE) $(CONFIG_TARGET_ROOTFS_PARTSIZE) + ifneq ($(CONFIG_TARGET_IMAGES_GZIP),) + gzip -9n -c $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img > $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img.gz + endif endef define Image/Build -- 2.30.2