public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH 0/6] Update rpi targets to bullseye
@ 2021-12-22  7:30 Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 1/6] linux: Allow to use custom packages for linux headers and image Uladzimir Bely
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

This patchset adds Bullseye targets for Raspbian (Raspberry Pi OS).

Since Raspbian Stretch supported by Isar, many things happend
in Raspberry world:
- linux-image-rpi* and linux-headers-rpi* packages are now outdated.
They are still provided in Raspbian Buster, but only for older kernels.
Currently, kernel images and modules are provided by the package
`raspberrypi-kernel` and kernel headers for all kernels come with
the package `raspberrypi-kernel-headers`
- new Raspberry boards were released, based on three different SoCs.
- new 64bit version or RaspiOS for Raspberry Pi 4 became available.
It uses Debian mirrors for bootstrap and package delivery, contrary
to 32bit version that continues using own RaspiOs mirrors, with
packages compiled to support old (armv6) hardware.

This patchset adds RaspiOS Bullseye configs to build Isar for
all three possible hardware options:
- for Raspberry Pi 1, Pi Zero, Pi Zero W, and Compute Module;
- for Raspberry Pi 2, Pi 3, Pi 3+, and Compute Module 3;
- for Raspberry Pi 4 (32 bit);
- for Raspberry Pi 4 (64 bit).

Uladzimir Bely (6):
  linux: Allow to use custom packages for linux headers and image
  rpi-sdimage: Change deployed image name.
  rpi: Added raspios-bullseye configs
  raspios: resize rootfs on first boot
  CI: Switch rpi targets to bullseye
  doc: Add notes about raspios-bullseye

 RECIPE-API-CHANGELOG.md                       |  9 ++++
 doc/user_manual.md                            |  8 +++
 meta-isar/classes/rpi-sdimg.bbclass           |  2 +-
 .../conf/distro/raspios-bullseye-64.list      |  9 ++++
 meta-isar/conf/distro/raspios-bullseye.conf   | 22 ++++++++
 meta-isar/conf/distro/raspios-bullseye.list   |  5 ++
 meta-isar/conf/distro/raspios-configscript.sh | 50 +++++++++++++++++++
 meta-isar/conf/local.conf.sample              |  4 ++
 meta-isar/conf/machine/rpi-arm-v7.conf        |  7 +++
 meta-isar/conf/machine/rpi-arm-v7l.conf       |  7 +++
 meta-isar/conf/machine/rpi-arm.conf           |  7 +++
 meta-isar/conf/machine/rpi-arm64-v8.conf      |  7 +++
 meta-isar/conf/machine/rpi-common.conf        | 22 ++++++++
 .../conf/multiconfig/rpi-arm-bullseye.conf    |  5 ++
 .../conf/multiconfig/rpi-arm-v7-bullseye.conf |  5 ++
 .../multiconfig/rpi-arm-v7l-bullseye.conf     |  5 ++
 .../multiconfig/rpi-arm64-v8-bullseye.conf    |  5 ++
 .../example-module/example-module.bb          |  4 ++
 meta/classes/image.bbclass                    |  3 +-
 .../linux-module/files/debian/control.tmpl    |  4 +-
 meta/recipes-kernel/linux-module/module.inc   | 29 ++++++++---
 meta/recipes-kernel/linux/linux-distro.bb     |  4 ++
 testsuite/build_test/build_test.py            | 11 ++--
 23 files changed, 220 insertions(+), 14 deletions(-)
 create mode 100644 meta-isar/conf/distro/raspios-bullseye-64.list
 create mode 100644 meta-isar/conf/distro/raspios-bullseye.conf
 create mode 100644 meta-isar/conf/distro/raspios-bullseye.list
 create mode 100644 meta-isar/conf/distro/raspios-configscript.sh
 create mode 100644 meta-isar/conf/machine/rpi-arm-v7.conf
 create mode 100644 meta-isar/conf/machine/rpi-arm-v7l.conf
 create mode 100644 meta-isar/conf/machine/rpi-arm.conf
 create mode 100644 meta-isar/conf/machine/rpi-arm64-v8.conf
 create mode 100644 meta-isar/conf/machine/rpi-common.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm-bullseye.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm-v7-bullseye.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm-v7l-bullseye.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm64-v8-bullseye.conf

-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/6] linux: Allow to use custom packages for linux headers and image
  2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
