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_OPENWRT_BRANCH=for-15.05 | ||||||
| 
 | 
 | ||||||
| PACKAGES_GLUON_REPO=git://github.com/freifunk-gluon/packages.git | 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_REPO=git://github.com/openwrt-routing/packages.git | ||||||
| PACKAGES_ROUTING_COMMIT=6c78c2ac2cb9ec3be25e68b1cef7b2e2e0e4a346 | 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 GluonProfile,RaspberryPi)) | ||||||
| $(eval $(call GluonProfileFactorySuffix,RaspberryPi,-vfat-ext4,.img.gz)) | $(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)) | $(eval $(call GluonModel,RaspberryPi,sdcard,raspberry-pi)) | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| $(eval $(call GluonProfile,RaspberryPi2)) | $(eval $(call GluonProfile,RaspberryPi2)) | ||||||
| $(eval $(call GluonProfileFactorySuffix,RaspberryPi2,-vfat-ext4,.img.gz)) | $(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)) | $(eval $(call GluonModel,RaspberryPi2,sdcard,raspberry-pi-2)) | ||||||
|  | |||||||
| @ -7,6 +7,6 @@ $(eval $(call GluonTarget,x86,64)) | |||||||
| 
 | 
 | ||||||
| ifneq ($(BROKEN),) | ifneq ($(BROKEN),) | ||||||
| $(eval $(call GluonTarget,ramips,rt305x)) # BROKEN: No AP+IBSS support | $(eval $(call GluonTarget,ramips,rt305x)) # BROKEN: No AP+IBSS support | ||||||
| $(eval $(call GluonTarget,brcm2708,bcm2708)) # BROKEN: Untested, no sysupgrade support | $(eval $(call GluonTarget,brcm2708,bcm2708)) # BROKEN: Needs more testing | ||||||
| $(eval $(call GluonTarget,brcm2708,bcm2709)) # BROKEN: Untested, no sysupgrade support | $(eval $(call GluonTarget,brcm2708,bcm2709)) # BROKEN: Needs more testing | ||||||
| endif | endif | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user