From patchwork Wed May 22 23:08:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trevor Woerner X-Patchwork-Id: 44064 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02E9AC41513 for ; Wed, 22 May 2024 23:08:27 +0000 (UTC) Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by mx.groups.io with SMTP id smtpd.web10.2936.1716419298306063644 for ; Wed, 22 May 2024 16:08:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=dVtrjJg+; spf=pass (domain: gmail.com, ip: 209.85.219.54, mailfrom: twoerner@gmail.com) Received: by mail-qv1-f54.google.com with SMTP id 6a1803df08f44-6a8691d736cso10032916d6.0 for ; Wed, 22 May 2024 16:08:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716419296; x=1717024096; darn=lists.yoctoproject.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=KiBNwEhBy/1L0eqmVi6sfQb85z1DVbOdt9aVuPAAPq4=; b=dVtrjJg+Qr9TWs5wXikI1L4KN668bEgv3ANLALNAhhsFDF+bBPD9UkTqu6OaXUcijz kBcr2sfNrPjr0uHOqqGvM50MAekrCe2MiXdJs8KRoXYl+ubsrzwg5C20vr673GNDwd7R JXVr/uDBqGAwZ82ImxHKQwUqRzdjMo8Kx49YpQF0+qpO+WVKTdJ+FPuN7LmVWkwuxhf0 wrFdn0ISG5Rn22FdzGkPfECdRqwst8J77eg0UiRVq4olbtuNeSW0/dPYTM6eB2fbpyFh GeYclfh3HUmcQZ6sl4b7vkhYsEILtQUPrvaqVnsWaa+I9V2eJ8tKzOC7qn2p0QJoNjnW GvkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716419296; x=1717024096; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KiBNwEhBy/1L0eqmVi6sfQb85z1DVbOdt9aVuPAAPq4=; b=pQ39NbgZI/wTalvlH4bZL5JayK2EeNg2crtNtUV0eLQjfDC9h/9DNBLWVdn+epBUvv ELAc0cW/q/LcQw07LTJnigPp5Xxvpk6PIvTYSHWOnoEU5FYpcg8OJz7biJ5gjqzHO57L Ulmf0gbXl2Tfp2D/17ckUJq73NFB0jf4WxxWs/pSfX5qtEQRPQ2avlZbMqNKvptUgAdR EcYORwr2BucLk3qJtFV6TQTNKM5zaclj4Y1ZwCit3svlHs23VBfaH6MEjrtaBKyv/h4s bVxX80Ee1pGUzgwx96IWYhoAlHtd9c9NbQQ2fdl48EhZBahO18c04LBDCcx4SgOf9to0 gxRg== X-Gm-Message-State: AOJu0YzgzLwSbTQMOlc6yDumdak0mN4c0hMwqEHjsX24R46Qwt1B+fFS 4HgZQorQgPPAGMjfnIUE/FvvlvwzqVvQj5lJcCANDryceLQS28qg+2RAqA== X-Google-Smtp-Source: AGHT+IHSIDBtDKJVVcer7h621zf39B85TuGOEiS7dStuVH7Ko0zvF2VM/OxvX+ebsUBQNesceCCIiQ== X-Received: by 2002:a05:6214:4383:b0:6ab:8f57:e467 with SMTP id 6a1803df08f44-6ab8f5956e2mr12465456d6.8.1716419296117; Wed, 22 May 2024 16:08:16 -0700 (PDT) Received: from localhost.localdomain (pppoe-209-91-167-254.vianet.ca. [209.91.167.254]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6ab908a01b7sm743886d6.11.2024.05.22.16.08.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 May 2024 16:08:15 -0700 (PDT) From: Trevor Woerner To: yocto-patches@lists.yoctoproject.org Subject: [meta-rockchip][PATCH 1/4] rename root partition Date: Wed, 22 May 2024 19:08:05 -0400 Message-ID: <20240522230808.14409-1-twoerner@gmail.com> X-Mailer: git-send-email 2.44.0.501.g19981daefd7c MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 22 May 2024 23:08:27 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/168 Rename the root partition to "rootfsA" in the off-chance the user may someday be interested in implementing some sort of whole-partition update mechanism. Signed-off-by: Trevor Woerner --- conf/machine/include/rockchip-extlinux.inc | 2 +- wic/rockchip.wks | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/machine/include/rockchip-extlinux.inc b/conf/machine/include/rockchip-extlinux.inc index ca33f4c7f42a..ab46b76d33a1 100644 --- a/conf/machine/include/rockchip-extlinux.inc +++ b/conf/machine/include/rockchip-extlinux.inc @@ -12,7 +12,7 @@ NONFITDT ?= "${@d.getVar('KERNEL_DEVICETREE').split('/')[1]}" UBOOT_EXTLINUX ?= "1" -UBOOT_EXTLINUX_ROOT ?= "root=PARTLABEL=root" +UBOOT_EXTLINUX_ROOT ?= "root=PARTLABEL=rootfsA" UBOOT_EXTLINUX_FDTDIR ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '/boot', d)}" UBOOT_EXTLINUX_FDT ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '${NONFITDT}', d)}" UBOOT_EXTLINUX_CONSOLE ?= "earlycon console=tty1 console=${RK_CONSOLE_DEVICE},${RK_CONSOLE_BAUD}n8" diff --git a/wic/rockchip.wks b/wic/rockchip.wks index bc65f73b0cf3..e1d74d9983ab 100644 --- a/wic/rockchip.wks +++ b/wic/rockchip.wks @@ -26,6 +26,6 @@ part uboot_env --offset 8128s --fixed-size 32K --fstype=none --part-name uboo part reserved2 --offset 8192s --fixed-size 4096K --fstype=none --part-name reserved2 part loader2 --offset 16384s --fixed-size 4096K --fstype=none --part-name loader2 --source rawcopy --sourceparams="file=u-boot.${UBOOT_SUFFIX}" part atf --offset 24576s --fixed-size 4096K --fstype=none --part-name atf -part / --label root --active --fstype=ext4 --part-name root --source rootfs +part / --label rootfsA --active --fstype=ext4 --part-name rootfsA --source rootfs bootloader --ptable gpt From patchwork Wed May 22 23:08:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trevor Woerner X-Patchwork-Id: 44067 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F94CC25B7D for ; Wed, 22 May 2024 23:08:27 +0000 (UTC) Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) by mx.groups.io with SMTP id smtpd.web10.2938.1716419299010029587 for ; Wed, 22 May 2024 16:08:19 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=UNU0Iv3w; spf=pass (domain: gmail.com, ip: 209.85.219.42, mailfrom: twoerner@gmail.com) Received: by mail-qv1-f42.google.com with SMTP id 6a1803df08f44-69cb4a046dfso24097366d6.2 for ; Wed, 22 May 2024 16:08:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716419297; x=1717024097; darn=lists.yoctoproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=vdK2lWJFmURLTf6wV+I2BM0kPifXnUIEFqpBMb7vJ5M=; b=UNU0Iv3w/Q4xA/azCDdgnx0P3asrHmhGJXwgFW5LDLNUxH6Uh6clw88oFg9qWX6WVg KoZYfDGalc7BUxoGT6ehsa3kLE1ochkzX6vgPW0EKw8KsLz3xZJmturnvWH9JOF0Y36q WGtV34yxgeLndPxJ/dBQOvUW1NzvSZUC9OOa5f2rB38YHiPncRFzEI+0Dlxn7yf9NWP0 6HFUzIC4IAFitexJvTUjeZN+x70UszxkNJY/inrcK3yVo7RVKWyIJddto8haH0oh25Va bVsTS7dZMs3nE0nvJBlijP2QKL9kiysroI3oMFdo2J5a+xQUHygOpZdB8DAagp6NGhCc LFYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716419297; x=1717024097; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vdK2lWJFmURLTf6wV+I2BM0kPifXnUIEFqpBMb7vJ5M=; b=i8suYVMLT32rZ7N+2N4GBdQe+sILo+1AB5oWFQ+6L8UPVVaZ4WOIht6Wauez4hD0sU BPKKR1A4YoKZKdTsxzYDZMX9Ek0y3uy1mEbcvHNMobM8B1ingZ6kVMMyJfLmfETPSkd4 OjFeTn7Mk4R+asgsY5r5rkClYHRhD4ao0J7bwOrl+Mvun9Etx31GFO45yBNtp7pAY1eI K9QFodogNmDymQ7bxOB8CXp2bzJUYB8VnyQgP8GidB79dBfm6oKIRLOEhZ8F/ogm1jL2 pTTV7UrotL0RwA+/yNQ1cAnM1Kv+9JWD+7Hee7ItDuI4gur7AOcUSefbO7BPODaLpt2V +W1Q== X-Gm-Message-State: AOJu0Yzo2WjY9OrYyuZ6J5K4sE67J8bY2b7Fb6Nub8h9yoc1/khW+60z z+1JjzNzp/lUdTLfgDU/8l5t6a0PLf/WTwzKtZMP99PuUyZwlGBr8O7xjg== X-Google-Smtp-Source: AGHT+IHoEhj5q4ywvQ/V2bg46RcCOqv0cDgHEMdS1hZ0//1U3tb2YvOkD+IrkMpRMp324C0/bKbOvQ== X-Received: by 2002:a05:6214:3a09:b0:6aa:4784:6b41 with SMTP id 6a1803df08f44-6ab808fc740mr45056676d6.52.1716419297159; Wed, 22 May 2024 16:08:17 -0700 (PDT) Received: from localhost.localdomain (pppoe-209-91-167-254.vianet.ca. [209.91.167.254]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6ab908a01b7sm743886d6.11.2024.05.22.16.08.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 May 2024 16:08:16 -0700 (PDT) From: Trevor Woerner To: yocto-patches@lists.yoctoproject.org Subject: [meta-rockchip][PATCH 2/4] specify root partition type Date: Wed, 22 May 2024 19:08:06 -0400 Message-ID: <20240522230808.14409-2-twoerner@gmail.com> X-Mailer: git-send-email 2.44.0.501.g19981daefd7c In-Reply-To: <20240522230808.14409-1-twoerner@gmail.com> References: <20240522230808.14409-1-twoerner@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 22 May 2024 23:08:27 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/169 Specify the root partition's type according to the Discoverable Partitions Specification: 32-bit ARM: 69dad710-2ce4-4e3c-b16c-21a1d49abed3 64-bit ARM: B921B045-1DF0-41C3-AF44-4C6F280D3FAE Link: https://uapi-group.org/specifications/specs/discoverable_partitions_specification/ Signed-off-by: Trevor Woerner --- conf/machine/include/rockchip-defaults.inc | 6 ++++++ conf/machine/include/rockchip-wic.inc | 1 + wic/rockchip.wks | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/conf/machine/include/rockchip-defaults.inc b/conf/machine/include/rockchip-defaults.inc index 2387eb909934..717085b1535c 100644 --- a/conf/machine/include/rockchip-defaults.inc +++ b/conf/machine/include/rockchip-defaults.inc @@ -21,3 +21,9 @@ XSERVER = " \ SERIAL_CONSOLES ?= "1500000;ttyS2" RK_CONSOLE_BAUD ?= "${@d.getVar('SERIAL_CONSOLES').split(';')[0]}" RK_CONSOLE_DEVICE ?= "${@d.getVar('SERIAL_CONSOLES').split(';')[1].split()[0]}" + +# Discoverable Partitions Specification (DPS) +ROOT_DPS = "B921B045-1DF0-41C3-AF44-4C6F280D3FAE" +ROOT_DPS:rk3066 = "69dad710-2ce4-4e3c-b16c-21a1d49abed3" +ROOT_DPS:rk3188 = "69dad710-2ce4-4e3c-b16c-21a1d49abed3" +ROOT_DPS:rk3288 = "69dad710-2ce4-4e3c-b16c-21a1d49abed3" diff --git a/conf/machine/include/rockchip-wic.inc b/conf/machine/include/rockchip-wic.inc index b5ee6e0c2724..dab61d83ed2c 100644 --- a/conf/machine/include/rockchip-wic.inc +++ b/conf/machine/include/rockchip-wic.inc @@ -19,6 +19,7 @@ RK_UBOOT_ENV:rk-u-boot-env = "${@ '--source rawcopy --sourceparams=file=u-boot.e WICVARS:append = " \ RK_UBOOT_ENV \ + ROOT_DPS \ SPL_BINARY \ UBOOT_SUFFIX \ " diff --git a/wic/rockchip.wks b/wic/rockchip.wks index e1d74d9983ab..cabdb6559550 100644 --- a/wic/rockchip.wks +++ b/wic/rockchip.wks @@ -26,6 +26,6 @@ part uboot_env --offset 8128s --fixed-size 32K --fstype=none --part-name uboo part reserved2 --offset 8192s --fixed-size 4096K --fstype=none --part-name reserved2 part loader2 --offset 16384s --fixed-size 4096K --fstype=none --part-name loader2 --source rawcopy --sourceparams="file=u-boot.${UBOOT_SUFFIX}" part atf --offset 24576s --fixed-size 4096K --fstype=none --part-name atf -part / --label rootfsA --active --fstype=ext4 --part-name rootfsA --source rootfs +part / --label rootfsA --active --fstype=ext4 --part-name rootfsA --source rootfs --part-type ${ROOT_DPS} bootloader --ptable gpt From patchwork Wed May 22 23:08:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trevor Woerner X-Patchwork-Id: 44066 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F983C25B7E for ; Wed, 22 May 2024 23:08:27 +0000 (UTC) Received: from mail-yw1-f176.google.com (mail-yw1-f176.google.com [209.85.128.176]) by mx.groups.io with SMTP id smtpd.web10.2939.1716419300762474563 for ; Wed, 22 May 2024 16:08:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=HBcvNH1Q; spf=pass (domain: gmail.com, ip: 209.85.128.176, mailfrom: twoerner@gmail.com) Received: by mail-yw1-f176.google.com with SMTP id 00721157ae682-622f5a0badcso61404937b3.2 for ; Wed, 22 May 2024 16:08:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716419299; x=1717024099; darn=lists.yoctoproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=wmpwtWyenmFuHWCL32BFhZ9+MfVY4WDq5iib8a33QWs=; b=HBcvNH1Qio5sA9UEu0B3huJGLkJqOX+1w/SYJ81vEQHPot5gbA5MWHrnB85hMHVg0m IrvQfF2gZgXj9j7XJ9X+W5809xUPSZaN1WDj44I0EumP6STs9SzGarycEMDsOWZmU2zp uznYgf7foI2iwSazUXKPEND94yneKR/ZgiELxjZiKgjlTEqA54KxnLhmtQCwGq3dglcE B+QHdEilHR3oEfFXZcD1i1fYKLuYWwQJEU89dWM5uEkJTwiIXxLyvr/8w5/f01+UwkSr 8xoqkq93E07Tcdo2p+vNl0xq0ye1qQAa88HpGB5kB+CBES2BHaOchRle7a9L8ApEfNtF 22CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716419299; x=1717024099; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wmpwtWyenmFuHWCL32BFhZ9+MfVY4WDq5iib8a33QWs=; b=bzvKCu0OomSq1IGl//cZ/4nnqvV0xrwPLJlZ3MFWVo7jQSPuPX7Hkx2LGR/9Hiw+MG fkT8o4tdDQWrQw28i3iRdrSw3OnnDAcK/9P/MK12GPqcxl+XVJ1bIk0yAFavZ8nIpTou FRyGbLawnWhw2aX293/TbbcM8MHLi8gln9uopcVHiXyWH/YJ0gevdFSvavqX6JAKw2WD XyZweb06Ld6bFq8/UNJhNmgdAk2/dP0cdAbUnoGwy0Bosg+Wds8bJdQ9WE0XvaDsMYK6 miepReujFh3JuAVFP6OgPfUgGNMPxPCCq5UeEcP5CUo89SLsPM4vIogSaKNgE5tNIcbL CHrw== X-Gm-Message-State: AOJu0YxdynDkpOEJD5IBwmOQjCTDU1JRcjJr9Ec0Nr59MnAuQ8+Fpt2p dfxiueHoiRiqL+psXfZStfdX960CPkSGjqkHmyvmPdsUQ8Kdj6JeSXFzVA== X-Google-Smtp-Source: AGHT+IHsyFGwRQgoG195OaFKdBnW/ClG5JEDlRcVdxVKig1ehWS/5ggh9tF1AOUyYy6eSNQW+N3mEg== X-Received: by 2002:a81:ab4b:0:b0:618:8e3e:8675 with SMTP id 00721157ae682-627e46d4287mr37374577b3.22.1716419299245; Wed, 22 May 2024 16:08:19 -0700 (PDT) Received: from localhost.localdomain (pppoe-209-91-167-254.vianet.ca. [209.91.167.254]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6ab908a01b7sm743886d6.11.2024.05.22.16.08.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 May 2024 16:08:17 -0700 (PDT) From: Trevor Woerner To: yocto-patches@lists.yoctoproject.org Subject: [meta-rockchip][PATCH 3/4] u-boot: remove upstreamed dependency Date: Wed, 22 May 2024 19:08:07 -0400 Message-ID: <20240522230808.14409-3-twoerner@gmail.com> X-Mailer: git-send-email 2.44.0.501.g19981daefd7c In-Reply-To: <20240522230808.14409-1-twoerner@gmail.com> References: <20240522230808.14409-1-twoerner@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 22 May 2024 23:08:27 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/170 The dependency on pyelftools is now in upstream oe-core making this one redundant. Signed-off-by: Trevor Woerner Reviewed-by: Quentin Schulz --- recipes-bsp/u-boot/u-boot_%.bbappend | 2 -- 1 file changed, 2 deletions(-) diff --git a/recipes-bsp/u-boot/u-boot_%.bbappend b/recipes-bsp/u-boot/u-boot_%.bbappend index 33b521021a1c..5c9e442cca8d 100644 --- a/recipes-bsp/u-boot/u-boot_%.bbappend +++ b/recipes-bsp/u-boot/u-boot_%.bbappend @@ -3,8 +3,6 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" SRC_URI:append:rk-u-boot-env = " file://rockchip-enable-environment-mmc.cfg" SRCREV:rk-u-boot-env = "cdfcc37428e06f4730ab9a17cc084eeb7676ea1a" -# various machines require the pyelftools library for parsing dtb files -DEPENDS:append = " python3-pyelftools-native" DEPENDS:append:rk3308 = " u-boot-tools-native" DEPENDS:append:rock-pi-4 = " gnutls-native" DEPENDS:append:rk-u-boot-env = " u-boot-mkenvimage-native" From patchwork Wed May 22 23:08:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Trevor Woerner X-Patchwork-Id: 44065 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0149EC25B78 for ; Wed, 22 May 2024 23:08:27 +0000 (UTC) Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by mx.groups.io with SMTP id smtpd.web11.4523.1716419304055915731 for ; Wed, 22 May 2024 16:08:24 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=S04Pnul4; spf=pass (domain: gmail.com, ip: 209.85.160.170, mailfrom: twoerner@gmail.com) Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-43df732cb05so5894681cf.0 for ; Wed, 22 May 2024 16:08:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716419302; x=1717024102; darn=lists.yoctoproject.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=u6XjEW05/F6CEv7+hKZjd2t+ohesbWFjo7AJ2E1ZYY8=; b=S04Pnul4HhhTzwL+lKGrBWwAV1lQS9Cgr2pmHIVX1ecxY7p7ftTbE9e24uIPjJK+KQ 1Ed3K1kVj2dRCwAAIABr8hRifTlHlTBnNPvH9PzZeoP3qHcxga8quWuQ5mzrKNwQVBf4 5dS5Yt4hob1DNC7MWNyokz6OcsyrQvhhTJCcHD35f92dC1nT9SbCDnvuwnQ7/PVMZiiu 6ftF+xbcNkO6zAoTrrPbqs8bshTJ9znh29x7G6JwBdWf4UC/TrKqBwJ7EcUg7V0iIFpx tqW+bKtjQthp7LmxIOhgdip0706KuKLLhH64GUGKZ/STNyP72OCWV3ADhaHWCiP71Jvc dg7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716419302; x=1717024102; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u6XjEW05/F6CEv7+hKZjd2t+ohesbWFjo7AJ2E1ZYY8=; b=llbhPY0q2SqqW0BNiCeP74lfQ0gHGd0bEOtaKCCxQhtve67c6eaGg28HrOsWQxsQPw fkblUE0vQRNcDRO3QTdrGjWTqJsf5DGJmmZTWjAiJMs7rP8LC6qfUVDy8oF5QSpHAujK pvojKGVsvU3D9lm/ZnBF5Y9aurchgFq5BO2tUZ7AQPdZCPCyxNaPYM+TDAw/4QW94Haa Uh5PbXfr9YkeEy0SecpFNift1PstlFrE/JX1xxx+iIZf2bqFXbDJucOzwg3e7gTfhSu5 MKcI0AvtD7HPTtkyrE89pBhvJpQHyt/xqwGSY6IJZLhKNF1+pBxjcxPKc5QndAnzzcZr +3Fw== X-Gm-Message-State: AOJu0YyfjPiM1p0VqgQtOcuW4Yl3xu1g6+uJrxFoGbuBWYCwzhd53rvg lrQ6FHc1avgo6lVWNowuRi6lHSTOaVJ6HhMbznQWK9zCK7oZlrjb6Xa9yg== X-Google-Smtp-Source: AGHT+IEKRsQBi/8fQWGZX7x8AaIJvhuaSKOXWiWa5bvZtGOYcw4zr7oJr+ZrPN6G3V8JJXC+a8iW3w== X-Received: by 2002:a05:622a:14ce:b0:43a:67c2:d2ed with SMTP id d75a77b69052e-43f9e0a7a7bmr35077131cf.12.1716419301260; Wed, 22 May 2024 16:08:21 -0700 (PDT) Received: from localhost.localdomain (pppoe-209-91-167-254.vianet.ca. [209.91.167.254]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6ab908a01b7sm743886d6.11.2024.05.22.16.08.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 May 2024 16:08:19 -0700 (PDT) From: Trevor Woerner To: yocto-patches@lists.yoctoproject.org Subject: [meta-rockchip][PATCH 4/4] rauc demo: add Date: Wed, 22 May 2024 19:08:08 -0400 Message-ID: <20240522230808.14409-4-twoerner@gmail.com> X-Mailer: git-send-email 2.44.0.501.g19981daefd7c In-Reply-To: <20240522230808.14409-1-twoerner@gmail.com> References: <20240522230808.14409-1-twoerner@gmail.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 22 May 2024 23:08:27 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/171 Add an example of implementing rauc on a rockchip board. Adding the meta-rauc layer, adding 'rauc' to DISTRO_FEATURES, and enabling RK_RAUC_DEMO will build an image using the example provided in dynamic-layers/rk-rauc-demo. This example uses a simple A/B + D scheme (i.e. two root partitions and a non-updated /data partition). Repartitioning occurs automatically on first boot thanks to systemd's 'repart' mechanism. NOTE: - this example only works with systemd If you wish to provide your own implementation, simply add the meta-rauc layer, add 'rauc' to DISTRO_FEATURES, don't enable RK_RAUC_DEMO, and provide your own implementation in a separate layer. Signed-off-by: Trevor Woerner --- classes-recipe/rk-rauc-demo.bbclass | 8 ++ classes/rk-rauc-demo.bbclass | 3 + conf/layer.conf | 4 + conf/machine/include/rockchip-wic.inc | 5 +- .../recipes-bsp/u-boot/files/boot.cmd.in | 51 ++++++++++++ .../recipes-bsp/u-boot/files/uboot-rauc.cfg | 8 ++ .../recipes-bsp/u-boot/u-boot_%.bbappend | 26 ++++++ .../base-files/base-files_%.bbappend | 6 ++ .../recipes-core/base-files/files/fstab | 7 ++ .../rauc-bundles/files/development-1.cert.pem | 80 +++++++++++++++++++ .../rauc-bundles/files/development-1.key.pem | 28 +++++++ .../rauc-bundles/rockchip-rauc-bundle.bb | 14 ++++ .../recipes-core/rauc/files/ca.cert.pem | 80 +++++++++++++++++++ .../recipes-core/rauc/files/system.conf.in | 17 ++++ .../recipes-core/rauc/rauc-conf%.bbappend | 12 +++ .../systemd/files/25-rootfsA.conf | 4 + .../systemd/files/35-rootfsB.conf | 7 ++ .../recipes-core/systemd/files/45-data.conf | 6 ++ .../recipes-core/systemd/systemd_%.bbappend | 20 +++++ 19 files changed, 385 insertions(+), 1 deletion(-) create mode 100644 classes-recipe/rk-rauc-demo.bbclass create mode 100644 classes/rk-rauc-demo.bbclass create mode 100644 dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/boot.cmd.in create mode 100644 dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/uboot-rauc.cfg create mode 100644 dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/u-boot_%.bbappend create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/base-files/base-files_%.bbappend create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/base-files/files/fstab create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/files/development-1.cert.pem create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/files/development-1.key.pem create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/rockchip-rauc-bundle.bb create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/ca.cert.pem create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/system.conf.in create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/rauc/rauc-conf%.bbappend create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/25-rootfsA.conf create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/35-rootfsB.conf create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/45-data.conf create mode 100644 dynamic-layers/rk-rauc-demo/recipes-core/systemd/systemd_%.bbappend diff --git a/classes-recipe/rk-rauc-demo.bbclass b/classes-recipe/rk-rauc-demo.bbclass new file mode 100644 index 000000000000..25e105b53d09 --- /dev/null +++ b/classes-recipe/rk-rauc-demo.bbclass @@ -0,0 +1,8 @@ +inherit features_check + +REQUIRED_DISTRO_FEATURES += "systemd rauc" +REQUIRED_MACHINE_FEATURES += "rk-u-boot-env" + +# 'RK_RAUC_DEMO' indicates the user wants to use the +# rauc demo configuration from this layer +OVERRIDES .= "${@ ':rk-rauc-demo' if bb.utils.to_boolean(d.getVar('RK_RAUC_DEMO'), False) else ''}" diff --git a/classes/rk-rauc-demo.bbclass b/classes/rk-rauc-demo.bbclass new file mode 100644 index 000000000000..1382b645f96b --- /dev/null +++ b/classes/rk-rauc-demo.bbclass @@ -0,0 +1,3 @@ +# 'RK_RAUC_DEMO' indicates the user wants to use the +# rauc demo configuration from this layer +OVERRIDES .= "${@ ':rk-rauc-demo' if bb.utils.to_boolean(d.getVar('RK_RAUC_DEMO'), False) else ''}" diff --git a/conf/layer.conf b/conf/layer.conf index 68205dd7ea4c..03914d2952e1 100644 --- a/conf/layer.conf +++ b/conf/layer.conf @@ -21,3 +21,7 @@ BBFILES_DYNAMIC += " \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \ " +BBFILES_DYNAMIC += " \ + rauc:${LAYERDIR}/dynamic-layers/rk-rauc-demo/*/*/*.bb \ + rauc:${LAYERDIR}/dynamic-layers/rk-rauc-demo/*/*/*.bbappend \ +" diff --git a/conf/machine/include/rockchip-wic.inc b/conf/machine/include/rockchip-wic.inc index dab61d83ed2c..9e3b62f2a99b 100644 --- a/conf/machine/include/rockchip-wic.inc +++ b/conf/machine/include/rockchip-wic.inc @@ -1,11 +1,14 @@ # common meta-rockchip wic/wks items +inherit rk-rauc-demo + require conf/machine/include/rockchip-extlinux.inc require conf/machine/include/rockchip-rk-u-boot-env.inc SPL_BINARY ?= "idbloader.img" -IMAGE_FSTYPES += "wic wic.bmap" +IMAGE_FSTYPES ?= "wic wic.bmap" +IMAGE_FSTYPES:append:rk-rauc-demo = " ext4" WKS_FILE ?= "rockchip.wks" WKS_FILE_DEPENDS ?= " \ e2fsprogs-native \ diff --git a/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/boot.cmd.in b/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/boot.cmd.in new file mode 100644 index 000000000000..0887d2b5b812 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/boot.cmd.in @@ -0,0 +1,51 @@ +echo "devtype: ${devtype}" +echo "devnum: ${devnum}" +echo "distro_bootpart: ${distro_bootpart}" + +test -n "${BOOT_ORDER}" || env set BOOT_ORDER "A B" +test -n "${BOOT_A_LEFT}" || env set BOOT_A_LEFT 3 +test -n "${BOOT_B_LEFT}" || env set BOOT_B_LEFT 3 +test -n "${RAUC_BOOTDEV}" || env set RAUC_BOOTDEV "${devtype} ${devnum}:${distro_bootpart}" + +env set RAUC_BOOTPART +env set RAUC_SLOT + +echo "BOOT_ORDER: ${BOOT_ORDER}" +for RAUC_BOOTSLOT in "${BOOT_ORDER}"; do + if test "x${RAUC_BOOTPART}" != "x"; then + # skip remaining slots + elif test "x${RAUC_BOOTSLOT}" = "xA"; then + if test ${BOOT_A_LEFT} -gt 0; then + echo "using RAUC slot A" + setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1 + env set RAUC_BOOTPART "PARTLABEL=rootfsA" + env set RAUC_SLOT "A" + env set RAUC_BOOTDEV "${devtype} ${devnum}:${distro_bootpart}" + echo "RAUC_BOOTDEV: ${RAUC_BOOTDEV}" + fi + elif test "x${RAUC_BOOTSLOT}" = "xB"; then + if test ${BOOT_B_LEFT} -gt 0; then + echo "using RAUC slot B" + setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1 + env set RAUC_BOOTPART "PARTLABEL=rootfsB" + env set RAUC_SLOT "B" + setexpr BOOTPART1 ${distro_bootpart} + 1 + env set RAUC_BOOTDEV "${devtype} ${devnum}:${BOOTPART1}" + echo "RAUC_BOOTDEV: ${RAUC_BOOTDEV}" + fi + fi +done + +if test -n "${RAUC_BOOTPART}"; then + env set bootargs "${bootargsbase} root=${RAUC_BOOTPART} rauc.slot=${RAUC_SLOT}" + env save +else + echo "No valid RAUC slot found. Resetting tries to 3" + env set BOOT_A_LEFT 3 + env set BOOT_B_LEFT 3 + env save + reset +fi + +ext4load ${RAUC_BOOTDEV} ${kernel_addr_r} @@KERNEL_BOOTFILE@@ +bootm ${kernel_addr_r} diff --git a/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/uboot-rauc.cfg b/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/uboot-rauc.cfg new file mode 100644 index 000000000000..77b7164e0192 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/files/uboot-rauc.cfg @@ -0,0 +1,8 @@ +CONFIG_CMD_BOOTDEV=y +CONFIG_CMD_BOOTMETH=y +CONFIG_CMD_SETEXPR=y +CONFIG_CMD_SETEXPR_FMT=y +CONFIG_BOOTSTD_DEFAULTS=n +CONFIG_BOOTMETH_EXTLINUX=n +CONFIG_BOOTMETH_EXTLINUX_PXE=n +CONFIG_BOOTMETH_VBE=n diff --git a/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/u-boot_%.bbappend b/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/u-boot_%.bbappend new file mode 100644 index 000000000000..f075cb9383aa --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-bsp/u-boot/u-boot_%.bbappend @@ -0,0 +1,26 @@ +inherit rk-rauc-demo + +FILESEXTRAPATHS:prepend:rk-rauc-demo := "${THISDIR}/files:" + +DEPENDS:append:rk-rauc-demo = " u-boot-mkimage-native" +SRC_URI:append:rk-rauc-demo = " \ + file://uboot-rauc.cfg \ + file://boot.cmd.in \ + " + +do_compile:append:rk-rauc-demo() { + # create boot script + sed -e 's|@@KERNEL_BOOTFILE@@|${UBOOT_EXTLINUX_KERNEL_IMAGE}|' \ + "${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd" + mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" ${WORKDIR}/boot.scr + + # tweak environment + echo "bootmeths=script extlinux" >> ${B}/u-boot-initial-env + echo "bootargsbase=${UBOOT_EXTLINUX_KERNEL_ARGS} ${UBOOT_EXTLINUX_CONSOLE}" >> ${B}/u-boot-initial-env +} + +do_install:append:rk-rauc-demo() { + install -d ${D}/boot + install -m 0644 ${WORKDIR}/boot.scr ${D}/boot +} +FILES:${PN}-extlinux += "/boot/boot.scr" diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/base-files/base-files_%.bbappend b/dynamic-layers/rk-rauc-demo/recipes-core/base-files/base-files_%.bbappend new file mode 100644 index 000000000000..88df362b8b23 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/base-files/base-files_%.bbappend @@ -0,0 +1,6 @@ +inherit rk-rauc-demo + +FILESEXTRAPATHS:prepend:rk-rauc-demo := "${THISDIR}/files:" + +# Add a mount point for a shared data partition +dirs755 += "/data" diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/base-files/files/fstab b/dynamic-layers/rk-rauc-demo/recipes-core/base-files/files/fstab new file mode 100644 index 000000000000..de25bb1e608b --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/base-files/files/fstab @@ -0,0 +1,7 @@ +/dev/root / auto x-systemd.growfs 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 + +LABEL=data /data ext4 defaults 0 0 diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/files/development-1.cert.pem b/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/files/development-1.cert.pem new file mode 100644 index 000000000000..92e71125d22f --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/rauc-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----- diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/files/development-1.key.pem b/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/files/development-1.key.pem new file mode 100644 index 000000000000..80305f8291b1 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/rauc-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----- diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/rockchip-rauc-bundle.bb b/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/rockchip-rauc-bundle.bb new file mode 100644 index 000000000000..23eac4d3c4f5 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/rauc-bundles/rockchip-rauc-bundle.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Rockchip RAUC bundle generator" + +inherit bundle + +RAUC_BUNDLE_COMPATIBLE = "${MACHINE}" +RAUC_BUNDLE_VERSION = "v20240512" +RAUC_BUNDLE_DESCRIPTION = "RAUC Demo Bundle" +RAUC_BUNDLE_FORMAT = "verity" +RAUC_BUNDLE_SLOTS = "rootfs" +RAUC_SLOT_rootfs = "core-image-base" +RAUC_SLOT_rootfs[fstype] = "ext4" + +RAUC_KEY_FILE = "${THISDIR}/files/development-1.key.pem" +RAUC_CERT_FILE = "${THISDIR}/files/development-1.cert.pem" diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/ca.cert.pem b/dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/ca.cert.pem new file mode 100644 index 000000000000..46944a99df22 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/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----- diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/system.conf.in b/dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/system.conf.in new file mode 100644 index 000000000000..4945c67345c4 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/rauc/files/system.conf.in @@ -0,0 +1,17 @@ +[system] +compatible=@MACHINE@ +bootloader=uboot +data-directory=/data/ + +[keyring] +path=/etc/rauc/ca.cert.pem + +[slot.rootfs.0] +device=/dev/disk/by-partlabel/rootfsA +type=ext4 +bootname=A + +[slot.rootfs.1] +device=/dev/disk/by-partlabel/rootfsB +type=ext4 +bootname=B diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/rauc/rauc-conf%.bbappend b/dynamic-layers/rk-rauc-demo/recipes-core/rauc/rauc-conf%.bbappend new file mode 100644 index 000000000000..b65e9be2afaf --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/rauc/rauc-conf%.bbappend @@ -0,0 +1,12 @@ +inherit rk-rauc-demo + +FILESEXTRAPATHS:prepend:rk-rauc-demo := "${THISDIR}/files:" +SRC_URI:append:rk-rauc-demo := " \ + file://system.conf.in \ + file://ca.cert.pem \ + " + +do_install:append:rk-rauc-demo() { + install -d ${D}${sysconfdir}/rauc + sed -e 's!@MACHINE@!${MACHINE}!g' ${WORKDIR}/system.conf.in > ${D}${sysconfdir}/rauc/system.conf +} diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/25-rootfsA.conf b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/25-rootfsA.conf new file mode 100644 index 000000000000..dba01e1ff863 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/25-rootfsA.conf @@ -0,0 +1,4 @@ +[Partition] +Type=root +Weight=250 +SizeMaxBytes=5G diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/35-rootfsB.conf b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/35-rootfsB.conf new file mode 100644 index 000000000000..31a7c06c17ff --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/35-rootfsB.conf @@ -0,0 +1,7 @@ +[Partition] +Type=root +Label=rootfsB +Weight=250 +SizeMaxBytes=5G +Format=ext4 +GrowFileSystem=yes diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/45-data.conf b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/45-data.conf new file mode 100644 index 000000000000..1aac59addc26 --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/files/45-data.conf @@ -0,0 +1,6 @@ +[Partition] +Type=root-secondary +Label=data +Weight=500 +Format=ext4 +GrowFileSystem=yes diff --git a/dynamic-layers/rk-rauc-demo/recipes-core/systemd/systemd_%.bbappend b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/systemd_%.bbappend new file mode 100644 index 000000000000..2b9da514749e --- /dev/null +++ b/dynamic-layers/rk-rauc-demo/recipes-core/systemd/systemd_%.bbappend @@ -0,0 +1,20 @@ +inherit rk-rauc-demo + +FILESEXTRAPATHS:prepend:rk-rauc-demo := "${THISDIR}/files:" + +SRC_URI:append:rk-rauc-demo = " \ + file://25-rootfsA.conf \ + file://35-rootfsB.conf \ + file://45-data.conf \ + " + +PACKAGECONFIG:append:rk-rauc-demo = " repart openssl" + +do_install:append:rk-rauc-demo() { + install -d ${D}${sysconfdir}/repart.d/ + install -m 0644 ${WORKDIR}/25-rootfsA.conf ${D}${sysconfdir}/repart.d/ + install -m 0644 ${WORKDIR}/35-rootfsB.conf ${D}${sysconfdir}/repart.d/ + install -m 0644 ${WORKDIR}/45-data.conf ${D}${sysconfdir}/repart.d/ +} + +FILES:${PN}:append:rk-rauc-demo = " ${sysconfdir}/repart.d/"