@ 2021-12-22  7:30 ` Uladzimir Bely
  2021-12-22  8:21   ` Bezdeka, Florian
  2021-12-22  7:30 ` [PATCH 2/6] rpi-sdimage: Change deployed image name Uladzimir Bely
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

Some distros like recent Rasbian version may not provide provide packages
named 'linux-image-${KERNEL_NAME}' and 'linux-image-${KERNEL_NAME}' and
use some custom namings.

This patch adds support of such distro-provided package name for packages
containing linux image and linux headers.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 RECIPE-API-CHANGELOG.md                                |  9 +++++++++
 meta/classes/image.bbclass                             |  3 ++-
 .../linux-module/files/debian/control.tmpl             |  4 ++--
 meta/recipes-kernel/linux-module/module.inc            | 10 ++++++----
 meta/recipes-kernel/linux/linux-distro.bb              |  4 ++++
 5 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
index 55836258..9524f8a2 100644
--- a/RECIPE-API-CHANGELOG.md
+++ b/RECIPE-API-CHANGELOG.md
@@ -306,3 +306,12 @@ When using the plugins it is advised to name the partition "/boot" and to exclud
 
 The variable is renamed to get closer to OE/Poky variables naming. The old naming
 will still also work, but with deprecation warning shown.
+
+### Using custom package name for linux kernel and headers
+
+Isar assumes that linux kernel is provided by linux-image-${KERNEL_NAME}
+package, while headers are provided by linux-image-${KERNEL_NAME} package.
+This naming may be different in other distributions like Raspberry Pi OS.
+
+KERNEL_IMAGE_PKG and KERNEL_HEADERS_PKG variables allow to use custom package
+names for kernel/headers.
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index ea493548..b8b17c2c 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -15,7 +15,8 @@ IMAGE_INSTALL ?= ""
 IMAGE_FSTYPES ?= "${@ d.getVar("IMAGE_TYPE", True) if d.getVar("IMAGE_TYPE", True) else "ext4-img"}"
 IMAGE_ROOTFS ?= "${WORKDIR}/rootfs"
 
-IMAGE_INSTALL += "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getVar("KERNEL_NAME", True) else ""}"
+KERNEL_IMAGE_PKG ??= "${@ ("linux-image-" + d.getVar("KERNEL_NAME", True)) if d.getVar("KERNEL_NAME", True) else ""}"
+IMAGE_INSTALL += "${KERNEL_IMAGE_PKG}"
 
 # Name of the image including distro&machine names
 IMAGE_FULLNAME = "${PN}-${DISTRO}-${MACHINE}"
diff --git a/meta/recipes-kernel/linux-module/files/debian/control.tmpl b/meta/recipes-kernel/linux-module/files/debian/control.tmpl
index 3b3292d9..d3f4dfe9 100644
--- a/meta/recipes-kernel/linux-module/files/debian/control.tmpl
+++ b/meta/recipes-kernel/linux-module/files/debian/control.tmpl
@@ -2,10 +2,10 @@ Source: ${PN}
 Section: kernel
 Priority: optional
 Standards-Version: 3.9.6
-Build-Depends: linux-headers-${KERNEL_NAME}
+Build-Depends: ${KERNEL_HEADERS_PKG}
 Maintainer: ISAR project <isar-users@googlegroups.com>
 
 Package: ${PN}
 Architecture: any
-Depends: linux-image-${KERNEL_NAME}, kmod
+Depends: ${KERNEL_IMAGE_PKG}, kmod
 Description: ${DESCRIPTION}
diff --git a/meta/recipes-kernel/linux-module/module.inc b/meta/recipes-kernel/linux-module/module.inc
index 0515621a..fecc5b3c 100644
--- a/meta/recipes-kernel/linux-module/module.inc
+++ b/meta/recipes-kernel/linux-module/module.inc
@@ -13,7 +13,9 @@ KERNEL_NAME ?= ""
 
 PN .= "-${KERNEL_NAME}"
 
-DEPENDS += "linux-headers-${KERNEL_NAME}"
+KERNEL_IMAGE_PKG ??= "linux-image-${KERNEL_NAME}"
+KERNEL_HEADERS_PKG ??= "linux-headers-${KERNEL_NAME}"
+DEPENDS += "${KERNEL_HEADERS_PKG}"
 
 SRC_URI += "file://debian/"
 
@@ -23,7 +25,7 @@ inherit dpkg
 
 TEMPLATE_FILES = "debian/control.tmpl \
                   debian/changelog.tmpl"
-TEMPLATE_VARS += "KERNEL_NAME"
+TEMPLATE_VARS += "KERNEL_IMAGE_PKG KERNEL_HEADERS_PKG"
 
 do_prepare_build() {
     cp -r ${WORKDIR}/debian ${S}/
@@ -35,12 +37,12 @@ do_prepare_build() {
 
 dpkg_runbuild_prepend() {
     # Custom kernels contain the build folder directly.
-    export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} linux-headers-${KERNEL_NAME} | \
+    export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_HEADERS_PKG} | \
                   grep "/lib/modules/.*/build")
     if [ -z "$KDIR" ]; then
         # Debian kernels install that folder indirectly via a dependency.
         KERNEL_DEP=$(dpkg-query -W -f '${Depends}' --admindir=${BUILDCHROOT_DIR}/var/lib/dpkg \
-                     linux-headers-${KERNEL_NAME} | sed 's/.*\(linux-headers-[[:graph:]]*\).*/\1/')
+                     ${KERNEL_HEADERS_PKG} | sed 's/.*\(linux-headers-[[:graph:]]*\).*/\1/')
         export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_DEP} | \
                       grep "/lib/modules/.*/build")
     fi
diff --git a/meta/recipes-kernel/linux/linux-distro.bb b/meta/recipes-kernel/linux/linux-distro.bb
index 2a248f80..bfc8be9f 100644
--- a/meta/recipes-kernel/linux/linux-distro.bb
+++ b/meta/recipes-kernel/linux/linux-distro.bb
@@ -10,4 +10,8 @@ python() {
     for kernel in distro_kernels.split():
         d.appendVar('PROVIDES', ' linux-image-' + kernel)
         d.appendVar('PROVIDES', ' linux-headers-' + kernel)
+    if d.getVar('KERNEL_IMAGE_PKG', True):
+        d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_IMAGE_PKG', True))
+    if d.getVar('KERNEL_HEADERS_PKG', True):
+        d.appendVar('PROVIDES', ' ' + d.getVar('KERNEL_HEADERS_PKG', True))
 }
-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 2/6] rpi-sdimage: Change deployed image name.
  2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 1/6] linux: Allow to use custom packages for linux headers and image Uladzimir Bely
@ 2021-12-22  7:30 ` Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 3/6] rpi: Added raspios-bullseye configs Uladzimir Bely
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

