add sysupgrade script for config preserving system upgrades. only implemented for...
[openwrt.git] / target / linux / x86-2.6 / base-files / default / lib / upgrade / platform.sh
diff --git a/target/linux/x86-2.6/base-files/default/lib/upgrade/platform.sh b/target/linux/x86-2.6/base-files/default/lib/upgrade/platform.sh
new file mode 100644 (file)
index 0000000..ffd0b93
--- /dev/null
@@ -0,0 +1,27 @@
+platform_check_image() {
+       [ "$ARGC" -gt 1 ] && return 1
+
+       case "$(get_magic_word "$1")" in
+               48eb) return 0;;
+               *)
+                       echo "Invalid image type"
+                       return 1
+               ;;
+       esac
+}
+
+platform_do_upgrade() {
+       get_image "$1" > /dev/hda
+       sync
+}
+
+x86_prepare_ext2() {
+       # if we're running from ext2, we need to make sure that we have a mtd 
+       # partition that points to the active rootfs partition.
+       # however this only matters if we actually need to preserve the config files
+       [ "$SAVE_CONFIG" -eq 1 ] && return 0
+       grep rootfs /proc/mtd >/dev/null || {
+               echo /dev/hda2,65536,rootfs > /sys/module/block2mtd/parameters/block2mtd
+       }
+}
+append sysupgrade_pre_upgrade x86_prepare_ext2