diff mbox

[OpenWrt-Devel,1/2] CC: brcm2708: Add sysupgrade for Rasperry Pi

Message ID 1437153513-28082-1-git-send-email-br1@einfach.org
State Changes Requested
Headers show

Commit Message

Bruno Randolf July 17, 2015, 5:18 p.m. UTC
The upgrade procedure works similar to the x86 platforms: The configuration
files (sysupgrade.tgz) are saved in the boot partition and moved to the
standard place in a preinit script. Since the boot partition is FAT32 we need
the vfat modules and dependencies.

Signed-off-by: Bruno Randolf <br1@einfach.org>
---
 target/linux/brcm2708/Makefile                         |  3 ++-
 .../brcm2708/base-files/lib/preinit/79_move_config     | 18 ++++++++++++++++++
 .../linux/brcm2708/base-files/lib/upgrade/platform.sh  | 17 +++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 target/linux/brcm2708/base-files/lib/preinit/79_move_config
 create mode 100644 target/linux/brcm2708/base-files/lib/upgrade/platform.sh

Comments

John Crispin July 24, 2015, 7:12 a.m. UTC | #1
On 17/07/2015 19:18, Bruno Randolf wrote:
> diff --git a/target/linux/brcm2708/Makefile b/target/linux/brcm2708/Makefile
> index 30f6e1d..37ff204 100644
> --- a/target/linux/brcm2708/Makefile
> +++ b/target/linux/brcm2708/Makefile
> @@ -19,7 +19,8 @@ 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.

these changes are unrelated to sysupgrade. please split the patch up

	John
Bruno Randolf July 24, 2015, 9:24 a.m. UTC | #2
On 07/24/2015 08:12 AM, John Crispin wrote:
> On 17/07/2015 19:18, Bruno Randolf wrote:
>> diff --git a/target/linux/brcm2708/Makefile b/target/linux/brcm2708/Makefile
>> index 30f6e1d..37ff204 100644
>> --- a/target/linux/brcm2708/Makefile
>> +++ b/target/linux/brcm2708/Makefile
>> @@ -19,7 +19,8 @@ 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.
> 
> these changes are unrelated to sysupgrade. please split the patch up

Hi John,

This is necessary for sysupgrade, since it stores the sysupgrade.tgz in
the FAT32 boot partition.

Greetings,
bruno
John Crispin July 24, 2015, 9:28 a.m. UTC | #3
On 24/07/2015 11:24, Bruno Randolf wrote:
> On 07/24/2015 08:12 AM, John Crispin wrote:
>> On 17/07/2015 19:18, Bruno Randolf wrote:
>>> diff --git a/target/linux/brcm2708/Makefile b/target/linux/brcm2708/Makefile
>>> index 30f6e1d..37ff204 100644
>>> --- a/target/linux/brcm2708/Makefile
>>> +++ b/target/linux/brcm2708/Makefile
>>> @@ -19,7 +19,8 @@ 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.
>>
>> these changes are unrelated to sysupgrade. please split the patch up
> 
> Hi John,
> 
> This is necessary for sysupgrade, since it stores the sysupgrade.tgz in
> the FAT32 boot partition.
> 
> Greetings,
> bruno
> 


of course, failed to see the obvious ..
diff mbox

Patch

diff --git a/target/linux/brcm2708/Makefile b/target/linux/brcm2708/Makefile
index 30f6e1d..37ff204 100644
--- a/target/linux/brcm2708/Makefile
+++ b/target/linux/brcm2708/Makefile
@@ -19,7 +19,8 @@  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
+}