This allows to avoid conflicts in deploy directory if multiconfigs for
different distro versions are run in parallel with one bitbake.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 meta-isar/classes/rpi-sdimg.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta-isar/classes/rpi-sdimg.bbclass b/meta-isar/classes/rpi-sdimg.bbclass
index 4e5d170d..1efc1c40 100644
--- a/meta-isar/classes/rpi-sdimg.bbclass
+++ b/meta-isar/classes/rpi-sdimg.bbclass
@@ -14,7 +14,7 @@ BOOT_SPACE ?= "40960"
 # Set alignment to 4MB [in KiB]
 IMAGE_ROOTFS_ALIGNMENT = "4096"
 
-SDIMG = "${DEPLOY_DIR_IMAGE}/${PN}.rpi-sdimg"
+SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_FULLNAME}.sdimg"
 SDIMG_ROOTFS = "${DEPLOY_DIR_IMAGE}/${EXT4_IMAGE_FILE}"
 
 do_rpi_sdimg () {
-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 3/6] rpi: Added raspios-bullseye configs
  2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 1/6] linux: Allow to use custom packages for linux headers and image Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 2/6] rpi-sdimage: Change deployed image name Uladzimir Bely
@ 2021-12-22  7:30 ` Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 4/6] raspios: resize rootfs on first boot Uladzimir Bely
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

At some point Raspbian distro was renamed to Raspberry Pi OS. That's why
a new RPi configs are added for bullseye with different naming.

Starting from RaspiOS buster, 'linux-image-rpiX' and 'linux-headers-rpiX'
packages for actual kernels were removed from the distro and now they are
provided in 'raspberrypi-kernel' and 'raspberrypi-kernel-headers' packages.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 .../conf/distro/raspios-bullseye-64.list      |  9 ++++++
 meta-isar/conf/distro/raspios-bullseye.conf   | 22 ++++++++++++++
 meta-isar/conf/distro/raspios-bullseye.list   |  5 ++++
 meta-isar/conf/distro/raspios-configscript.sh | 29 +++++++++++++++++++
 meta-isar/conf/local.conf.sample              |  4 +++
 meta-isar/conf/machine/rpi-arm-v7.conf        |  7 +++++
 meta-isar/conf/machine/rpi-arm-v7l.conf       |  7 +++++
 meta-isar/conf/machine/rpi-arm.conf           |  7 +++++
 meta-isar/conf/machine/rpi-arm64-v8.conf      |  7 +++++
 meta-isar/conf/machine/rpi-common.conf        | 22 ++++++++++++++
 .../conf/multiconfig/rpi-arm-bullseye.conf    |  5 ++++
 .../conf/multiconfig/rpi-arm-v7-bullseye.conf |  5 ++++
 .../multiconfig/rpi-arm-v7l-bullseye.conf     |  5 ++++
 .../multiconfig/rpi-arm64-v8-bullseye.conf    |  5 ++++
 .../example-module/example-module.bb          |  4 +++
 meta/recipes-kernel/linux-module/module.inc   | 21 ++++++++++++--
 16 files changed, 161 insertions(+), 3 deletions(-)
 create mode 100644 meta-isar/conf/distro/raspios-bullseye-64.list
 create mode 100644 meta-isar/conf/distro/raspios-bullseye.conf
 create mode 100644 meta-isar/conf/distro/raspios-bullseye.list
 create mode 100644 meta-isar/conf/distro/raspios-configscript.sh
 create mode 100644 meta-isar/conf/machine/rpi-arm-v7.conf
 create mode 100644 meta-isar/conf/machine/rpi-arm-v7l.conf
 create mode 100644 meta-isar/conf/machine/rpi-arm.conf
 create mode 100644 meta-isar/conf/machine/rpi-arm64-v8.conf
 create mode 100644 meta-isar/conf/machine/rpi-common.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm-bullseye.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm-v7-bullseye.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm-v7l-bullseye.conf
 create mode 100644 meta-isar/conf/multiconfig/rpi-arm64-v8-bullseye.conf

diff --git a/meta-isar/conf/distro/raspios-bullseye-64.list b/meta-isar/conf/distro/raspios-bullseye-64.list
new file mode 100644
index 00000000..74efa76d
--- /dev/null
+++ b/meta-isar/conf/distro/raspios-bullseye-64.list
@@ -0,0 +1,9 @@
+deb	http://deb.debian.org/debian bullseye main contrib non-free
+deb-src	http://deb.debian.org/debian bullseye main contrib non-free
+deb	http://deb.debian.org/debian-security/ bullseye-security/updates main contrib non-free
+deb-src	http://deb.debian.org/debian-security/ bullseye-security/updates main contrib non-free
+deb	http://deb.debian.org/debian bullseye-updates main contrib non-free
+deb-src	http://deb.debian.org/debian bullseye-updates main contrib non-free
+
+deb http://archive.raspberrypi.org/debian/ bullseye main
+deb-src http://archive.raspberrypi.org/debian/ bullseye main
diff --git a/meta-isar/conf/distro/raspios-bullseye.conf b/meta-isar/conf/distro/raspios-bullseye.conf
new file mode 100644
index 00000000..eb8464e5
--- /dev/null
+++ b/meta-isar/conf/distro/raspios-bullseye.conf
@@ -0,0 +1,22 @@
+# Raspbi OS stable distribution configuration
+#
+# This software is a part of ISAR.
+# Copyright (C) 2021 ilbers GmbH
+
+BASE_DISTRO = "raspios"
+BASE_DISTRO_arm64 = "debian"
+
+BASE_DISTRO_CODENAME = "bullseye"
+HOST_DISTRO ?= "debian-bullseye"
+HOST_DISTRO_APT_SOURCES ?= "conf/distro/${HOST_DISTRO}.list"
+
+DISTRO_APT_SOURCES ?= "conf/distro/raspios-bullseye.list"
+DISTRO_APT_SOURCES_arm64 ?= "conf/distro/raspios-bullseye-64.list"
+
+DISTRO_BOOTSTRAP_KEYS = "http://raspbian.raspberrypi.org/raspbian.public.key;sha256sum=ca59cd4f2bcbc3a1d41ba6815a02a8dc5c175467a59bd87edeac458f4a5345de"
+DISTRO_BOOTSTRAP_KEYS_arm64 = ""
+
+DISTRO_CONFIG_SCRIPT ?= "${LAYERDIR_isar}/conf/distro/raspios-configscript.sh"
+DISTRO_KERNELS ?= "kernel kernel7 kernel7l kernel8"
+
+THIRD_PARTY_APT_KEYS += "http://archive.raspberrypi.org/debian/raspberrypi.gpg.key;sha256sum=76603890d82a492175caf17aba68dc73acb1189c9fd58ec0c19145dfa3866d56"
diff --git a/meta-isar/conf/distro/raspios-bullseye.list b/meta-isar/conf/distro/raspios-bullseye.list
new file mode 100644
index 00000000..b6c8fd91
--- /dev/null
+++ b/meta-isar/conf/distro/raspios-bullseye.list
@@ -0,0 +1,5 @@
+deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
+deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
+
+deb http://archive.raspberrypi.org/debian/ bullseye main
+deb-src http://archive.raspberrypi.org/debian/ bullseye main
diff --git a/meta-isar/conf/distro/raspios-configscript.sh b/meta-isar/conf/distro/raspios-configscript.sh
new file mode 100644
index 00000000..64865e09
--- /dev/null
+++ b/meta-isar/conf/distro/raspios-configscript.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# This software is a part of ISAR.
+# Copyright (C) 2021 ilbers GmbH
+
+set -e
+
+readonly MACHINE_SERIAL="$1"
+readonly BAUDRATE_TTY="$2"
+
+cat > /boot/config.txt << EOF
+[pi3]
+# Restore UART0/ttyAMA0 over GPIOs 14 & 15
+dtoverlay=miniuart-bt
+
+[all]
+EOF
+
+cat > /boot/cmdline.txt << EOF
+console=${MACHINE_SERIAL},${BAUDRATE_TTY} console=tty1 \
+root=/dev/mmcblk0p2 rootfstype=ext4 fsck.repair=yes \
+rootwait quiet
+EOF
+
+cat > /etc/fstab << EOF
+proc            /proc           proc    defaults          0       0
+/dev/mmcblk0p1  /boot           vfat    defaults          0       2
+/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
+EOF
diff --git a/meta-isar/conf/local.conf.sample b/meta-isar/conf/local.conf.sample
index 9d61c4e8..a3f94306 100644
--- a/meta-isar/conf/local.conf.sample
+++ b/meta-isar/conf/local.conf.sample
@@ -67,6 +67,10 @@ BBMULTICONFIG = " \
     stm32mp15x-buster \
     virtualbox-ova-buster \
     rpi-stretch \
+    rpi-arm-bullseye \
+    rpi-arm-v7-bullseye \
+    rpi-arm-v7l-bullseye \
+    rpi-arm64-v8-bullseye \
     sifive-fu540-sid-ports \
     qemuarm64-focal \
     qemuamd64-focal \
diff --git a/meta-isar/conf/machine/rpi-arm-v7.conf b/meta-isar/conf/machine/rpi-arm-v7.conf
new file mode 100644
index 00000000..0086a118
--- /dev/null
+++ b/meta-isar/conf/machine/rpi-arm-v7.conf
@@ -0,0 +1,7 @@
+# This software is a part of ISAR.
+# Copyright (C) 2019 ilbers GmbH
+
+DISTRO_ARCH ?= "armhf"
+KERNEL_NAME = "kernel7"
+
+include conf/machine/rpi-common.conf
diff --git a/meta-isar/conf/machine/rpi-arm-v7l.conf b/meta-isar/conf/machine/rpi-arm-v7l.conf
new file mode 100644
index 00000000..da20bfe7
--- /dev/null
+++ b/meta-isar/conf/machine/rpi-arm-v7l.conf
@@ -0,0 +1,7 @@
+# This software is a part of ISAR.
+# Copyright (C) 2019 ilbers GmbH
+
+DISTRO_ARCH ?= "armhf"
+KERNEL_NAME = "kernel7l"
+
+include conf/machine/rpi-common.conf
diff --git a/meta-isar/conf/machine/rpi-arm.conf b/meta-isar/conf/machine/rpi-arm.conf
new file mode 100644
index 00000000..bbc991e7
--- /dev/null
+++ b/meta-isar/conf/machine/rpi-arm.conf
@@ -0,0 +1,7 @@
+# This software is a part of ISAR.
+# Copyright (C) 2019 ilbers GmbH
+
+DISTRO_ARCH ?= "armhf"
+KERNEL_NAME = "kernel"
+
+include conf/machine/rpi-common.conf
diff --git a/meta-isar/conf/machine/rpi-arm64-v8.conf b/meta-isar/conf/machine/rpi-arm64-v8.conf
new file mode 100644
index 00000000..5a65cc92
--- /dev/null
+++ b/meta-isar/conf/machine/rpi-arm64-v8.conf
@@ -0,0 +1,7 @@
+# This software is a part of ISAR.
+# Copyright (C) 2019 ilbers GmbH
+
+DISTRO_ARCH ?= "arm64"
+KERNEL_NAME = "kernel8"
+
+include conf/machine/rpi-common.conf
diff --git a/meta-isar/conf/machine/rpi-common.conf b/meta-isar/conf/machine/rpi-common.conf
new file mode 100644
index 00000000..ead1d6d8
--- /dev/null
+++ b/meta-isar/conf/machine/rpi-common.conf
@@ -0,0 +1,22 @@
+# This software is a part of ISAR.
+# Copyright (C) 2019 ilbers GmbH
+
+BOOT_SPACE ?= "81920"
+MACHINE_SERIAL ?= "serial0"
+BAUDRATE_TTY ?= "115200"
+
+IMAGE_FSTYPES ?= "rpi-sdimg"
+
+KERNEL_TYPE = "raspios"
+KERNEL_IMAGE_PKG ?= "raspberrypi-kernel"
+KERNEL_HEADERS_PKG ?= "raspberrypi-kernel-headers"
+
+IMAGE_PREINSTALL += " \
+    fdisk \
+    iproute2 \
+    iputils-ping \
+    isc-dhcp-client \
+    raspberrypi-bootloader \
+    raspi-config \
+    systemd-sysv \
+    "
diff --git a/meta-isar/conf/multiconfig/rpi-arm-bullseye.conf b/meta-isar/conf/multiconfig/rpi-arm-bullseye.conf
new file mode 100644
index 00000000..f49473a7
--- /dev/null
+++ b/meta-isar/conf/multiconfig/rpi-arm-bullseye.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2021 ilbers GmbH
+
+MACHINE ?= "rpi-arm"
+DISTRO ?= "raspios-bullseye"
diff --git a/meta-isar/conf/multiconfig/rpi-arm-v7-bullseye.conf b/meta-isar/conf/multiconfig/rpi-arm-v7-bullseye.conf
new file mode 100644
index 00000000..86c10d9f
--- /dev/null
+++ b/meta-isar/conf/multiconfig/rpi-arm-v7-bullseye.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2021 ilbers GmbH
+
+MACHINE ?= "rpi-arm-v7"
+DISTRO ?= "raspios-bullseye"
diff --git a/meta-isar/conf/multiconfig/rpi-arm-v7l-bullseye.conf b/meta-isar/conf/multiconfig/rpi-arm-v7l-bullseye.conf
new file mode 100644
index 00000000..53ff8c59
--- /dev/null
+++ b/meta-isar/conf/multiconfig/rpi-arm-v7l-bullseye.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2021 ilbers GmbH
+
+MACHINE ?= "rpi-arm-v7l"
+DISTRO ?= "raspios-bullseye"
diff --git a/meta-isar/conf/multiconfig/rpi-arm64-v8-bullseye.conf b/meta-isar/conf/multiconfig/rpi-arm64-v8-bullseye.conf
new file mode 100644
index 00000000..5bfc7a7c
--- /dev/null
+++ b/meta-isar/conf/multiconfig/rpi-arm64-v8-bullseye.conf
@@ -0,0 +1,5 @@
+# This software is a part of ISAR.
+# Copyright (C) 2021 ilbers GmbH
+
+MACHINE ?= "rpi-arm64-v8"
+DISTRO ?= "raspios-bullseye"
diff --git a/meta-isar/recipes-kernel/example-module/example-module.bb b/meta-isar/recipes-kernel/example-module/example-module.bb
index a72dd1b6..5ebed102 100644
--- a/meta-isar/recipes-kernel/example-module/example-module.bb
+++ b/meta-isar/recipes-kernel/example-module/example-module.bb
@@ -19,6 +19,10 @@ python() {
         '686-pae',
         '4kc-malta',
         'riscv64',
+        'kernel',
+        'kernel7',
+        'kernel7l',
+        'kernel8',
     ]:
         d.setVar('ISAR_CROSS_COMPILE', '0')
 }
diff --git a/meta/recipes-kernel/linux-module/module.inc b/meta/recipes-kernel/linux-module/module.inc
index fecc5b3c..968ac4c7 100644
--- a/meta/recipes-kernel/linux-module/module.inc
+++ b/meta/recipes-kernel/linux-module/module.inc
@@ -36,9 +36,24 @@ do_prepare_build() {
 }
 
 dpkg_runbuild_prepend() {
-    # Custom kernels contain the build folder directly.
-    export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_HEADERS_PKG} | \
-                  grep "/lib/modules/.*/build")
+    if [ "${KERNEL_TYPE}" = "raspios" ]; then
+        # In RaspiOS one package provides several headers
+        KERNEL_SUFFIX="+"
+        if [ "${KERNEL_NAME}" = "kernel8" ]; then
+            KERNEL_SUFFIX="-v8+"
+        elif [ "${KERNEL_NAME}" = "kernel7l" ]; then
+            KERNEL_SUFFIX="-v7l+"
+        elif [ "${KERNEL_NAME}" = "kernel7" ]; then
+            KERNEL_SUFFIX="-v7+"
+        fi
+        export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_HEADERS_PKG} | \
+                      grep "/lib/modules/.*${KERNEL_SUFFIX}/build" | head -n1)
+    fi
+    if [ -z "$KDIR" ]; then
+        # Custom kernels contain the build folder directly.
+        export KDIR=$(dpkg -L --root=${BUILDCHROOT_DIR} ${KERNEL_HEADERS_PKG} | \
+                      grep "/lib/modules/.*/build")
+    fi
     if [ -z "$KDIR" ]; then
         # Debian kernels install that folder indirectly via a dependency.
         KERNEL_DEP=$(dpkg-query -W -f '${Depends}' --admindir=${BUILDCHROOT_DIR}/var/lib/dpkg \
-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 4/6] raspios: resize rootfs on first boot
  2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
                   ` (2 preceding siblings ...)
  2021-12-22  7:30 ` [PATCH 3/6] rpi: Added raspios-bullseye configs Uladzimir Bely
@ 2021-12-22  7:30 ` Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 5/6] CI: Switch rpi targets to bullseye Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 6/6] doc: Add notes about raspios-bullseye Uladzimir Bely
  5 siblings, 0 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

