diff --git a/modules b/modules index bd51fd06..13a627e8 100644 --- a/modules +++ b/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 diff --git a/patches/openwrt/0016-brcm2708-Implement-sysupgrade.patch b/patches/openwrt/0016-brcm2708-Implement-sysupgrade.patch new file mode 100644 index 00000000..7c69c554 --- /dev/null +++ b/patches/openwrt/0016-brcm2708-Implement-sysupgrade.patch @@ -0,0 +1,89 @@ +From: blogic +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 + +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 diff --git a/patches/openwrt/0016-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch b/patches/openwrt/0016-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch deleted file mode 100644 index 2b083cb9..00000000 --- a/patches/openwrt/0016-brcm2708-respect-CONFIG_TARGET_IMAGES_GZIP.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: Matthias Schiffer -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 diff --git a/targets/brcm2708-bcm2708/profiles.mk b/targets/brcm2708-bcm2708/profiles.mk index 8aedd810..4261913a 100644 --- a/targets/brcm2708-bcm2708/profiles.mk +++ b/targets/brcm2708-bcm2708/profiles.mk @@ -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)) diff --git a/targets/brcm2708-bcm2709/profiles.mk b/targets/brcm2708-bcm2709/profiles.mk index 64f6168e..74b17215 100644 --- a/targets/brcm2708-bcm2709/profiles.mk +++ b/targets/brcm2708-bcm2709/profiles.mk @@ -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)) diff --git a/targets/targets.mk b/targets/targets.mk index afe52c0b..c9aa0382 100644 --- a/targets/targets.mk +++ b/targets/targets.mk @@ -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