Author: blogic
Date: 2015-07-14 09:39:10 +0200 (Tue, 14 Jul 2015)
New Revision: 46347

Added:
   trunk/target/linux/brcm2708/base-files/lib/preinit/79_move_config
   trunk/target/linux/brcm2708/base-files/lib/upgrade/
   trunk/target/linux/brcm2708/base-files/lib/upgrade/platform.sh
Modified:
   trunk/target/linux/brcm2708/Makefile
   trunk/target/linux/brcm2708/image/Makefile
Log:
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 <[email protected]>

Modified: trunk/target/linux/brcm2708/Makefile
===================================================================
--- trunk/target/linux/brcm2708/Makefile        2015-07-14 07:38:47 UTC (rev 
46346)
+++ trunk/target/linux/brcm2708/Makefile        2015-07-14 07:39:10 UTC (rev 
46347)
@@ -19,7 +19,7 @@
 KERNEL_PATCHVER:=3.18
 
 include $(INCLUDE_DIR)/target.mk
-DEFAULT_PACKAGES += brcm2708-gpu-fw kmod-usb-hid kmod-sound-core 
kmod-sound-arm-bcm2835
+DEFAULT_PACKAGES += brcm2708-gpu-fw kmod-usb-hid kmod-sound-core 
kmod-sound-arm-bcm2835 kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1
 
 define Target/Description
        Build firmware image for Broadcom BCM2708/BCM2709 SoC devices.

Added: trunk/target/linux/brcm2708/base-files/lib/preinit/79_move_config
===================================================================
--- trunk/target/linux/brcm2708/base-files/lib/preinit/79_move_config           
                (rev 0)
+++ trunk/target/linux/brcm2708/base-files/lib/preinit/79_move_config   
2015-07-14 07:39:10 UTC (rev 46347)
@@ -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

Added: trunk/target/linux/brcm2708/base-files/lib/upgrade/platform.sh
===================================================================
--- trunk/target/linux/brcm2708/base-files/lib/upgrade/platform.sh              
                (rev 0)
+++ trunk/target/linux/brcm2708/base-files/lib/upgrade/platform.sh      
2015-07-14 07:39:10 UTC (rev 46347)
@@ -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
+}

Modified: trunk/target/linux/brcm2708/image/Makefile
===================================================================
--- trunk/target/linux/brcm2708/image/Makefile  2015-07-14 07:38:47 UTC (rev 
46346)
+++ trunk/target/linux/brcm2708/image/Makefile  2015-07-14 07:39:10 UTC (rev 
46347)
@@ -40,6 +40,9 @@
 define Build/sdcard-img
        ./gen_rpi_sdcard_img.sh $@ [email protected] $(word 2,$^) \
                $(CONFIG_BRCM2708_SD_BOOT_PARTSIZE) 
$(CONFIG_TARGET_ROOTFS_PARTSIZE)
+  ifneq ($(CONFIG_TARGET_IMAGES_GZIP),)
+       gzip -k -f9 $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img
+  endif
 endef
 
 ### Device macros ###
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to