Initially, after rpi-sdimg is created, a quite small rootfs partition
is created. After boot, there is almost no free space.

This patch uses scripts (idea is taken from official raspbian distro)
that make rootfs partition expanded at first boot.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 meta-isar/conf/distro/raspios-configscript.sh | 23 ++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/meta-isar/conf/distro/raspios-configscript.sh b/meta-isar/conf/distro/raspios-configscript.sh
index 64865e09..ea8cf5b4 100644
--- a/meta-isar/conf/distro/raspios-configscript.sh
+++ b/meta-isar/conf/distro/raspios-configscript.sh
@@ -19,7 +19,7 @@ EOF
 cat > /boot/cmdline.txt << EOF
 console=${MACHINE_SERIAL},${BAUDRATE_TTY} console=tty1 \
 root=/dev/mmcblk0p2 rootfstype=ext4 fsck.repair=yes \
-rootwait quiet
+rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
 EOF
 
 cat > /etc/fstab << EOF
@@ -27,3 +27,24 @@ proc            /proc           proc    defaults          0       0
 /dev/mmcblk0p1  /boot           vfat    defaults          0       2
 /dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
 EOF
+
+cat > /etc/init.d/resize2fs_once << EOF
+#!/bin/sh
+. /lib/lsb/init-functions
+case "\$1" in
+  start)
+    log_daemon_msg "Starting resize2fs_once"
+    ROOT_DEV=\$(findmnt / -o source -n) &&
+    resize2fs \$ROOT_DEV &&
+    update-rc.d resize2fs_once remove &&
+    rm /etc/init.d/resize2fs_once &&
+    log_end_msg \$?
+    ;;
+  *)
+    echo "Usage: \$0 start" >&2
+    exit 3
+    ;;
+esac
+EOF
+chmod +x /etc/init.d/resize2fs_once
+ln -s ../init.d/resize2fs_once /etc/rc3.d/S01resize2fs_once
-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 5/6] CI: Switch rpi targets to bullseye
  2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
                   ` (3 preceding siblings ...)
  2021-12-22  7:30 ` [PATCH 4/6] raspios: resize rootfs on first boot Uladzimir Bely
