URI:
       initial import - meta-skynet - yocto meta-layer for skynet-os
  HTML git clone https://git.drkhsh.at/meta-skynet.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
   DIR commit 01808e4818738fda2e54b9cbace38eec572055bf
  HTML Author: drkhsh <me@drkhsh.at>
       Date:   Mon,  3 Nov 2025 21:34:05 +0100
       
       initial import
       
       Diffstat:
         A classes/rauc-integration.bbclass    |       1 +
         A conf/distro/skynet-distro.conf      |       4 ++++
         A conf/layer.conf                     |      13 +++++++++++++
         A conf/machine/raspberrypi3-64.conf   |      33 +++++++++++++++++++++++++++++++
         A keys/development-1.cert.pem         |      29 +++++++++++++++++++++++++++++
         A keys/development-1.key.pem          |      52 +++++++++++++++++++++++++++++++
         A recipes-bsp/rpi-u-boot-scr/files/b… |      46 +++++++++++++++++++++++++++++++
         A recipes-bsp/rpi-u-boot-scr/rpi-u-b… |       4 ++++
         A recipes-core/base-files/base-files… |       4 ++++
         A recipes-core/base-files/files/fstab |      14 ++++++++++++++
         A recipes-core/bundles/files/develop… |      80 +++++++++++++++++++++++++++++++
         A recipes-core/bundles/files/develop… |      28 ++++++++++++++++++++++++++++
         A recipes-core/bundles/update-bundle… |      16 ++++++++++++++++
         A recipes-core/images/skynet-image.bb |       8 ++++++++
         A recipes-core/rauc/files/ca.cert.pem |      80 +++++++++++++++++++++++++++++++
         A recipes-core/rauc/files/rauc-grow-… |      13 +++++++++++++
         A recipes-core/rauc/files/system.conf |      17 +++++++++++++++++
         A recipes-core/rauc/rauc-conf.bbappe… |       6 ++++++
         A recipes-core/rauc/rauc_%.bbapend    |      21 +++++++++++++++++++++
         A recipes-core/udev/files/raspberryp… |       3 +++
         A recipes-core/udev/udev-extraconf_%… |       6 ++++++
         A recipes-kernel/linux/files/rauc.cfg |       8 ++++++++
         A recipes-kernel/linux/linux-raspber… |       6 ++++++
         A wic/sdimage-dual-raspberrypi.wks.in |       5 +++++
       
       24 files changed, 497 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/classes/rauc-integration.bbclass b/classes/rauc-integration.bbclass
       @@ -0,0 +1 @@
       +OVERRIDES .= "${@bb.utils.contains('DISTRO_FEATURES', 'rauc', ':rauc-integration', '', d)}"
   DIR diff --git a/conf/distro/skynet-distro.conf b/conf/distro/skynet-distro.conf
       @@ -0,0 +1,4 @@
       +DISTRO_NAME = "Cyberdyne Systems Skynet OS Distribution"
       +DISTROOVERRIDES = "skynet-dist"
       +
       +DISTRO_FEATURES:append = " rauc"
   DIR diff --git a/conf/layer.conf b/conf/layer.conf
       @@ -0,0 +1,13 @@
       +# We have a conf and classes directory, add to BBPATH
       +BBPATH .= ":${LAYERDIR}"
       +
       +# We have recipes-* directories, add to BBFILES
       +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
       +            ${LAYERDIR}/recipes-*/*/*.bbappend"
       +
       +BBFILE_COLLECTIONS += "meta-rauc-raspberrypi"
       +BBFILE_PATTERN_meta-rauc-raspberrypi = "^${LAYERDIR}/"
       +BBFILE_PRIORITY_meta-rauc-raspberrypi = "6"
       +
       +LAYERDEPENDS_meta-rauc-raspberrypi = "core rauc raspberrypi"
       +LAYERSERIES_COMPAT_meta-rauc-raspberrypi = "nanbield scarthgap"
   DIR diff --git a/conf/machine/raspberrypi3-64.conf b/conf/machine/raspberrypi3-64.conf
       @@ -0,0 +1,33 @@
       +require conf/machine/raspberrypi3-64.conf
       +
       +MACHINEOVERRIDES =. "myrpi3-64:"
       +
       +# Use U-Boot for boot flow
       +RPI_USE_U_BOOT = "1"
       +UBOOT_MACHINE = "rpi_3_defconfig"
       +
       +# Add RAUC to image
       +IMAGE_INSTALL:append = " rauc "
       +
       +# Dual rootfs layout
       +WKS_FILE = "rpi-dualrootfs.wks.in"
       +IMAGE_FSTYPES += "wic.bz2"
       +
       +# RAUC signing keys
       +RAUC_KEY_FILE = "${LAYERDIR}/../keys/development-1.key.pem"
       +RAUC_CERT_FILE = "${LAYERDIR}/../keys/development-1.cert.pem"
       +
       +# U-Boot environment configuration
       +UBOOT_ENV = "u-boot-initial-env"
       +UBOOT_ENV_SUFFIX = "txt"
       +UBOOT_ENV_SIZE = "0x40000"
       +UBOOT_ENV_IMAGE = "u-boot-env"
       +UBOOT_ENV_FILE = "u-boot-initial-env.txt"
       +
       +# Install rauc-mark-good if you have it
       +IMAGE_INSTALL:append = " rauc-mark-good "
       +SYSTEMD_AUTO_ENABLE += "rauc-mark-good.service"
       +
       +# Generate boot.scr from boot.cmd
       +BOOTCMD_FILE = "boot.cmd"
       +IMAGE_BOOT_FILES += "boot.scr"
   DIR diff --git a/keys/development-1.cert.pem b/keys/development-1.cert.pem
       @@ -0,0 +1,29 @@
       +-----BEGIN CERTIFICATE-----
       +MIIFAzCCAuugAwIBAgIUPgCbbFNCclfJYq8TK5yVDzNVaWQwDQYJKoZIhvcNAQEL
       +BQAwETEPMA0GA1UEAwwGc2t5bmV0MB4XDTI1MTEwMzE0MjMzMVoXDTM1MTEwMTE0
       +MjMzMVowETEPMA0GA1UEAwwGc2t5bmV0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
       +MIICCgKCAgEAyv/3sK0rocx3JNrORSEtnlsl4qVOkhb1arsxDhAp2yu74CqMXD/n
       +NMOVQddI0EAtXLLLQ55qqTJ4unm7yWU543rXIncrL6ooA/AJZzQo83ymDtOfjI6z
       +3tK5mbaLXt9XJPaCYj5pIlcJFNva0WnNFZXMjFk/3kTOMitu74tItib729NSpFBy
       +IdQgvjanp6e0aAi3GCM9Aiw3zzOEC9Ye75S9g4NmVE4yXgsmNlHXPvTLO9KD9Ro+
       +QTQMvXhtmNwkzmBkDS6zc649kRZHRy4BXECYjut61qBrmSd0vEzodaW/5nlM9xCN
       +7H7FGVqtAw6dbRFx8hex8tZ0KMnituKgzX6uNHlNkgY5s9GM8BFhh6l26gQ5LYEk
       +Rvn7uHhE5RenhIPuMpjtQlnDDH9m5FMGwCDvobe8A5Q9eYyH6iA+AIuKAFTbH5w6
       +Bg17oHCNHp71eWyzoxsYphDM7J/gtKSSrwow5Bx3tmA91pMtx/wemoZCuSCkg6Gr
       +TpeYSPEvk0koozBdQdm7eaLCJHBPlEREyeeIoMubPdzEFGkalpsbW/DLIMx7qGJl
       +CfOr1lQ1psd5xOmrF7KaFsHpsbbQEtSXVfW0uSrjpNjmpQ6F+mGVwWidSiR0KyQ5
       +dBlAJOCsLYa/sYv157UTpfw8MjI6qEu8V6yZn5XTx8GFVOOsEeplA5UCAwEAAaNT
       +MFEwHQYDVR0OBBYEFJ7Hs/qaoATvn2IvuJPj92hSY2kYMB8GA1UdIwQYMBaAFJ7H
       +s/qaoATvn2IvuJPj92hSY2kYMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL
       +BQADggIBAI8O6AC2mrv5zhZGJ9WWYp5Wp54eyeAyl0FiDrO7tNH5k3D7+sW8V0fH
       +oNV8skMRXKaCFezw+Mnj+KdMDBZmPbpIBcT/vvnbGrlhh+qCtNVCMEmzuHFd9IZ6
       +C2+nmS5Zd55Uv5lJwM8ra3qag1aQCO1slHlf/XDJ49IyiaMlWNf+vG9I1UObLRqT
       +z11zpRQSAGW4EIx+Dp/pNYZWyFYYA2EjT+EI4mISYQwTmYkCAedjWittvRRLOMNC
       +SA9ocqgvMEhsMPmh68RSFqwAMEyWJ2TJG3DsbYZImtlrzpaZOe44eXfMRaB/YHpG
       +ZUk6Lh1MGUjwzsHi/u1vEx1IyS+BrHtpLaw84b4yyzU9NAjzd7TzBiPCsQoHtsrY
       +XA6G1gqzRedgRL/i8NiUl+aVeTxZbYubdaOTylGLj7+9wYfhmgPjqx5xK7bR0Fo3
       +Ytc89POn0r7Yj2g3cObarpF4hP4TUHHuKL43N9WzWZ+aPwu+BwU0LPl9UIKE1TOM
       +Nb8f0vAigOliApgdXeX2jet/sUIBZ9sW+s5Hzr8KjUyxrjBLyd1NqLuVa98vfRog
       +E8yQkhwOix+o17ZPKPwkiCZCmg5jDr2rIo6L68jBbVLUtGVOag7XR7lBp6AgRPpP
       +rriqEhBn2O5OXp5YAHtjgENOAnBMgT86FMQGDyiz8lEuO+iGExri
       +-----END CERTIFICATE-----
   DIR diff --git a/keys/development-1.key.pem b/keys/development-1.key.pem
       @@ -0,0 +1,52 @@
       +-----BEGIN PRIVATE KEY-----
       +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
       +0gQMNEtUuNsuHLkBbiNvEcdzGV/S
       +-----END PRIVATE KEY-----
   DIR diff --git a/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in b/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in
       @@ -0,0 +1,46 @@
       +fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
       +
       +test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B"
       +test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3
       +test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3
       +test -n "${BOOT_DEV}" || setenv BOOT_DEV "mmc 0:1"
       +
       +setenv bootpart
       +setenv raucslot
       +
       +for BOOT_SLOT in "${BOOT_ORDER}"; do
       +  if test "x${bootpart}" != "x"; then
       +    # skip remaining slots
       +  elif test "x${BOOT_SLOT}" = "xA"; then
       +    if itest ${BOOT_A_LEFT} -gt 0; then
       +      setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1
       +      echo "Found valid RAUC slot A"
       +      setenv bootpart "/dev/mmcblk0p2"
       +      setenv raucslot "A"
       +      setenv BOOT_DEV "mmc 0:2"
       +    fi
       +  elif test "x${BOOT_SLOT}" = "xB"; then
       +    if itest ${BOOT_B_LEFT} -gt 0; then
       +      setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1
       +      echo "Found valid RAUC slot B"
       +      setenv bootpart "/dev/mmcblk0p3"
       +      setenv raucslot "B"
       +      setenv BOOT_DEV "mmc 0:3"
       +    fi
       +  fi
       +done
       +
       +if test -n "${bootpart}"; then
       +  setenv bootargs "${bootargs} root=${bootpart} rauc.slot=${raucslot}"
       +  saveenv
       +else
       +  echo "No valid RAUC slot found. Resetting tries to 3"
       +  setenv BOOT_A_LEFT 3
       +  setenv BOOT_B_LEFT 3
       +  saveenv
       +  reset
       +fi
       +
       +fatload mmc 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
       +if test ! -e mmc 0:1 uboot.env; then saveenv; fi;
       +@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr}
   DIR diff --git a/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bbappend b/recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bbappend
       @@ -0,0 +1,4 @@
       +inherit rauc-integration
       +
       +FILESEXTRAPATHS:prepend:rauc-integration := "${THISDIR}/files:"
       +SRC_URI:append:rauc-integration = " file://boot.cmd.in"
   DIR diff --git a/recipes-core/base-files/base-files_%.bbappend b/recipes-core/base-files/base-files_%.bbappend
       @@ -0,0 +1,4 @@
       +FILESEXTRAPATHS:prepend:rpi := "${THISDIR}/files:"
       +
       +# Add a mount point for a shared data partition
       +dirs755 += "/data"
   DIR diff --git a/recipes-core/base-files/files/fstab b/recipes-core/base-files/files/fstab
       @@ -0,0 +1,14 @@
       +# stock fstab - you probably want to override this with a machine specific one
       +
       +/dev/root            /                    auto       defaults              1  1
       +proc                 /proc                proc       defaults              0  0
       +devpts               /dev/pts             devpts     mode=0620,ptmxmode=0666,gid=5      0  0
       +tmpfs                /run                 tmpfs      mode=0755,nodev,nosuid,strictatime 0  0
       +tmpfs                /var/volatile        tmpfs      defaults              0  0
       +
       +# uncomment this if your device has a SD/MMC/Transflash slot
       +#/dev/mmcblk0p1       /media/card          auto       defaults,sync,noauto  0  0
       +
       +/dev/mmcblk0p1  /boot   vfat    defaults         0       0
       +/dev/mmcblk0p5  /data   ext4    defaults         0       0
       +/dev/mmcblk0p6  /home   ext4    x-systemd.growfs 0       0
   DIR diff --git a/recipes-core/bundles/files/development-1.cert.pem b/recipes-core/bundles/files/development-1.cert.pem
       @@ -0,0 +1,80 @@
       +Certificate:
       +    Data:
       +        Version: 3 (0x2)
       +        Serial Number: 2 (0x2)
       +        Signature Algorithm: sha256WithRSAEncryption
       +        Issuer: O=Test Org, CN=Test Org rauc CA Development
       +        Validity
       +            Not Before: Jan  1 00:00:00 1970 GMT
       +            Not After : Dec 31 23:59:59 9999 GMT
       +        Subject: O=Test Org, CN=Test Org Development-1
       +        Subject Public Key Info:
       +            Public Key Algorithm: rsaEncryption
       +                RSA Public-Key: (2048 bit)
       +                Modulus:
       +                    00:ac:2b:0f:05:02:d0:bb:b0:47:05:36:71:3c:20:
       +                    0e:a7:76:8d:75:c1:23:5e:6c:7a:2d:94:ff:3c:17:
       +                    d8:0b:44:48:2a:82:03:92:c5:fd:33:76:0c:42:cf:
       +                    4d:8a:c9:47:7f:af:52:7c:15:6c:3b:e7:60:d1:04:
       +                    97:24:7b:07:1f:56:7d:6c:3f:31:e8:f9:36:7b:33:
       +                    5b:cf:54:ea:37:98:a6:b1:9a:1d:da:96:a1:07:14:
       +                    9c:15:80:4d:db:0c:03:86:ce:c7:3d:72:57:a2:da:
       +                    a0:c0:8c:b2:9a:a0:6a:e5:b8:5f:52:d2:f6:27:ca:
       +                    48:f4:e3:86:eb:be:24:93:6a:af:60:68:7f:09:3b:
       +                    81:96:ce:85:0c:63:93:d8:fa:91:dc:50:2e:77:bb:
       +                    bc:38:42:e9:86:d8:ac:33:dd:e6:d4:37:69:e3:01:
       +                    8d:21:8f:a9:4a:7f:15:a5:aa:a9:be:fc:36:93:a4:
       +                    10:0c:18:33:30:06:7f:1c:13:b3:a9:c6:57:d7:6b:
       +                    96:45:15:e7:f5:8f:3d:48:e0:08:46:4f:7f:ef:14:
       +                    77:95:25:25:9b:14:21:84:25:eb:37:0b:01:48:e6:
       +                    f5:c1:8b:61:c6:cb:8c:6b:a7:d8:d2:f9:31:e3:80:
       +                    3f:78:ea:6a:41:6c:5d:4d:83:a6:54:0d:5b:c2:0e:
       +                    f6:ef
       +                Exponent: 65537 (0x10001)
       +        X509v3 extensions:
       +            X509v3 Subject Key Identifier: 
       +                89:4C:FE:8A:60:4D:C9:6D:F7:A8:C0:04:49:7F:AA:05:92:29:17:FB
       +            X509v3 Authority Key Identifier: 
       +                keyid:44:0C:AF:4A:74:B4:C7:65:02:B2:95:F1:91:7C:A3:CC:E6:3E:99:E8
       +                DirName:/O=Test Org/CN=Test Org rauc CA Development
       +                serial:01
       +
       +            X509v3 Basic Constraints: 
       +                CA:FALSE
       +    Signature Algorithm: sha256WithRSAEncryption
       +         2c:d2:30:68:f5:84:52:1e:cf:ed:0d:fc:e7:02:69:0b:3b:f6:
       +         c3:77:00:12:1d:2d:d0:8f:49:9e:5c:f1:00:7b:1d:4f:d5:a9:
       +         46:a5:df:54:90:50:b4:8f:8e:ba:4b:2d:82:74:eb:5b:a8:f5:
       +         45:7b:77:73:b1:9b:32:93:15:c0:5c:02:2a:ed:b0:1e:bb:d8:
       +         4e:41:17:20:af:04:46:21:20:7b:86:9f:32:ab:54:71:26:e8:
       +         0b:75:12:9c:63:53:4f:54:db:a7:f9:b2:fa:e9:ee:4a:9d:80:
       +         ba:ae:3f:eb:ef:10:11:2d:4f:5a:34:fb:8b:45:10:63:0b:f8:
       +         af:f3:8b:24:21:2a:e0:0b:44:38:44:b5:9d:6e:8a:ff:1f:bf:
       +         6e:44:21:22:ec:8a:8d:73:63:e5:df:1a:ec:2a:64:1f:97:f9:
       +         5c:3a:25:7f:03:80:4c:db:99:5e:f9:7d:2b:f1:d0:97:4d:95:
       +         6f:29:47:7b:3f:29:e3:96:25:b0:1c:f1:0b:8b:8b:ba:de:3b:
       +         3f:40:2e:bd:31:68:ea:a9:8f:dc:c9:09:22:df:76:69:08:5d:
       +         5d:a4:09:62:80:20:83:9e:bd:d4:a6:35:ee:97:50:66:39:62:
       +         66:1b:2e:75:f2:6d:e7:06:ae:67:5f:4b:63:5c:52:e7:5d:dd:
       +         c9:0c:86:2b
       +-----BEGIN CERTIFICATE-----
       +MIIDfTCCAmWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADA6MREwDwYDVQQKDAhUZXN0
       +IE9yZzElMCMGA1UEAwwcVGVzdCBPcmcgcmF1YyBDQSBEZXZlbG9wbWVudDAgFw03
       +MDAxMDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowNDERMA8GA1UECgwIVGVzdCBP
       +cmcxHzAdBgNVBAMMFlRlc3QgT3JnIERldmVsb3BtZW50LTEwggEiMA0GCSqGSIb3
       +DQEBAQUAA4IBDwAwggEKAoIBAQCsKw8FAtC7sEcFNnE8IA6ndo11wSNebHotlP88
       +F9gLREgqggOSxf0zdgxCz02KyUd/r1J8FWw752DRBJckewcfVn1sPzHo+TZ7M1vP
       +VOo3mKaxmh3alqEHFJwVgE3bDAOGzsc9clei2qDAjLKaoGrluF9S0vYnykj044br
       +viSTaq9gaH8JO4GWzoUMY5PY+pHcUC53u7w4QumG2Kwz3ebUN2njAY0hj6lKfxWl
       +qqm+/DaTpBAMGDMwBn8cE7OpxlfXa5ZFFef1jz1I4AhGT3/vFHeVJSWbFCGEJes3
       +CwFI5vXBi2HGy4xrp9jS+THjgD946mpBbF1Ng6ZUDVvCDvbvAgMBAAGjgZEwgY4w
       +HQYDVR0OBBYEFIlM/opgTclt96jABEl/qgWSKRf7MGIGA1UdIwRbMFmAFEQMr0p0
       +tMdlArKV8ZF8o8zmPpnooT6kPDA6MREwDwYDVQQKDAhUZXN0IE9yZzElMCMGA1UE
       +AwwcVGVzdCBPcmcgcmF1YyBDQSBEZXZlbG9wbWVudIIBATAJBgNVHRMEAjAAMA0G
       +CSqGSIb3DQEBCwUAA4IBAQAs0jBo9YRSHs/tDfznAmkLO/bDdwASHS3Qj0meXPEA
       +ex1P1alGpd9UkFC0j466Sy2CdOtbqPVFe3dzsZsykxXAXAIq7bAeu9hOQRcgrwRG
       +ISB7hp8yq1RxJugLdRKcY1NPVNun+bL66e5KnYC6rj/r7xARLU9aNPuLRRBjC/iv
       +84skISrgC0Q4RLWdbor/H79uRCEi7IqNc2Pl3xrsKmQfl/lcOiV/A4BM25le+X0r
       +8dCXTZVvKUd7PynjliWwHPELi4u63js/QC69MWjqqY/cyQki33ZpCF1dpAligCCD
       +nr3UpjXul1BmOWJmGy518m3nBq5nX0tjXFLnXd3JDIYr
       +-----END CERTIFICATE-----
   DIR diff --git a/recipes-core/bundles/files/development-1.key.pem b/recipes-core/bundles/files/development-1.key.pem
       @@ -0,0 +1,28 @@
       +-----BEGIN PRIVATE KEY-----
       +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCsKw8FAtC7sEcF
       +NnE8IA6ndo11wSNebHotlP88F9gLREgqggOSxf0zdgxCz02KyUd/r1J8FWw752DR
       +BJckewcfVn1sPzHo+TZ7M1vPVOo3mKaxmh3alqEHFJwVgE3bDAOGzsc9clei2qDA
       +jLKaoGrluF9S0vYnykj044brviSTaq9gaH8JO4GWzoUMY5PY+pHcUC53u7w4QumG
       +2Kwz3ebUN2njAY0hj6lKfxWlqqm+/DaTpBAMGDMwBn8cE7OpxlfXa5ZFFef1jz1I
       +4AhGT3/vFHeVJSWbFCGEJes3CwFI5vXBi2HGy4xrp9jS+THjgD946mpBbF1Ng6ZU
       +DVvCDvbvAgMBAAECggEASphBYq9sltVyf/ytpRpSnxYLhmiPFXs0mIlE6Nl/3qnQ
       +BrLcL3yfDuvntg6xjx9UXistNtvlUDMYzJcLkV/InzhPEVZ0HnfTth9zeOpWrI30
       +M2EN7EZ1MGcqlVpI4U5cPM1cn+/proLBQYv0WnCEwFFY477JrkXDxG7MZ1mz6TaL
       +IGcCCIUu1BxECngQ344eaKrSR5F2MtlxAl19Pt5QSPfmuMdmElrK6RtBjnKrDu1K
       +fe6DCfObZ3nbG2fhFV4uTxhlTC9lUmfTQMKR79rLmHNKnbMx74kFNvy3XlT2l35I
       +ZVfRMLPWph7yMom9v/Im3Q70uhJ1lxyqbbl/DFZVmQKBgQDVo19SqR/QeDIxPIPn
       +XvVWzo5ml3KO/dVxA8sok6twr+G7yUeIUnuauYFA/tX/FS32azFRa/7GjUfoTx3q
       +GHK43TBCMyEt0we6WwZb+FkWa/b/RBoyD/audrpmgDDi1+fXPs8bBvoO8/oju20D
       +I6wOjSovcIMaeLo/+u3U6ShNQwKBgQDOTpoGMsQzXchZfDmxL61h3j4Gtjrl4BpU
       +WhAkJ9U2BRpL8NSZLErn5ik8MwgK2ut+YdU7aogI0D6Gc+4zZoJDEbhhmPD9cprv
       +LMyfAKoisR01OyU57mMSGQq0dfjmK6PfYJdX5sQJGkMFptNAJLTDoYtmXItSICoY
       +1j5KTvwe5QKBgGytxmErjfakHoxzh3pdERuOylwgMPPS5xCt6FyE+pLBtmisFQqh
       +QyXLtpgUy1IPOSmBED6mXJ4u4uSn0sTymPG3+8PBdOB12RmREqQYq2E/nQ/wWg8b
       +ldbcqShZkATl5pfV6M+L9gtDS/1/bA5LyExCvbISX29I+R5xDSnhTlI3AoGBAJRK
       +VVXtOa/+UhtYOpPMxGCbgZQLemxvWB2XmxCR/SRWKJ+7XOU4vCLSAoO93qMG1szB
       +/6Y0ndFP9hFo1SfnH+ybmR+18ksLDKisV+xWavSCwI7Zk5l/a4C/tT0fqyeu6JyQ
       +bliFjBVK5i/yyNfLSo9v16ZdENuYOQofPSjmezytAoGBALhwvtzgqvqGSXID2w5N
       +ullK8ny3WRa1o5DLXuMV19CvknmrN/zmmjQLblKkdp9VBb7uo8czon+qL1ZZyywC
       +W2BmHfGMPUyQHux4btsdJhlWcS7z7aYXM9QWiKlI+EKLHLILYk+LPIEf85sUcOZV
       +eCBpViT7fv2iv/0L+mzjWtLA
       +-----END PRIVATE KEY-----
   DIR diff --git a/recipes-core/bundles/update-bundle.bb b/recipes-core/bundles/update-bundle.bb
       @@ -0,0 +1,16 @@
       +DESCRIPTION = "RAUC bundle generator"
       +
       +inherit bundle
       +
       +RAUC_BUNDLE_COMPATIBLE = "${MACHINE}"
       +RAUC_BUNDLE_VERSION = "v20200703"
       +RAUC_BUNDLE_DESCRIPTION = "RAUC Demo Bundle"
       +
       +RAUC_BUNDLE_FORMAT = "verity"
       +
       +RAUC_BUNDLE_SLOTS = "rootfs" 
       +RAUC_SLOT_rootfs = "core-image-minimal"
       +RAUC_SLOT_rootfs[fstype] = "ext4"
       +
       +RAUC_KEY_FILE = "${THISDIR}/files/development-1.key.pem"
       +RAUC_CERT_FILE = "${THISDIR}/files/development-1.cert.pem"
   DIR diff --git a/recipes-core/images/skynet-image.bb b/recipes-core/images/skynet-image.bb
       @@ -0,0 +1,8 @@
       +DESCRIPTION = "Skynet OS image with RAUC support"
       +
       +require recipes-core/images/core-image-minimal.bb
       +
       +IMAGE_INSTALL:append = " rauc"
       +IMAGE_FSTYPES:append = " ext4"
       +WKS_FILE = "sdimage-dual-raspberrypi.wks.in"
       +
   DIR diff --git a/recipes-core/rauc/files/ca.cert.pem b/recipes-core/rauc/files/ca.cert.pem
       @@ -0,0 +1,80 @@
       +Certificate:
       +    Data:
       +        Version: 3 (0x2)
       +        Serial Number: 1 (0x1)
       +        Signature Algorithm: sha256WithRSAEncryption
       +        Issuer: O=Test Org, CN=Test Org rauc CA Development
       +        Validity
       +            Not Before: Jan  1 00:00:00 1970 GMT
       +            Not After : Dec 31 23:59:59 9999 GMT
       +        Subject: O=Test Org, CN=Test Org rauc CA Development
       +        Subject Public Key Info:
       +            Public Key Algorithm: rsaEncryption
       +                RSA Public-Key: (2048 bit)
       +                Modulus:
       +                    00:c0:fe:7b:6c:c3:e3:47:cc:d4:15:e1:0c:b2:1c:
       +                    c9:f7:61:3e:42:d7:f1:a4:30:f2:db:0e:49:95:49:
       +                    70:ee:97:6d:fe:48:5d:b9:22:63:47:e0:be:63:d7:
       +                    68:9b:38:04:7d:7f:d9:65:ef:1d:6c:26:cb:05:7f:
       +                    59:45:15:9d:76:59:c4:8d:59:a0:38:a0:25:fa:86:
       +                    1b:f4:85:ff:cf:7c:c7:57:a3:7e:56:71:7d:69:c3:
       +                    69:a7:fb:e6:8e:bc:f9:49:e2:f5:9a:97:e5:2d:75:
       +                    ef:f9:76:29:5f:76:11:1b:70:6f:4d:26:4f:e0:06:
       +                    9b:8c:e3:76:91:81:4a:4e:98:5d:2e:f4:bd:23:4d:
       +                    e7:5d:9b:ea:68:4d:03:9e:35:90:c5:f2:8d:ae:ed:
       +                    44:4f:f3:50:dc:2b:ef:ae:44:35:79:78:3d:65:4b:
       +                    d9:16:98:aa:be:08:47:25:af:68:1c:0b:8e:c1:aa:
       +                    02:a7:61:4f:4d:15:1b:07:3c:4e:60:b3:9a:d5:c1:
       +                    39:34:4e:8e:e7:93:46:f1:75:95:aa:16:9a:1d:e6:
       +                    49:15:a5:ae:06:8a:45:16:a9:af:59:60:9b:c6:6d:
       +                    3d:19:57:5d:de:31:d5:dc:96:0e:a4:25:fe:7a:07:
       +                    71:c5:40:c0:a3:d0:d5:84:47:14:7a:5a:f1:07:75:
       +                    79:35
       +                Exponent: 65537 (0x10001)
       +        X509v3 extensions:
       +            X509v3 Subject Key Identifier: 
       +                44:0C:AF:4A:74:B4:C7:65:02:B2:95:F1:91:7C:A3:CC:E6:3E:99:E8
       +            X509v3 Authority Key Identifier: 
       +                keyid:44:0C:AF:4A:74:B4:C7:65:02:B2:95:F1:91:7C:A3:CC:E6:3E:99:E8
       +                DirName:/O=Test Org/CN=Test Org rauc CA Development
       +                serial:01
       +
       +            X509v3 Basic Constraints: 
       +                CA:TRUE
       +    Signature Algorithm: sha256WithRSAEncryption
       +         30:07:51:4d:d6:2c:0c:2f:3e:6c:5c:34:1f:07:21:8d:50:77:
       +         9a:a6:81:75:62:f0:fe:ff:3b:5b:d0:7c:d1:45:e7:e2:67:d4:
       +         23:cb:af:9a:8b:f4:2b:d2:33:3d:45:bb:a7:7d:b4:9b:41:db:
       +         fb:62:ac:83:fc:41:ae:e5:dc:2d:df:7d:72:7e:df:34:01:60:
       +         94:7f:15:78:84:87:f0:23:e4:8e:b8:dc:71:cb:84:4b:25:bb:
       +         62:8f:fd:7f:d3:3c:1d:85:45:fb:03:7c:a2:bc:c4:a8:fa:2b:
       +         ec:79:67:8d:f4:5f:37:a8:5a:54:bc:b3:78:11:0b:8b:29:90:
       +         8b:48:4a:d7:87:93:96:97:72:10:1d:70:29:f8:e4:c3:81:6d:
       +         7d:c3:6e:d4:c8:1b:0b:0d:f9:c0:b9:7b:11:54:e2:af:8b:a0:
       +         45:de:c2:67:81:8c:0c:9d:ba:a1:31:8b:f2:cc:da:c7:cc:6d:
       +         21:92:2a:57:29:9c:48:92:75:d9:1a:6e:d3:ee:53:66:83:2e:
       +         08:74:09:5d:78:13:99:34:7d:16:8c:ba:29:75:80:20:8b:ca:
       +         91:19:29:64:ef:64:37:de:5b:22:18:99:5b:63:69:9a:a2:44:
       +         21:70:30:41:f2:58:27:ab:4f:5c:d0:e1:94:5d:d1:5b:8d:fd:
       +         bf:8f:a9:99
       +-----BEGIN CERTIFICATE-----
       +MIIDhjCCAm6gAwIBAgIBATANBgkqhkiG9w0BAQsFADA6MREwDwYDVQQKDAhUZXN0
       +IE9yZzElMCMGA1UEAwwcVGVzdCBPcmcgcmF1YyBDQSBEZXZlbG9wbWVudDAgFw03
       +MDAxMDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowOjERMA8GA1UECgwIVGVzdCBP
       +cmcxJTAjBgNVBAMMHFRlc3QgT3JnIHJhdWMgQ0EgRGV2ZWxvcG1lbnQwggEiMA0G
       +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA/ntsw+NHzNQV4QyyHMn3YT5C1/Gk
       +MPLbDkmVSXDul23+SF25ImNH4L5j12ibOAR9f9ll7x1sJssFf1lFFZ12WcSNWaA4
       +oCX6hhv0hf/PfMdXo35WcX1pw2mn++aOvPlJ4vWal+Utde/5dilfdhEbcG9NJk/g
       +BpuM43aRgUpOmF0u9L0jTeddm+poTQOeNZDF8o2u7URP81DcK++uRDV5eD1lS9kW
       +mKq+CEclr2gcC47BqgKnYU9NFRsHPE5gs5rVwTk0To7nk0bxdZWqFpod5kkVpa4G
       +ikUWqa9ZYJvGbT0ZV13eMdXclg6kJf56B3HFQMCj0NWERxR6WvEHdXk1AgMBAAGj
       +gZQwgZEwHQYDVR0OBBYEFEQMr0p0tMdlArKV8ZF8o8zmPpnoMGIGA1UdIwRbMFmA
       +FEQMr0p0tMdlArKV8ZF8o8zmPpnooT6kPDA6MREwDwYDVQQKDAhUZXN0IE9yZzEl
       +MCMGA1UEAwwcVGVzdCBPcmcgcmF1YyBDQSBEZXZlbG9wbWVudIIBATAMBgNVHRME
       +BTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAwB1FN1iwMLz5sXDQfByGNUHeapoF1
       +YvD+/ztb0HzRRefiZ9Qjy6+ai/Qr0jM9RbunfbSbQdv7YqyD/EGu5dwt331yft80
       +AWCUfxV4hIfwI+SOuNxxy4RLJbtij/1/0zwdhUX7A3yivMSo+ivseWeN9F83qFpU
       +vLN4EQuLKZCLSErXh5OWl3IQHXAp+OTDgW19w27UyBsLDfnAuXsRVOKvi6BF3sJn
       +gYwMnbqhMYvyzNrHzG0hkipXKZxIknXZGm7T7lNmgy4IdAldeBOZNH0WjLopdYAg
       +i8qRGSlk72Q33lsiGJlbY2maokQhcDBB8lgnq09c0OGUXdFbjf2/j6mZ
       +-----END CERTIFICATE-----
   DIR diff --git a/recipes-core/rauc/files/rauc-grow-data-partition.service b/recipes-core/rauc/files/rauc-grow-data-partition.service
       @@ -0,0 +1,13 @@
       +[Unit]
       +Description=Service to grow data partition size
       +DefaultDependencies=no
       +Before=home.mount
       +
       +[Service]
       +Type=oneshot
       +RemainAfterExit=yes
       +ExecStart=/usr/sbin/parted --script /dev/mmcblk0 resizepart 4 100%
       +ExecStart=/usr/sbin/parted --script /dev/mmcblk0 resizepart 6 100%
       +
       +[Install]
       +WantedBy=home.mount
   DIR diff --git a/recipes-core/rauc/files/system.conf b/recipes-core/rauc/files/system.conf
       @@ -0,0 +1,17 @@
       +[system]
       +compatible=@@MACHINE@@
       +bootloader=uboot
       +data-directory=/data/
       +
       +[keyring]
       +path=/etc/rauc/ca.cert.pem
       + 
       +[slot.rootfs.0]
       +device=/dev/mmcblk0p2
       +type=ext4
       +bootname=A
       +
       +[slot.rootfs.1]
       +device=/dev/mmcblk0p3
       +type=ext4
       +bootname=B
   DIR diff --git a/recipes-core/rauc/rauc-conf.bbappend b/recipes-core/rauc/rauc-conf.bbappend
       @@ -0,0 +1,6 @@
       +FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
       +SRC_URI:append := " file://ca.cert.pem "
       +
       +do_install:prepend() {
       +        sed -i "s/@@MACHINE@@/${MACHINE}/g" ${WORKDIR}/system.conf
       +}
   DIR diff --git a/recipes-core/rauc/rauc_%.bbapend b/recipes-core/rauc/rauc_%.bbapend
       @@ -0,0 +1,21 @@
       +FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
       +SRC_URI:append := "  \
       +        file://rauc-grow-data-partition.service \
       +"
       +
       +# additional dependencies required to run RAUC on the target
       +RDEPENDS:${PN} += "u-boot-fw-utils u-boot-env"
       +
       +inherit systemd
       +
       +SYSTEMD_PACKAGES += "${PN}-grow-data-part"
       +SYSTEMD_SERVICE:${PN}-grow-data-part = "rauc-grow-data-partition.service"
       +
       +PACKAGES += "rauc-grow-data-part"
       +
       +RDEPENDS:${PN}-grow-data-part += "parted"
       +
       +do_install:append() {
       +        install -d ${D}${systemd_unitdir}/system/
       +        install -m 0644 ${WORKDIR}/rauc-grow-data-partition.service ${D}${systemd_unitdir}/system/
       +}
   DIR diff --git a/recipes-core/udev/files/raspberrypi-rauc.rules b/recipes-core/udev/files/raspberrypi-rauc.rules
       @@ -0,0 +1,3 @@
       +/dev/mmcblk0p1
       +/dev/mmcblk0p2
       +/dev/mmcblk0p3
   DIR diff --git a/recipes-core/udev/udev-extraconf_%.bbapend b/recipes-core/udev/udev-extraconf_%.bbapend
       @@ -0,0 +1,6 @@
       +FILESEXTRAPATHS:prepend:rpi := "${THISDIR}/files:"
       +SRC_URI:append:rpi = " file://raspberrypi-rauc.rules"
       +
       +do_install:append:rpi() {
       +    install -m 0644 ${WORKDIR}/raspberrypi-rauc.rules ${D}${sysconfdir}/udev/mount.blacklist.d/
       +}
   DIR diff --git a/recipes-kernel/linux/files/rauc.cfg b/recipes-kernel/linux/files/rauc.cfg
       @@ -0,0 +1,8 @@
       +CONFIG_MD=y
       +CONFIG_BLK_DEV_DM=y
       +CONFIG_BLK_DEV_LOOP=y
       +CONFIG_DM_VERITY=y
       +CONFIG_SQUASHFS=y
       +CONFIG_CRYPTO_SHA256=y
       +# For bundle streaming
       +CONFIG_BLK_DEV_NBD=y
   DIR diff --git a/recipes-kernel/linux/linux-raspberrypi_%.bbappend b/recipes-kernel/linux/linux-raspberrypi_%.bbappend
       @@ -0,0 +1,6 @@
       +FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
       +
       +inherit rauc-integration
       +
       +SRC_URI:append:rauc-integration = " file://rauc.cfg"
       +CMDLINE:remove:rauc-integration = "root=/dev/mmcblk0p2"
   DIR diff --git a/wic/sdimage-dual-raspberrypi.wks.in b/wic/sdimage-dual-raspberrypi.wks.in
       @@ -0,0 +1,5 @@
       +part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4096 --size 100
       +part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label rootfs_A --align 4096
       +part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label rootfs_B --align 4096
       +part /data --fixed-size 100M --ondisk mmcblk0 --fstype=ext4 --label data --align 4096
       +part /home --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/home --ondisk mmcblk0 --fstype=ext4 --label homefs --align 1024 --size 500 --fsoptions "x-systemd.growfs"