|
@@ -0,0 +1,89 @@
|
|
|
+From: blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
|
|
|
+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 <br1@einfach.org>
|
|
|
+
|
|
|
+git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46347 3c298f89-4303-0410-b956-a3cf2f4a3e73
|
|
|
+
|
|
|
+diff --git a/target/linux/brcm2708/Makefile b/target/linux/brcm2708/Makefile
|
|
|
+index 30f6e1d..015aa9c 100644
|
|
|
+--- a/target/linux/brcm2708/Makefile
|
|
|
++++ b/target/linux/brcm2708/Makefile
|
|
|
+@@ -19,7 +19,7 @@ SUBTARGETS:=bcm2708 bcm2709
|
|
|
+ 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.
|
|
|
+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 0000000..7bcea7b
|
|
|
+--- /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 0000000..3e1ee00
|
|
|
+--- /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 e70bdd0..0dd7b7d 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 -k -f9 $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img
|
|
|
++ endif
|
|
|
+ endef
|
|
|
+
|
|
|
+ define Image/Build
|