@ 2021-12-22  7:30 ` Uladzimir Bely
  2021-12-22  7:30 ` [PATCH 6/6] doc: Add notes about raspios-bullseye Uladzimir Bely
  5 siblings, 0 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

Update rpi-stretch targets from raspbian-stretch to current
rpi-bullseye.

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 testsuite/build_test/build_test.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/testsuite/build_test/build_test.py b/testsuite/build_test/build_test.py
index 5a771d10..d2caaad4 100644
--- a/testsuite/build_test/build_test.py
+++ b/testsuite/build_test/build_test.py
@@ -65,8 +65,7 @@ class CrossTest(CIBaseTest):
             'mc:qemuarm64-stretch:isar-image-base',
             'mc:qemuamd64-stretch:isar-image-base',
             'mc:de0-nano-soc-buster:isar-image-base',
-            'mc:stm32mp15x-buster:isar-image-base',
-            'mc:rpi-stretch:isar-image-base'
+            'mc:stm32mp15x-buster:isar-image-base'
                   ]
 
         self.perform_build_test(targets, 1, None)
@@ -83,7 +82,8 @@ class CrossTest(CIBaseTest):
 
     def test_cross_bullseye(self):
         targets = [
-            'mc:qemuarm-bullseye:isar-image-base'
+            'mc:qemuarm-bullseye:isar-image-base',
+            'mc:rpi-arm-v7-bullseye:isar-image-base'
                   ]
 
         try:
