brcm2708: add sysupgrade support
This commit is contained in:
parent
3335fc6c53
commit
cee83c60c0
2
modules
2
modules
@ -8,7 +8,7 @@ PACKAGES_OPENWRT_COMMIT=62037ba35fda4ae07e89c33946f229da2a941d47
|
||||
PACKAGES_OPENWRT_BRANCH=for-15.05
|
||||
|
||||
PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git
|
||||
PACKAGES_GLUON_COMMIT=7d11ce79ed17c83afffc8395e8d21554a8d1f1a5
|
||||
PACKAGES_GLUON_COMMIT=5f0c86212d33d7c285197c67d288af4872d44d51
|
||||
|
||||
PACKAGES_ROUTING_REPO=git://github.com/openwrt-routing/packages.git
|
||||
PACKAGES_ROUTING_COMMIT=6c78c2ac2cb9ec3be25e68b1cef7b2e2e0e4a346
|
||||
|
89
patches/openwrt/0016-brcm2708-Implement-sysupgrade.patch
Normal file
89
patches/openwrt/0016-brcm2708-Implement-sysupgrade.patch
Normal file
@ -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
|
@ -1,21 +0,0 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Fri, 10 Jul 2015 18:41:11 +0200
|
||||
Subject: brcm2708: respect CONFIG_TARGET_IMAGES_GZIP
|
||||
|
||||
As the brcm2708 images use ext4, they will be huge when uncompressed.
|
||||
|
||||
diff --git a/target/linux/brcm2708/image/Makefile b/target/linux/brcm2708/image/Makefile
|
||||
index e70bdd0..be667f3 100644
|
||||
--- a/target/linux/brcm2708/image/Makefile
|
||||
+++ b/target/linux/brcm2708/image/Makefile
|
||||
@@ -28,6 +28,10 @@ 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 -f9 $(BIN_DIR)/$(IMG_PREFIX)-sdcard-vfat-$(1).img
|
||||
+ endif
|
||||
endef
|
||||
|
||||
define Image/Build
|
@ -1,4 +1,4 @@
|
||||
$(eval $(call GluonProfile,RaspberryPi))
|
||||
$(eval $(call GluonProfileFactorySuffix,RaspberryPi,-vfat-ext4,.img.gz))
|
||||
$(eval $(call GluonProfileSysupgradeSuffix,RaspberryPi))
|
||||
$(eval $(call GluonProfileSysupgradeSuffix,RaspberryPi,-vfat-ext4,.img.gz))
|
||||
$(eval $(call GluonModel,RaspberryPi,sdcard,raspberry-pi))
|
||||
|
@ -1,4 +1,4 @@
|
||||
$(eval $(call GluonProfile,RaspberryPi2))
|
||||
$(eval $(call GluonProfileFactorySuffix,RaspberryPi2,-vfat-ext4,.img.gz))
|
||||
$(eval $(call GluonProfileSysupgradeSuffix,RaspberryPi2))
|
||||
$(eval $(call GluonProfileSysupgradeSuffix,RaspberryPi2,-vfat-ext4,.img.gz))
|
||||
$(eval $(call GluonModel,RaspberryPi2,sdcard,raspberry-pi-2))
|
||||
|
@ -7,6 +7,6 @@ $(eval $(call GluonTarget,x86,64))
|
||||
|
||||
ifneq ($(BROKEN),)
|
||||
$(eval $(call GluonTarget,ramips,rt305x)) # BROKEN: No AP+IBSS support
|
||||
$(eval $(call GluonTarget,brcm2708,bcm2708)) # BROKEN: Untested, no sysupgrade support
|
||||
$(eval $(call GluonTarget,brcm2708,bcm2709)) # BROKEN: Untested, no sysupgrade support
|
||||
$(eval $(call GluonTarget,brcm2708,bcm2708)) # BROKEN: Needs more testing
|
||||
$(eval $(call GluonTarget,brcm2708,bcm2709)) # BROKEN: Needs more testing
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user