diff --git a/.gitmodules b/.gitmodules index d84c2ab4f..777c04260 100644 --- a/.gitmodules +++ b/.gitmodules @@ -74,3 +74,7 @@ path = sources/meta-tegra-community url = https://github.com/YoeDistro/meta-tegra-community branch = master +[submodule "sources/meta-swupdate"] + path = sources/meta-swupdate + url = https://github.com/yoedistro/meta-swupdate + branch = yoe/master diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f2a98362..2b2cdd164 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [2024.08] - 2024-08-XX +## [2024.08] - 2024-08-31 ### Changed @@ -19,7 +19,7 @@ and this project adheres to - Fix buildpaths build QA error in several recipes - Add UPSTREAM_CHECK_COMMITS to meta-openembedded recipes - Upgrade go to 1.22.6 -- Upgrade rust to 1.77.2 +- Upgrade rust to 1.79.0 - Upgrade GCC to 14.2 - Upgrade binutils to 2.43 - Set CVE_PRODUCT in several recipes @@ -32,13 +32,23 @@ and this project adheres to - Upgrade binutils to 2.43.1 - Fix QT 6.7 builds with Clang-19 - Upgrade libxml2 to 2.13.3 and address ABI breakges due to it in meta-oe +- Fix several multimedia recipes to work with ffmpeg 7 +- Fix recipes to work with fmt 11.x +- Correct LICENSE field of several recipes in meta-python +- Upgrade musl to latest on trunk 1.2.5+ +- Upgrade automate to 1.17 +- Add swupdate OTA support on tegra platforms ### Added - Introduce 6.10 reference kernel - Added vex class for CVE management - Added recipes: - - drgn, vdpauinfo, python3-psycopg + - drgn, vdpauinfo, python3-psycopg, libplacebo, cpuset + +### Removed + +- Removed VOLATILE_TMP_DIR and VOLATILE_LOG_DIR bitbake variables ## [2024.07] - 2024-07-30 diff --git a/conf/projects/jetson-agx-orin-devkit/config.conf b/conf/projects/jetson-agx-orin-devkit/config.conf index cf8f10ce5..cc27f3512 100644 --- a/conf/projects/jetson-agx-orin-devkit/config.conf +++ b/conf/projects/jetson-agx-orin-devkit/config.conf @@ -13,7 +13,7 @@ LICENSE_FLAGS_ACCEPTED:append = "commercial_ffmpeg" # Include the tegra_flash components to the image class IMAGE_CLASSES:append = " image_types_tegra" IMAGE_FSTYPES:append = " ext4.xz" -IMAGE_FSTYPES:remove = "ext4 tar.gz wic.*" +IMAGE_FSTYPES:remove = "ext4 wic.*" # Yoe Updater Supported Machines ( RPI, beaglebone, C4, SAMA5D27 for now ) #INITRAMFS_IMAGE_BUNDLE = "1" @@ -28,6 +28,11 @@ IMAGE_FSTYPES:remove = "ext4 tar.gz wic.*" #WKS_FILE:yoe = "yoe-sdimage.wks" #WKS_FILE:yoe:pn-yoe-installer-image = "yoe-installer.wks.in" +#SWupdate +IMAGE_INSTALL:append = " swupdate" +USE_REDUNDANT_FLASH_LAYOUT = "1" +IMAGE_FSTYPES:append = " tar.gz" + # Use GNU objcopy for kernel with clang OBJCOPY:pn-linux-tegra:toolchain-clang = "${HOST_PREFIX}objcopy" OBJCOPY:pn-linux-jammy-nvidia-tegra:toolchain-clang = "${HOST_PREFIX}objcopy" diff --git a/conf/projects/jetson-orin-nano-devkit-nvme/config.conf b/conf/projects/jetson-orin-nano-devkit-nvme/config.conf index c9db4a78b..58adbde86 100644 --- a/conf/projects/jetson-orin-nano-devkit-nvme/config.conf +++ b/conf/projects/jetson-orin-nano-devkit-nvme/config.conf @@ -13,7 +13,7 @@ LICENSE_FLAGS_ACCEPTED:append = "commercial_ffmpeg" # Include the tegra_flash components to the image class IMAGE_CLASSES:append = " image_types_tegra" IMAGE_FSTYPES:append = " ext4.xz" -IMAGE_FSTYPES:remove = "ext4 tar.gz wic.*" +IMAGE_FSTYPES:remove = "ext4 wic.*" # Yoe Updater Supported Machines ( RPI, beaglebone, C4, SAMA5D27 for now ) #INITRAMFS_IMAGE_BUNDLE = "1" @@ -28,6 +28,11 @@ IMAGE_FSTYPES:remove = "ext4 tar.gz wic.*" #WKS_FILE:yoe = "yoe-sdimage.wks" #WKS_FILE:yoe:pn-yoe-installer-image = "yoe-installer.wks.in" +#SWupdate +IMAGE_INSTALL:append = " swupdate" +USE_REDUNDANT_FLASH_LAYOUT = "1" +IMAGE_FSTYPES:append = " tar.gz" + # Use GNU objcopy for kernel with clang OBJCOPY:pn-linux-tegra:toolchain-clang = "${HOST_PREFIX}objcopy" OBJCOPY:pn-linux-jammy-nvidia-tegra:toolchain-clang = "${HOST_PREFIX}objcopy" diff --git a/conf/projects/jetson-orin-nano-devkit/config.conf b/conf/projects/jetson-orin-nano-devkit/config.conf index 8dd8fe2d9..3e5b581b0 100644 --- a/conf/projects/jetson-orin-nano-devkit/config.conf +++ b/conf/projects/jetson-orin-nano-devkit/config.conf @@ -13,7 +13,7 @@ LICENSE_FLAGS_ACCEPTED:append = "commercial_ffmpeg" # Include the tegra_flash components to the image class IMAGE_CLASSES:append = " image_types_tegra" IMAGE_FSTYPES:append = " ext4.xz" -IMAGE_FSTYPES:remove = "ext4 tar.gz wic.*" +IMAGE_FSTYPES:remove = "ext4 wic.*" # Yoe Updater Supported Machines ( RPI, beaglebone, C4, SAMA5D27 for now ) #INITRAMFS_IMAGE_BUNDLE = "1" @@ -28,6 +28,11 @@ IMAGE_FSTYPES:remove = "ext4 tar.gz wic.*" #WKS_FILE:yoe = "yoe-sdimage.wks" #WKS_FILE:yoe:pn-yoe-installer-image = "yoe-installer.wks.in" +#SWupdate +IMAGE_INSTALL:append = " swupdate" +USE_REDUNDANT_FLASH_LAYOUT = "1" +IMAGE_FSTYPES:append = " tar.gz" + # Use GNU objcopy for kernel with clang OBJCOPY:pn-linux-tegra:toolchain-clang = "${HOST_PREFIX}objcopy" OBJCOPY:pn-linux-jammy-nvidia-tegra:toolchain-clang = "${HOST_PREFIX}objcopy" diff --git a/conf/projects/jetson-orin-nano-devkit/layers.conf b/conf/projects/jetson-orin-nano-devkit/layers.conf index 81f82a692..0354a0db3 100644 --- a/conf/projects/jetson-orin-nano-devkit/layers.conf +++ b/conf/projects/jetson-orin-nano-devkit/layers.conf @@ -7,6 +7,7 @@ BBLAYERS = "\ ${TOPDIR}/sources/meta-tegra \ ${TOPDIR}/sources/meta-tegra-community \ \ + ${TOPDIR}/sources/meta-swupdate \ ${TOPDIR}/sources/meta-qt6 \ \ ${TOPDIR}/sources/meta-openembedded/meta-filesystems \ diff --git a/conf/site.conf b/conf/site.conf index 74a31ad90..322d30393 100644 --- a/conf/site.conf +++ b/conf/site.conf @@ -11,4 +11,4 @@ require ${TOPDIR}/conf/projects/${PROJECT}/config.conf #YOE_PROFILE = "yoe-musl-sysvinit-wayland" #require conf/world.conf -IMG_VERSION = "24.7.5" +IMG_VERSION = "24.8.0" diff --git a/sources/meta-freescale b/sources/meta-freescale index 52c1409dc..8266ad6ff 160000 --- a/sources/meta-freescale +++ b/sources/meta-freescale @@ -1 +1 @@ -Subproject commit 52c1409dc2278b7ace5ebca3077b9d8242eac37f +Subproject commit 8266ad6fffc600ea940b8f02649136e86d666540 diff --git a/sources/meta-intel b/sources/meta-intel index 5d1f6d942..8c4ea4cd2 160000 --- a/sources/meta-intel +++ b/sources/meta-intel @@ -1 +1 @@ -Subproject commit 5d1f6d9422843e21ca4205f670c41de8b1a6ae19 +Subproject commit 8c4ea4cd2f241d4d82a15341b940595888f71ad6 diff --git a/sources/meta-openembedded b/sources/meta-openembedded index f7fe2415e..65bac5505 160000 --- a/sources/meta-openembedded +++ b/sources/meta-openembedded @@ -1 +1 @@ -Subproject commit f7fe2415e1317c5bcb791c6c1ca9c36e476b0af8 +Subproject commit 65bac5505f306c693244186c769cef18aa436f60 diff --git a/sources/meta-qcom b/sources/meta-qcom index 735877586..a54a11cf7 160000 --- a/sources/meta-qcom +++ b/sources/meta-qcom @@ -1 +1 @@ -Subproject commit 7358775868f10b4bf9609f01e52c98683b62cd67 +Subproject commit a54a11cf74a6150f257f58ba2df79ea4f63e6a6e diff --git a/sources/meta-raspberrypi b/sources/meta-raspberrypi index e9e5efa75..ec745772d 160000 --- a/sources/meta-raspberrypi +++ b/sources/meta-raspberrypi @@ -1 +1 @@ -Subproject commit e9e5efa750490cd0dac853eb65640d0cb337b03e +Subproject commit ec745772dcd5dc4c38ce2d7e6387d4442ad3b492 diff --git a/sources/meta-rockchip b/sources/meta-rockchip index e6789604a..91a694e25 160000 --- a/sources/meta-rockchip +++ b/sources/meta-rockchip @@ -1 +1 @@ -Subproject commit e6789604ab4de0fa3db90b597237be38e424c1fc +Subproject commit 91a694e250a050ac77acab94521a80faac822aa1 diff --git a/sources/meta-swupdate b/sources/meta-swupdate new file mode 160000 index 000000000..faedf196b --- /dev/null +++ b/sources/meta-swupdate @@ -0,0 +1 @@ +Subproject commit faedf196bf7a7ea4c1e2e18a7c29b3b868f3ca3e diff --git a/sources/meta-tegra b/sources/meta-tegra index 63ef5b0fa..ba9e09c98 160000 --- a/sources/meta-tegra +++ b/sources/meta-tegra @@ -1 +1 @@ -Subproject commit 63ef5b0faf69d3ad99558bfb8ee0c839de33e515 +Subproject commit ba9e09c980886d2e095332a5a3c817da2f415b85 diff --git a/sources/meta-ti b/sources/meta-ti index f8ccb2070..d7891abd2 160000 --- a/sources/meta-ti +++ b/sources/meta-ti @@ -1 +1 @@ -Subproject commit f8ccb20709f5d864479ea64aa9ebf1bd89e7d82f +Subproject commit d7891abd2d6396bd5b337863d057ca9d7a2d9b23 diff --git a/sources/meta-variscite-bsp b/sources/meta-variscite-bsp index c36030296..f0e92ac4e 160000 --- a/sources/meta-variscite-bsp +++ b/sources/meta-variscite-bsp @@ -1 +1 @@ -Subproject commit c360302966110addf8d062c797636ab75a89de06 +Subproject commit f0e92ac4e40191de057edf99336cd70b4f689050 diff --git a/sources/meta-yoe/conf/distro/yoe.inc b/sources/meta-yoe/conf/distro/yoe.inc index db1b45312..86519efb9 100644 --- a/sources/meta-yoe/conf/distro/yoe.inc +++ b/sources/meta-yoe/conf/distro/yoe.inc @@ -6,8 +6,8 @@ MAINTAINER = "Yoe Distro Community " TARGET_VENDOR = "-yoe" SDK_VENDOR = "-yoesdk" # Distro version is YYYY.MM -DISTRO_VERSION = "2024.07" -DISTRO_CODENAME = "Qinghai" +DISTRO_VERSION = "2024.08" +DISTRO_CODENAME = "Rabo Largo" SDK_VERSION := "${DISTRO_VERSION}" SDK_NAME_PREFIX = "yoe" diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/files/tegra/bootloader-update.lua b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/files/tegra/bootloader-update.lua new file mode 100644 index 000000000..941279137 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/files/tegra/bootloader-update.lua @@ -0,0 +1,5 @@ +function postinst() + local success = os.execute("/usr/bin/oe4t-set-uefi-OSIndications") + local result = "oe4t-set-uefi-OSIndications completed with success: " .. tostring(success) + return success, result +end diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/files/tegra/sw-description b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/files/tegra/sw-description new file mode 100644 index 000000000..871ab8eec --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/files/tegra/sw-description @@ -0,0 +1,104 @@ +software = +{ + version = "@@DISTRO_VERSION@@"; + + @@MACHINE@@ = { + hardware-compatibility: [ "1.0" ] + system = { + slot_a : { + partitions: ( + { + type = "diskformat"; + device = "@@ROOTFS_DEVICE_PATH@@/APP_b"; + properties: { + fstype = "ext4"; + force = "true"; + } + } + ); + images: ( + { + filename = "@@ROOTFS_FILENAME@@"; + type = "archive"; + device = "@@ROOTFS_DEVICE_PATH@@/APP_b"; + filesystem = "ext4"; + path = "/"; + installed-directly = true; + preserve-attributes = true; + sha256 = "$swupdate_get_sha256(@@ROOTFS_FILENAME@@)"; + }, + { + filename = "@@DEPLOY_KERNEL_IMAGE@@"; + device = "@@ROOTFS_DEVICE_PATH@@/@@KERNEL_B_PARTNAME@@"; + }, + { + filename = "@@DTBFILE@@"; + device = "@@ROOTFS_DEVICE_PATH@@/@@KERNEL_B_DTB_PARTNAME@@"; + } + + ); + files: ( + { + filename = "tegra-bl.cap"; + path = "/boot/efi/EFI/UpdateCapsule/TEGRA_BL.Cap"; + properties = {create-destination = "true";} + } + ); + scripts: ( + { + filename = "bootloader-update.lua"; + type = "lua" + sha256 = "$swupdate_get_sha256(bootloader-update.lua)"; + } + ); + + }; + slot_b : { + partitions: ( + { + type = "diskformat"; + device = "@@ROOTFS_DEVICE_PATH@@/APP"; + properties: { + fstype = "ext4"; + force = "true"; + } + } + ); + images: ( + { + filename = "@@ROOTFS_FILENAME@@"; + type = "archive"; + device = "@@ROOTFS_DEVICE_PATH@@/APP"; + filesystem = "ext4"; + path = "/"; + installed-directly = true; + preserve-attributes = true; + sha256 = "$swupdate_get_sha256(@@ROOTFS_FILENAME@@)"; + }, + { + filename = "@@DEPLOY_KERNEL_IMAGE@@"; + device = "@@ROOTFS_DEVICE_PATH@@/@@KERNEL_A_PARTNAME@@"; + }, + { + filename = "@@DTBFILE@@"; + device = "@@ROOTFS_DEVICE_PATH@@/@@KERNEL_A_DTB_PARTNAME@@"; + } + ); + files: ( + { + filename = "tegra-bl.cap"; + path = "/boot/efi/EFI/UpdateCapsule/TEGRA_BL.Cap"; + properties = {create-destination = "true";} + } + ); + scripts: ( + { + filename = "bootloader-update.lua"; + type = "lua" + sha256 = "$swupdate_get_sha256(bootloader-update.lua)"; + } + ); + }; + }; + } +} diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/yoe-initramfs-image.bbappend b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/yoe-initramfs-image.bbappend deleted file mode 100644 index 2d038a781..000000000 --- a/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/yoe-initramfs-image.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" - -PACKAGE_INSTALL:append = "\ - libconfig \ - swupdate \ -" diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/yoe-swupdate-image-tegra.bb b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/yoe-swupdate-image-tegra.bb new file mode 100644 index 000000000..f31d9fbdc --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-core/images/yoe-swupdate-image-tegra.bb @@ -0,0 +1,38 @@ +SUMMARY = "Tegra swupdate update image" +DESCRIPTION = "A swupdate image for demonstrating tegra updates" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "\ + file://sw-description \ + file://bootloader-update.lua \ +" + +inherit swupdate image_types_tegra + +DEPLOY_KERNEL_IMAGE ?= "${@os.path.basename(tegra_kernel_image(d))}" + +ROOTFS_DEVICE_PATH ?= "/dev/disk/by-partlabel" + +# By default, use yoe-simple-image as the base image. +# Redefine in local.conf if you'd like to use a different base image. +SWUPDATE_CORE_IMAGE_NAME ?= "yoe-simple-image" + +ROOTFS_FILENAME ?= "${SWUPDATE_CORE_IMAGE_NAME}-${MACHINE}.rootfs.tar.gz" + +# Handle differences in redundant partition naming on t194 platforms +KERNEL_A_PARTNAME = "A_kernel" +KERNEL_A_DTB_PARTNAME = "A_kernel-dtb" +KERNEL_B_PARTNAME = "B_kernel" +KERNEL_B_DTB_PARTNAME = "B_kernel-dtb" + +# images to build before building swupdate image +IMAGE_DEPENDS = "${SWUPDATE_CORE_IMAGE_NAME} tegra-uefi-capsules" + +# images and files that will be included in the .swu image +DTBFILE_PATH = "${@'${EXTERNAL_KERNEL_DEVICETREE}/${DTBFILE}' if len(d.getVar('EXTERNAL_KERNEL_DEVICETREE')) else '${DTBFILE}'}" +SWUPDATE_IMAGES = "${ROOTFS_FILENAME} tegra-bl.cap ${DEPLOY_KERNEL_IMAGE} ${DTBFILE_PATH}" + +do_swuimage[depends] += "${DTB_EXTRA_DEPS}" +do_swuimage[dirs] += "${S}" diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate-genconfig.sh b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate-genconfig.sh new file mode 100644 index 000000000..cbb4f9146 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate-genconfig.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +get_current_slot() { + curslot=$(nvbootctrl get-current-slot) + if [ $curslot -eq 1 ]; then + echo "b" + else + echo "a" + fi +} + +. /etc/os-release + +if [ -e /run/mfgdata/serial-number ]; then + SERIALNUMBER=$(cat /run/mfgdata/serial-number) +elif [ -e /sys/module/fuse_burn/parameters/tegra_chip_uid ]; then + SERIALNUMBER=$(cat /sys/module/fuse_burn/parameters/tegra_chip_uid) +else + SERIALNUMBER="unknown" +fi + +BOOTSLOT=$(get_current_slot) + +rm -f /run/swupdate/swupdate.cfg + +extrased= +if [ ! -e /usr/share/swupdate/swupdate.pem ]; then + extrased="-e /public-key-file/d" +fi +sed -e"s,@SWVERSION@,$VERSION_ID," \ + -e"s,@SERIALNUMBER@,$SERIALNUMBER," \ + -e"s,@BOOTSLOT@,$BOOTSLOT," \ + $extrased \ + /usr/share/swupdate/swupdate.cfg.in > /run/swupdate/swupdate.cfg diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate-mods.conf b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate-mods.conf new file mode 100644 index 000000000..e2d491d24 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate-mods.conf @@ -0,0 +1,2 @@ +[Service] +ExecStartPre=/usr/libexec/swupdate/swupdate-genconfig diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate.cfg.in b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate.cfg.in new file mode 100644 index 000000000..81bb60386 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config/swupdate.cfg.in @@ -0,0 +1,13 @@ +globals: +{ + verbose = false; + loglevel = 3; + select = "system,slot_@BOOTSLOT@"; +}; + +identify : ( + { name = "swversion"; value = "@SWVERSION@" }, + { name = "serialnumber"; value = "@SERIALNUMBER@" }, + { name = "model"; value = "@MODEL@" } +); + diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config_1.0.bb b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config_1.0.bb new file mode 100644 index 000000000..fd8b54da7 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate-machine-config_1.0.bb @@ -0,0 +1,48 @@ +DESCRIPTION = "Machine-specific configuration for swupdate" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "\ + file://swupdate.cfg.in \ + file://swupdate-genconfig.sh \ + file://swupdate-mods.conf \ +" + +SRC_URI:append:secureboot = " \ + file://swupdate.pem \ +" + +SWUPDATE_BOARDNAME ??= "${MACHINE}" +SWUPDATE_HWREVISION ??= "1.0" + +S = "${WORKDIR}/sources" +UNPACKDIR = "${S}" +B = "${WORKDIR}/build" + +do_compile() { + rm -f ${B}/hwrevision + echo "${SWUPDATE_BOARDNAME} ${SWUPDATE_HWREVISION}" > ${B}/hwrevision + sed -e's,@MODEL@,${SWUPDATE_BOARDNAME},g' \ + ${S}/swupdate.cfg.in > ${B}/swupdate.cfg.in +} + +do_install() { + install -d ${D}${sysconfdir} + install -m 0644 ${B}/hwrevision ${D}${sysconfdir}/ + ln -s /run/swupdate/swupdate.cfg ${D}${sysconfdir}/swupdate.cfg + install -d ${D}${datadir}/swupdate + install -m 0644 ${B}/swupdate.cfg.in ${D}${datadir}/swupdate/ + install -d ${D}${libexecdir}/swupdate + install -m 0755 ${S}/swupdate-genconfig.sh ${D}${libexecdir}/swupdate/swupdate-genconfig + install -d ${D}${sysconfdir}/systemd/system/swupdate.service.d + install -m 0644 ${S}/swupdate-mods.conf ${D}${sysconfdir}/systemd/system/swupdate.service.d/ +} + +do_install:append:secureboot() { + install -m 0644 ${S}/swupdate.pem ${D}${datadir}/swupdate/ +} + +FILES:${PN} += "${datadir}/swupdate" +PACKAGE_ARCH = "${MACHINE_ARCH}" +EXTRADEPS = "tegra-redundant-boot" +RDEPENDS:${PN} += "${EXTRADEPS}" diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/archive.cfg b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/archive.cfg new file mode 100644 index 000000000..f8cd2fe37 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/archive.cfg @@ -0,0 +1,2 @@ +CONFIG_ARCHIVE=y +CONFIG_LOCALE=y diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/disable-uboot.cfg b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/disable-uboot.cfg new file mode 100644 index 000000000..92a2af8bb --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/disable-uboot.cfg @@ -0,0 +1,4 @@ +# CONFIG_UBOOT is not set +# CONFIG_UBOOT_FWENV is not set +# CONFIG_UBOOT_DEFAULTENV is not set +CONFIG_BOOTLOADER_NONE=y diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/hash.cfg b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/hash.cfg new file mode 100644 index 000000000..a12299ae5 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/hash.cfg @@ -0,0 +1,2 @@ +CONFIG_HASH_VERIFY=y +CONFIG_DISABLE_CPIO_CRC=y diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/part-format.cfg b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/part-format.cfg new file mode 100644 index 000000000..3f43f2288 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/part-format.cfg @@ -0,0 +1,4 @@ +CONFIG_DISKPART_HANDLER=y +CONFIG_DISKFORMAT_HANDLER=y +# CONFIG_FAT_FILESYSTEM is not set +CONFIG_EXT_FILESYSTEM=y diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/systemd.cfg b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/systemd.cfg new file mode 100644 index 000000000..596aae0b4 --- /dev/null +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate/systemd.cfg @@ -0,0 +1,3 @@ +CONFIG_SYSTEMD=y +CONFIG_SOCKET_CTRL_PATH="/run/swupdate/control.sock" +CONFIG_SOCKET_PROGRESS_PATH="/run/swupdate/progress.sock" diff --git a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate_%.bbappend b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate_%.bbappend index eadb7e4a4..8f4a4b518 100644 --- a/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate_%.bbappend +++ b/sources/meta-yoe/dynamic-layers/swupdate/recipes-support/swupdate/swupdate_%.bbappend @@ -1 +1,18 @@ -FILESEXTRAPATHS:append := "${THISDIR}/${PN}:" +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +SRC_URI += "\ + file://systemd.cfg \ + file://hash.cfg \ + file://part-format.cfg \ + file://archive.cfg \ + file://disable-uboot.cfg \ +" + +DEPENDS += "e2fsprogs" + +do_install:append() { + rm -rf ${D}${sysconfdir}/swupdate.cfg +} + +RDEPENDS:${PN} += "swupdate-machine-config" +FILES_${PN}:remove = "${sysconfdir}/swupdate.cfg" diff --git a/sources/poky b/sources/poky index 56bc6ce8c..d78224151 160000 --- a/sources/poky +++ b/sources/poky @@ -1 +1 @@ -Subproject commit 56bc6ce8c62278f432ac4b4a8127699896590d52 +Subproject commit d78224151d076ea900c74fc5f6acc418cf65c4ea