@@ -125,7 +125,6 @@ class NoCrossTest(CIBaseTest):
             'mc:qemumipsel-stretch:isar-image-base',
             'mc:qemumipsel-buster:isar-image-base',
             'mc:nand-ubi-demo-buster:isar-image-ubi',
-            'mc:rpi-stretch:isar-image-base',
             'mc:qemuamd64-focal:isar-image-base',
             'mc:virtualbox-ova-buster:isar-image-base'
                   ]
@@ -142,6 +141,10 @@ class NoCrossTest(CIBaseTest):
             'mc:qemuarm-bullseye:isar-image-base',
             'mc:qemui386-bullseye:isar-image-base',
             'mc:qemumipsel-bullseye:isar-image-base',
+            'mc:rpi-arm-bullseye:isar-image-base',
+            'mc:rpi-arm-v7-bullseye:isar-image-base',
+            'mc:rpi-arm-v7l-bullseye:isar-image-base',
+            'mc:rpi-arm64-v8-bullseye:isar-image-base',
             'mc:hikey-bullseye:isar-image-base'
                   ]
 
-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 6/6] doc: Add notes about raspios-bullseye
  2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
                   ` (4 preceding siblings ...)
  2021-12-22  7:30 ` [PATCH 5/6] CI: Switch rpi targets to bullseye Uladzimir Bely
