From 2de791010247a33b38ab05bd6fbfb6ef72c13578 Mon Sep 17 00:00:00 2001 From: John Crispin Date: Tue, 14 Jul 2015 07:39:10 +0000 Subject: brcm2708: Implement sysupgrade Implement sysupgrade for Raspberry Pi, similar to the way it is done on x86: The config files are saved in the boot partition and moved to where they are normally expected in preinit. Also add optional gzip compression for the SD card image, since this can save a lot of space (76M vs 6M), also similar to x86. Signed-off-by: Bruno Randolf SVN-Revision: 46347 --- .../brcm2708/base-files/lib/preinit/79_move_config | 18 ++++++++++++++++++ .../linux/brcm2708/base-files/lib/upgrade/platform.sh | 17 +++++++++++++++++ 2 files changed, 35 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 (limited to 'target/linux/brcm2708/base-files/lib') 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 +} -- cgit v1.2.3