aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/base-files
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2015-07-14 07:39:10 +0000
committerJohn Crispin <blogic@openwrt.org>2015-07-14 07:39:10 +0000
commit29547a4f3120b90b978526d3691e474c58c37532 (patch)
tree4025dcd5a6c7368b98e8e9d33896ac9c6dd1d303 /target/linux/brcm2708/base-files
parentc6912b7718809fed392bd183a65db27b68fe80de (diff)
downloadmaster-187ad058-29547a4f3120b90b978526d3691e474c58c37532.tar.gz
master-187ad058-29547a4f3120b90b978526d3691e474c58c37532.tar.bz2
master-187ad058-29547a4f3120b90b978526d3691e474c58c37532.zip
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 <br1@einfach.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46347 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm2708/base-files')
-rw-r--r--target/linux/brcm2708/base-files/lib/preinit/79_move_config18
-rw-r--r--target/linux/brcm2708/base-files/lib/upgrade/platform.sh17
2 files changed, 35 insertions, 0 deletions
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
+}