@ 2021-12-22  7:30 ` Uladzimir Bely
  5 siblings, 0 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22  7:30 UTC (permalink / raw)
  To: isar-users

Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
 doc/user_manual.md | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/doc/user_manual.md b/doc/user_manual.md
index c81c6e46..777db5be 100644
--- a/doc/user_manual.md
+++ b/doc/user_manual.md
@@ -53,6 +53,7 @@ configurations:
  - QEMU amd64 with Debian Stretch
  - QEMU amd64 with Debian Buster
  - Raspberry Pi 1 Model B with Raspbian Stretch
+ - Raspberry Pi various models with Raspberry OS Bullseye
  - Banana Pi BPI-M1
  - LeMaker HiKey
  - Terasic DE0-Nano-SoC
@@ -432,6 +433,7 @@ In Isar, each machine can use its specific Linux distro to generate `buildchroot
  - debian-stretch
  - debian-buster
  - raspbian-stretch
+ - raspios-bullseye
 
 User can select appropriate distro for specific machine by setting the following variable in machine configuration file:
 ```
@@ -492,6 +494,12 @@ DISTRO_CONFIG_SCRIPT?= "raspbian-configscript.sh"
 DISTRO_KERNELS ?= "rpi rpi2 rpi-rpfv rpi2-rpfv"
 ```
 
