From patchwork Tue Apr 23 08:13:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 1089134 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::239; helo=mail-lj1-x239.google.com; envelope-from=swupdate+bncbcxploxj6ikrbous7psqkgqehonrova@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="Kw4Gz55G"; dkim-atps=neutral Received: from mail-lj1-x239.google.com (mail-lj1-x239.google.com [IPv6:2a00:1450:4864:20::239]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44pGS65Vd3z9sNg for ; Tue, 23 Apr 2019 18:13:57 +1000 (AEST) Received: by mail-lj1-x239.google.com with SMTP id h6sf2243183ljj.10 for ; Tue, 23 Apr 2019 01:13:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1556007227; cv=pass; d=google.com; s=arc-20160816; b=sOZdkSbCKg1en8iG1K4GLjzL7w+1tkxvzHyoYOMXDv3z9UkKsUzJeeK8+TIkwo4XSz 0efwG704ZQqdW30UcSd52N87UL2xd9H3jY2d6JIK15epRVkDQBI5cx1W36pM7BCUergq CpoyQ1wnW+m2qSvpK3nh38mCskEvpJ6fhJN5DeqJLXbk9tiQAzdhcdWTT68yz/71Htmk mGhnCz7g0d4tILNeJHOvuvez60UyREZoBZdsuqt2IPECMiBVEXllD+7ElcY2FI1+cctq N/yyq4/+PQg/o7GKj8LowJghkBpSfyjfxT0MlLei6Jif0L0kEz0iXwV5nd9YExKgwRpN 8BTA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:message-id:date:subject:cc:to:from :mime-version:sender:dkim-signature; bh=HwvE3onM3CFQNmqtFmcqD8De2gTpun3SKfaCw+F/+QA=; b=fkLQl6GnXIS/WAHu4sxscNCZUkRuAsdHX+E7M7J2aJsmwu8wNoGDL0ezyetAWL5c8i mKNk37/Q6ZalfazE+EoXi1eoSWv1wnH2jK0/UkYTin0WC0eATs8QZjWR3T64IL0H1KAa ii5EhBGDTlAzxSvNuSMqL4lH9RBtUotFa7F9HNoG0XoTym3j5Aoogh66kmSFGGjvY9Xy CroRR2G3OgYa8cO+nRKjbmnLtKfRmem7xKPARgeleOEyt9TkYQqj83YCM93pSq9Gy+my JA5s6SYj2IHV+H2Ou/K7rQu2LmhXDXSzLccTz4jUr+Pob+9onCZMfvOQDy+JDTgEy41c lNfg== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 2001:a60:0:28:0:1:25:1 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:mime-version:from:to:cc:subject:date:message-id :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=HwvE3onM3CFQNmqtFmcqD8De2gTpun3SKfaCw+F/+QA=; b=Kw4Gz55GHIEa4k26O3nCBAvqnKCnFWw4POowHrZewCflg2NW7mtvTNF/Ms9oR1kQMU 64y9r/l4fEnNQc+3tzkrCe4MbIoWyn76g0UaOqznQFNANt/4dUbG5NwEVR7DQMmxNaYB njjcY3C60hwMvT+hhFVh/BhYuqrXTz19dYyedCHQ3peYzFyxrc0kiz4hsWIvE/E42xhP PjFCwnQwVuH4EpTznpNj1FFPM03FaVhT+Og+tFELnGlYMsIIbH/JFDMalBsiqaNtGwpo Px2uNCtvFdv+Mg/6lYtJb+W1cvf66VnvDGH1Qhd/tgqhLx4WJHvIHSKmTPeRsJDcuMFP j7Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=HwvE3onM3CFQNmqtFmcqD8De2gTpun3SKfaCw+F/+QA=; b=fOj7s8abPkA0rpMiHEu9vXBptAltaTSX8KRRcIUINdhL/OpuhOgCU5X2Pb5Ygauz8R q/5pJkOL4boeFed6Jk8aPeeg7lh5iqMFRB/8pZwE+bMLbKnPP5nmJSBaXCpegn+nHnaV 8bgO4nyZwT+Ek7qHTweaNTbMG1KSFSC5a4WKtfyV2YFji/xvLjZMlNd2xZ0yW8DxurAi T7BnmwlYAsrvCNXiSktNgbVmbwS+L9FZUuRUVWvXQscRDjSRbMbatUhddK1eC1tC0rdS gwF+Hd64RZCSoatGb8o/sUTaV9kx3A8k6Az29+1kzNoIbz2q7lAn3UgBsDSoRnLxxZuA /eag== Sender: swupdate@googlegroups.com X-Gm-Message-State: APjAAAUbQAEGvuyuHOOToD819AQVy9EF+xVO8JcTYfkSmQui1VvHCM3y oAHRpRSG29iv91plUic+Ctg= X-Google-Smtp-Source: APXvYqw3j2449DW8fDD8AiL1COAQYTE4RbJPrJcjs8uk5YADMoJU46f4b5RvVyT/+iCc6ms6JpWI3w== X-Received: by 2002:a2e:810d:: with SMTP id d13mr12766671ljg.93.1556007226864; Tue, 23 Apr 2019 01:13:46 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 2002:a19:f249:: with SMTP id d9ls1165390lfk.13.gmail; Tue, 23 Apr 2019 01:13:46 -0700 (PDT) X-Received: by 2002:ac2:5495:: with SMTP id t21mr12979995lfk.3.1556007226203; Tue, 23 Apr 2019 01:13:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556007226; cv=none; d=google.com; s=arc-20160816; b=aGwfz+FeYsz3/lWopyD2FdiAJxepiUQt+yuKeECS79rRPRMBA5kvtMjsx4jfIvoxdx hND6R6vKLRLdXuJZZ3MoH/vhtCR85TGH9829nUBARzMQxI8Agsnhh7CzKhP96dM7DmhO f60yUNJcoPAzCbMcQZUy+E7Cm5VRn5ss+OZhh6GC9x790y3EB5HR4puw8LvXZl6XW9wg tZSeSaXu3YLTLC7T4BBMwRhLTrBC7g3I78eX/PcnUIzw61R7Nd2Qs0xkafmhhynkVq/J ry6EGlIAKk9k9BEi6k9pXk1WbE7ARm6wVp4ofDJUIMx5YYEWrUv1+LRLHx6zq4qSUNfW Ngrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from; bh=THsFv0Bgf50qKgFPES9c4PWzFWb1VbcifjVmTdSOVc4=; b=Khr8dIz1ZtJIrpCbPf6e8NN6zA984+FCnpkUP/ATvwBYPqBS4z/B8PH7fl/w3ymSEm uvQsSdOlmQUiMv9htYevvXPnbcd2dQ04rbRWPpv2MZizJIdMZNsrUBiNnNP32V13LV2Z XlvTIeNAYsRwT5sB+9iUkSQkik5SiNgbW3FjRcyJ56OQYAY1kXFxcnJWE4c/oL99toPw 6+95QiVdYt2iswIRA8pNs5/BPqpYUYomyCkBfququxyNQO98WVtF71QeVIcHD0rYyhJD 8QDCsw+79+t5Dd6IZwYl2DxWjfH8MEfGQ7f5DucZXL/ctFJo1u1AvJcrvUE4rTozA2rO 5yYQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 2001:a60:0:28:0:1:25:1 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Received: from mail-out.m-online.net (mail-out.m-online.net. [2001:a60:0:28:0:1:25:1]) by gmr-mx.google.com with ESMTPS id r22si213709ljr.3.2019.04.23.01.13.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Apr 2019 01:13:46 -0700 (PDT) Received-SPF: neutral (google.com: 2001:a60:0:28:0:1:25:1 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) client-ip=2001:a60:0:28:0:1:25:1; Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 44pGRs40VWz1rXgk; Tue, 23 Apr 2019 10:13:45 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 44pGRs3m5Nz1qrhb; Tue, 23 Apr 2019 10:13:45 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id pL9s43CPDTjK; Tue, 23 Apr 2019 10:13:42 +0200 (CEST) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Tue, 23 Apr 2019 10:13:42 +0200 (CEST) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 2DD4A454040B; Tue, 23 Apr 2019 10:13:42 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([IPv6:::1]) by localhost (mail.babic.homelinux.org [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id JlfPzEqF72m0; Tue, 23 Apr 2019 10:13:39 +0200 (CEST) Received: from papero.fritz.box (papero.fritz.box [192.168.178.132]) by babic.homelinux.org (Postfix) with ESMTP id B2C6845401E1; Tue, 23 Apr 2019 10:13:38 +0200 (CEST) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic Subject: [swupdate] [PATCH] doc: update roadmap for next releases Date: Tue, 23 Apr 2019 10:13:35 +0200 Message-Id: <20190423081335.11404-1-sbabic@denx.de> X-Mailer: git-send-email 2.17.1 X-Original-Sender: sbabic@denx.de X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 2001:a60:0:28:0:1:25:1 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Signed-off-by: Stefano Babic --- doc/source/roadmap.rst | 100 ++++++++++++++++++++++++++++++++--------- 1 file changed, 79 insertions(+), 21 deletions(-) diff --git a/doc/source/roadmap.rst b/doc/source/roadmap.rst index ae9228a..4179c3d 100644 --- a/doc/source/roadmap.rst +++ b/doc/source/roadmap.rst @@ -2,11 +2,11 @@ Project's road-map ================== -Please take into account that most of the items here are proposals. +Please take into account that most of the items here are *proposals*. I get some ideas talking with customers, some ideas are my own thoughts. There is no plan when these features will be implemented - this depends if enough interest is raised and if there will be contribution to the project -in terms of patches or financial contribution to develop a feature. +in terms of patches or financial contributions to develop a feature. Thanks again to all companies that have supported my work up now and to everybody who has contributed to the project, let me bring SWUpdate @@ -20,17 +20,42 @@ SWUpdate suitable for a large number of products. This will help to build a community around the project itself. +Disk partitions +=============== + +SWUpdate is able to set and handle UBI partitions, while it requires external +tools to set up disk partitions (sfdisk / fdisk). Because an update should be self-contained, it is +desirable that SWUpdate will integrate the code to be able to set up partitions +configured in sw-descriptions even for disks (eMMC / SD / Hard-disks). +This will let to use `partitions` inside sw-description to set up disk partitions +and not only UBI volumes, and add further features as restoring configuration data and so on. + +Support for further compressors +=============================== + +SWUpdate supports image compressed with zlib. This is a compromise between compression rate +and speed to decompress the single artifact. To reduce bandwidth or for big images, a stronger +compressor could help. Adding a new compressor must be careful done because it changes the +core of handling an image. + +System Update +============= + +Not just the single device, but several devices connected together to build a more +complex system should be updated at once in an atomic way. The installation and the +restart of the system must be done in a controlled way. + SWUpdate as Updater Gateway -=========================== +--------------------------- This feature was introduced with the "swuforward" handler. It is already possible to update a tree of devices if each of them runs SWUpdate. This -feature is already implemented in SWUpdate for embedded linux. +feature is already implemented in SWUpdate for embedded Linux. Anyway, a lot of embedded devices have small processors and maybe not a full blown OS. Ensuring security for all of them can be a risk, and it is easier to make sure on a single device. If the device running SWUpdate is -acting as gateway, it can translate protocols from backend and send +acting as gateway, it can translate protocols from back-end and send package updates to the connected small devices. One example could be if SWUpdate runs as MQTT-broker and takes updates @@ -40,6 +65,15 @@ suricatta to do this. One other examples is using LWM2M. The gateway should be generic enough to allow to add further protocols in future. +Enhance swuforward handler +-------------------------- + +This handler requires that SWUpdate-slaves connected to the master run the Web-server +with old API using a poll mechanism to check the update's progress. This forbids +to run at the same time SWUpdate as slave and with the Website, because in old mode +the website is not available anymore. If swuforward will switch to Web-sockets and implements +the newer API, this constraint can be removed. + Binary delta updates ==================== @@ -53,6 +87,15 @@ and the feature should not introduce leaks and make the system more vulnerable. It is accepted that different technologies could be added, each of them solves a specific use case for a delta update. +SWUpdate is already able to perform delta updates based on librsync library. This is +currently a good compromise to reduce complexity. Anyway, this helps in case of +small changes, and it is not a general solution between two generic releases. +A general approach could be to integrate SWUpdate with CA-Sync to allow a delta upgrade +from any release. First proof of concept shows that changes in both SWUpdate and CA-Sync +are required to be conform with requirements and security concepts in SWUpdate. A design +just using CA-Sync as external fetcher without integration in SWUpdate breaks +SWUpdate's security concept. + Integration in Linux distro =========================== @@ -70,11 +113,11 @@ New Handlers Users develop own custom handlers - I just enforce and encourage everyone to send them and discuss how to integrate custom handler in mainline. -A handler to update a microcontroller connected via UART is introduced. +A handler to update a micro-controller connected via UART is introduced. It could be enhanced to support other interfaces (SPI for example). Some ideas for new handlers: - - handlers to update microcontrollers + - handlers to update micro-controllers - FPGA updater for FPGA with Flash - Package handler to install packages (ipk, deb) Packages can be inserted into the SWU and the atomicity is @@ -90,11 +133,11 @@ The flash handler for raw-devices (mainly NOR flashes) does not allow to stream the image and an error is reported if "installed-directly" is set. The handler can be extended to stream images. -Handlers installable as plugin at runtime +Handlers install-able as plugin at runtime ----------------------------------------- The project supports Lua as script language for pre- and postinstall -script. It will be easy to add a way for installing a handler at runtime +script. It will be easy to add a way for installing a handler at run-time written in Lua, allowing to expand SWUpdate to the cases not covered in the design phase of a product. @@ -109,31 +152,47 @@ a unauthenticated handler cannot run. Support for evaluation boards ============================= -New is meta-swupdate-boards - examples regarding evaluation boards are -put there. Currently, there are examples for Beaglebone Black, -Raspberri PI 3 and Wandboard. Maybe some more boards ? Patches welcome. +meta-swupdate-boards contains examples with evaluation boards. +Currently, there are examples using Beaglebone Black, +Raspberri PI 3 and Wandboard. The repo is a community driven project: +patches welcome. -Backend support (suricatta mode) +Back-end support (suricatta mode) ================================ -Backend: Hawkbit Offline support +Back-end: check before installing +-------------------------------- + +In some cases (for example, where bandwidth is important), it is better to check +if an update must be installed instead of installing and performs checks later. +If SWUpdate provides a way to inform a checker if an update can be accepted +before downloading, a download is only done when it is really necessary. + +Back-end: Hawkbit Offline support -------------------------------- There are several discussions on Hawkbit's ML about how to synchronize -an offline update (done locally or via the internal Webserver) with +an offline update (done locally or via the internal Web-server) with the Hawkbit's server. Currently, Hawkbit thinks to be the only one deploying software. Hawkbit DDI API should be extended, and afterwards changes must be implemented in SWUpdate. -Backend: Consolidate "general server" +Back-end: Consolidate "general server" ------------------------------------- A second OTA server was introduced with 2018.11, but there is not an open source solution for a server. Anyway, the very simple interface of the "general server" can be used by anyone to introduce an own server -instead of a more complicate solution with a backend like Hawkbit. +instead of a more complicate solution with a back-end like Hawkbit. + +Back-end: support for generic down-loader +--------------------------------------- + +SWUpdate in down-loader mode works as one-shot: it simply try to download a SWU +from a URL. For simple applications, it could be moved into `suricatta` to detect +if a new version is available before downloading and installing. -Backend: support for Mender +Back-end: support for Mender --------------------------- There was several discussion how to make a stronger collaboration between @@ -157,7 +216,7 @@ A first version of SWUpdate-GUI was released with a base set of features. The go is to have a low footprint compared to GUI developed with state of art frameworks. This lets to still have a rescue that fits in small devices. -Test and Continuos Integration +Test and Continuous Integration ============================== The number of configurations and features in SWUpdate is steadily increasing and @@ -171,5 +230,4 @@ and tested on real hardware. Documentation ============= -Documentation should be improved. There is just a little documentation for meta-swupdate -how to set it up with different configurations. +Documentation is a central point in SWUpdate - maintaining it up to date is a must in this project.