From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 25 Aug 2023 13:03:24 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qZUb7-008Naz-9I for lore@lore.pengutronix.de; Fri, 25 Aug 2023 13:03:24 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qZUb4-00029X-Uc; Fri, 25 Aug 2023 13:03:22 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qZUb0-00027j-1y; Fri, 25 Aug 2023 13:03:18 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1qZUaz-001UTe-BY; Fri, 25 Aug 2023 13:03:17 +0200 Received: from rhi by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qZUay-00COO4-1b; Fri, 25 Aug 2023 13:03:16 +0200 From: Roland Hieber To: distrokit@pengutronix.de Date: Fri, 25 Aug 2023 13:03:03 +0200 Message-Id: <20230825110310.2948272-1-rhi@pengutronix.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Subject: [DistroKit] [PATCH v5 0/7] v7a: add redundant update support via RAUC X-BeenThere: distrokit@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: DistroKit Mailinglist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roland Hieber Sender: "DistroKit" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: distrokit-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false With this patch series, the first v7a platforms (beaglebone black, riotboard, rpi3, qemu-vexpress) gain support for redundant boot on two root partitions which can be updated with RAUC. Changelog: PATCH v4 -> v5: * rebase to current next branch, commit 6df4aa6726e16b6a889c (2023-08-17, Robert Schwebel: "Revert "ptxconfig: disable Y2038 support, broken on MIPS""), which already includes the first half of our v4 series * enable MTD and UBI/UBIFS tools * please the QA checker regarding missing kernel features for RAUC * image-rauc: don't warn about menuconfig statement without prompt PATCH v3 -> v4: * rebase to current next branch * new ptxdist version, so host-ptx-code-signing-dev now pulls in host-python3-* dependencies via host-extract-cert and host-meson * move platforms/image-rauc.in to platforms/image-rauc.deps.in because we only want to add dependencies, not overwrite the whole file PATCH v2 -> v3: https://lore.distrokit.org/distrokit/20230427100134.2934937-1-rhi@pengutronix.de * Ahmad notified me off-line that beaglebone and riotboard were using the "circular" backend, but since state lives on the eMMC, the "direct" backend is better suited. PATCH v1 -> v2: https://lore.distrokit.org/distrokit/20230426201414.2044409-1-rhi@pengutronix.de * rebase to current master (PTXdist 2023.04.0) * new patch: "platforms: revert to default systemd loglevel" * new patch: "ptxconfig: enable more tools for debugging" (which also enables curl, which was previously in the patch enabling RAUC) * make use of barebox's CONFIG_EXTERNAL_DTS_FRAGMENTS to include a DTS fragment for the state variables and the board-specific backends instead of patching them into the barebox device trees (feedback by Ahmad Fatoum) * udev: use tr instead of xargs/printf in of_base_compatible (feedback by Michael Olbrich) * udev: add a fallback /dev/disk/by-usage/data symlink for boards not targeted by this series * udev: add missing 'GOTO="rauc_partitions_end"' at the end of each block so that the symlink settings are not overwritten by the following blocks * udev: fix partition mapping for RIoTBoard; for some reason the SD card is now /dev/mmcblk2 instead of /dev/mmcblk0 * kernel: * enable network block device support (BLK_DEV_NBD), needed for RAUC HTTPS streaming * enable SQUASHFS_FILE_DIRECT and SQUASHFS_DECOMP_MULTI for better performance (feedback by Jan Lübbe) * enable SQUASHFS_LZ4, SQUASHFS_XZ and SQUASHFS_ZSTD which makes it easy to change the bundle compression later. Currently, genimage generates zlib-compressed bundles. (feedback by Jan Lübbe) * rauc: only allow installing verity bundles (feedback by Jan Lübbe) * new patch: "image-rauc: fork config from PTXdist 2023.04.0" * new patch: "image-rauc: use ext4 rootfs instead of tar.gz" (I discussed with Enrico and Jan offline whether it is useful to have this change in upstream PTXdist, but the RAUC image config will be rather specific to the BSP anyway, and will be forked to the BSP by most users.) * new patch: "v7a: run: start with barebox by default" The datapartition clean-up didn't make it yet in this series. RAUC works without it, and I'll send a separate series once I've figured it out. Also I disregarded Marco's comment about moving the projectroot stuff to config/platform-v7a/, since it's not really v7a-specific and can be re-used on other platforms too when those want to gain RAUC support. PATCH v1: https://lore.distrokit.org/distrokit/20230212221449.1644628-1-rhi@pengutronix.de Roland Hieber (7): enable MTD and UBI tools rauc: add initial support silence QA checks regarding missing kernel features for RAUC v7a: enable RAUC bundle creation image-rauc: fork config file from PTXdist 2023.08.0 image-rauc: use ext4 rootfs instead of tar.gz v7a: run: start with barebox by default config/images/rauc.config | 22 ++ configs/platform-mips/kernelconfig | 92 +++++++- configs/platform-mips/kernelconfig-ar9331 | 92 +++++++- .../platform-mips/kernelconfig-ar9331.diff | 2 +- configs/platform-mips/kernelconfig-malta | 11 +- configs/platform-mips/kernelconfig-malta.diff | 61 +++--- configs/platform-mips/platformconfig | 27 ++- configs/platform-mipsel/kernelconfig | 92 +++++++- .../platform-mipsel/kernelconfig-malta.diff | 47 ++-- configs/platform-mipsel/platformconfig | 27 ++- configs/platform-rpi1/kernelconfig | 202 +++++++++++++++++- configs/platform-rpi1/platformconfig | 25 ++- configs/platform-v7a/platformconfig | 37 +++- configs/platform-v7a/run | 2 +- configs/platform-v7a_noneon/kernelconfig | 108 +++++++++- configs/platform-v7a_noneon/platformconfig | 27 ++- configs/platform-v8a/kernelconfig | 64 +++++- configs/platform-v8a/platformconfig | 24 ++- configs/platform-x86_64/kernelconfig | 173 ++++++++++++++- configs/platform-x86_64/platformconfig | 27 ++- configs/ptxconfig | 133 +++++++++++- platforms/image-rauc.deps.in | 6 + projectroot/etc/rauc/system.conf | 17 ++ .../lib/systemd/system/rauc-mark-good.service | 14 ++ 24 files changed, 1206 insertions(+), 126 deletions(-) create mode 100644 config/images/rauc.config create mode 100644 platforms/image-rauc.deps.in create mode 100644 projectroot/etc/rauc/system.conf create mode 100644 projectroot/usr/lib/systemd/system/rauc-mark-good.service -- 2.39.2