+For RaspiOS a different DISTRO_KERNELS list is used:
+ - `kernel` - for Raspberry Pi 1, Pi Zero, Pi Zero W, and Compute Module
+ - `kernel7` - for Raspberry Pi 2, Pi 3, Pi 3+, and Compute Module 3
+ - `kernel7l` - for Raspberry Pi 4 (32 bit OS)
+ - `kernel8` - for Raspberry Pi 4 (64 bit OS)
+
 To add new distro, user should perform the following steps:
 
  - Create `distro` folder in your layer:
-- 
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] linux: Allow to use custom packages for linux headers and image
  2021-12-22  7:30 ` [PATCH 1/6] linux: Allow to use custom packages for linux headers and image Uladzimir Bely
@ 2021-12-22  8:21   ` Bezdeka, Florian
  2021-12-22 10:08     ` Uladzimir Bely
  0 siblings, 1 reply; 9+ messages in thread
From: Bezdeka, Florian @ 2021-12-22  8:21 UTC (permalink / raw)
  To: ubely, isar-users

On Wed, 2021-12-22 at 08:30 +0100, Uladzimir Bely wrote:
> Some distros like recent Rasbian version may not provide provide packages
                                                   ^       ^
                                                   +-------+-- doubled

> named 'linux-image-${KERNEL_NAME}' and 'linux-image-${KERNEL_NAME}' and
> use some custom namings.
> 
> This patch adds support of such distro-provided package name for packages
> containing linux image and linux headers.
> 


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/6] linux: Allow to use custom packages for linux headers and image
  2021-12-22  8:21   ` Bezdeka, Florian
@ 2021-12-22 10:08     ` Uladzimir Bely
  0 siblings, 0 replies; 9+ messages in thread
From: Uladzimir Bely @ 2021-12-22 10:08 UTC (permalink / raw)
  To: isar-users, Bezdeka, Florian

In the email from Wed, 22 Dec 2021. 11:21:03 +03 user Bezdeka, Florian wrote:
> On Wed, 2021-12-22 at 08:30 +0100, Uladzimir Bely wrote:
> 
> > Some distros like recent Rasbian version may not provide provide packages
> 
>                                                    ^       ^
>                                                    +-------+-- doubled
> 
> 
> > named 'linux-image-${KERNEL_NAME}' and 'linux-image-${KERNEL_NAME}' and
> > use some custom namings.
> > 
> > This patch adds support of such distro-provided package name for packages
> > containing linux image and linux headers.
> > 
> 
> 

Thanks, fixed locally for the future patch v2.

-- 
Uladzimir Bely
Promwad Ltd.
External service provider of ilbers GmbH
Maria-Merian-Str. 8
85521 Ottobrunn, Germany
+49 (89) 122 67 24-0
Commercial register Munich, HRB 214197
General Manager: Baurzhan Ismagulov



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-12-22 10:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-22  7:30 [PATCH 0/6] Update rpi targets to bullseye Uladzimir Bely
2021-12-22  7:30 ` [PATCH 1/6] linux: Allow to use custom packages for linux headers and image Uladzimir Bely
2021-12-22  8:21   ` Bezdeka, Florian
2021-12-22 10:08     ` Uladzimir Bely
2021-12-22  7:30 ` [PATCH 2/6] rpi-sdimage: Change deployed image name Uladzimir Bely
2021-12-22  7:30 ` [PATCH 3/6] rpi: Added raspios-bullseye configs Uladzimir Bely
2021-12-22  7:30 ` [PATCH 4/6] raspios: resize rootfs on first boot Uladzimir Bely
2021-12-22  7:30 ` [PATCH 5/6] CI: Switch rpi targets to bullseye Uladzimir Bely
2021-12-22  7:30 ` [PATCH 6/6] doc: Add notes about raspios-bullseye Uladzimir Bely

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox