Переглянути джерело

add swupdate

Signed-off-by: Michel Stempin <michel.stempin@wanadoo.fr>
Michel Stempin 3 роки тому
батько
коміт
5b4eebd7d5

+ 1 - 0
FunKey/board/funkey/rootfs-overlay/etc/hwrevision

@@ -0,0 +1 @@
+FunKey_S	Rev.A

+ 1 - 0
FunKey/board/funkey/rootfs-overlay/etc/sw-versions

@@ -0,0 +1 @@
+rootfs	0.6

+ 14 - 0
FunKey/board/funkey/sw-description

@@ -0,0 +1,14 @@
+software =
+{
+        version = "0.6";
+
+        hardware-compatibility = [ "#RE:^Rev\.[A-E]$" ];
+
+        images: (
+        {
+                filename = "rootfs.ext2.tar.gz";
+                device = "/dev/mmcblk0p2";
+		compression = "zlib";
+        }
+        );
+}

+ 12 - 0
Makefile

@@ -77,6 +77,18 @@ image:
 	@./Recovery/output/host/bin/genimage --loglevel 0 --inputpath .
 	@rm -rf root tmp
 
+update: fun
+	@$(call MESSAGE,"Creating update file")
+	@rm -rf tmp
+	@mkdir -p tmp
+	@cp FunKey/board/funkey/sw-description tmp/
+	@tar -C FunKey/output/images -zcf tmp/rootfs.ext2.tar.gz rootfs.ext2
+	@cd tmp && \
+	echo sw-description rootfs.ext2.tar.gz | \
+	tr " " "\n" | \
+	cpio -o -H crc --quiet > ../images/FunKey-$(shell cat FunKey/board/funkey/rootfs-overlay/etc/sw-versions | cut -f 2).swu
+	@rm -rf tmp
+
 defconfig:
 	@$(call MESSAGE,"Updating default configs")
 	@$(call MESSAGE,"Updating default configs in Recovery")

+ 1 - 0
Recovery/board/funkey/rootfs-overlay/etc/hwrevision

@@ -0,0 +1 @@
+FunKey_S	Rev.A

+ 1 - 0
Recovery/board/funkey/rootfs-overlay/etc/sw-versions

@@ -0,0 +1 @@
+rootfs	0.6

+ 125 - 0
Recovery/board/funkey/swupdate.config

@@ -0,0 +1,125 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Swupdate Configuration
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Swupdate Settings
+#
+
+#
+# General Configuration
+#
+# CONFIG_CURL is not set
+# CONFIG_CURL_SSL is not set
+# CONFIG_SYSTEMD is not set
+CONFIG_SCRIPTS=y
+CONFIG_HW_COMPATIBILITY=y
+CONFIG_HW_COMPATIBILITY_FILE="/etc/hwrevision"
+CONFIG_SW_VERSIONS_FILE="/etc/sw-versions"
+
+#
+# Socket Paths
+#
+CONFIG_SOCKET_CTRL_PATH="/tmp/sockinstctrl"
+CONFIG_SOCKET_PROGRESS_PATH="/tmp/swupdateprog"
+CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/"
+
+#
+# MTD support needs libmtd
+#
+
+#
+# Lua support needs a Lua interpreter
+#
+# CONFIG_FEATURE_SYSLOG is not set
+
+#
+# Build Options
+#
+CONFIG_CROSS_COMPILE=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_WERROR is not set
+# CONFIG_NOCLEANUP is not set
+
+#
+# EFI Boot Guard needs libebgenv and libz
+#
+CONFIG_UBOOT=y
+# CONFIG_BOOTLOADER_NONE is not set
+# CONFIG_BOOTLOADER_GRUB is not set
+CONFIG_UBOOT_FWENV="/etc/fw_env.config"
+# CONFIG_UBOOT_NEWAPI is not set
+CONFIG_SSL_IMPL_NONE=y
+
+#
+# Image downloading support needs libcurl
+#
+
+#
+# Hash checking needs an SSL implementation
+#
+
+#
+# Image signature verification needs an SSL implementation
+#
+
+#
+# Image encryption needs an SSL implementation
+#
+# CONFIG_SURICATTA is not set
+# CONFIG_WEBSERVER is not set
+CONFIG_GUNZIP=y
+
+#
+# Parser Features
+#
+CONFIG_LIBCONFIG=y
+CONFIG_PARSERROOT=""
+
+#
+# JSON config parser support needs json-c
+#
+# CONFIG_SETSWDESCRIPTION is not set
+
+#
+# Image Handlers
+#
+
+#
+# ubivol support needs libubi
+#
+CONFIG_RAW=y
+CONFIG_RDIFFHANDLER=y
+CONFIG_SHELLSCRIPTHANDLER=y
+CONFIG_ARCHIVE=y
+
+#
+# remote handler needs zeromq
+#
+
+#
+# swuforward handler needs json-c and curl
+#
+
+#
+# SWU forwarder requires libcurl
+#
+
+#
+# swuforward handler needs json-c and curl
+#
+CONFIG_BOOTLOADERHANDLER=y
+
+#
+# Microcontroller handler depends on libgpiod
+#

+ 8 - 0
Recovery/configs/recovery_defconfig

@@ -40,10 +40,18 @@ BR2_PACKAGE_PARTED=y
 BR2_PACKAGE_SYSSTAT=y
 BR2_PACKAGE_UBOOT_TOOLS=y
 BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y
+BR2_PACKAGE_LIBARCHIVE=y
+BR2_PACKAGE_LIBARCHIVE_BSDTAR=y
+BR2_PACKAGE_LIBARCHIVE_BSDCPIO=y
+BR2_PACKAGE_LIBARCHIVE_BSDCAT=y
 BR2_PACKAGE_LIBNL=y
+BR2_PACKAGE_LIBRSYNC=y
 BR2_PACKAGE_DHCPCD=y
 BR2_PACKAGE_DROPBEAR=y
 BR2_PACKAGE_PROCPS_NG=y
+BR2_PACKAGE_SWUPDATE=y
+BR2_PACKAGE_SWUPDATE_CONFIG="$(BR2_EXTERNAL_RECOVERY_PATH)/board/funkey/swupdate.config"
+# BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE is not set
 BR2_PACKAGE_UTIL_LINUX_BINARIES=y
 BR2_PACKAGE_NANO=y
 BR2_TARGET_ROOTFS_EXT2=y