From: Anton Mikanovich <amikan@ilbers.de>
To: isar-users@googlegroups.com
Cc: Anton Mikanovich <amikan@ilbers.de>
Subject: [PATCH v2 09/11] meta: Add Ubuntu 26.04 (Resolute Raccoon) support
Date: Mon, 29 Jun 2026 12:46:22 +0300 [thread overview]
Message-ID: <20260629094624.855927-10-amikan@ilbers.de> (raw)
In-Reply-To: <20260629094624.855927-1-amikan@ilbers.de>
Create AMD64, ARM64 and RISCV64 configurations and put them under fast
CI testsuite.
Test cases for the RISCV64 are covered with KFAIL since stability of
this architecture on Ubuntu is not known yet.
Startvm test case for ARM64 is currently broken because of moving this
target to UEFI, so mark it as TODO and cover with KFAIL for now.
Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
kas/distro/Kconfig | 10 ++-
kas/distro/ubuntu-resolute.yaml | 9 +++
kas/machine/Kconfig | 4 ++
meta-isar/conf/distro/ubuntu-common.inc | 6 +-
.../conf/distro/ubuntu-resolute-ports.list | 6 ++
meta-isar/conf/distro/ubuntu-resolute.conf | 14 ++++
meta-isar/conf/distro/ubuntu-resolute.list | 6 ++
meta-isar/conf/machine/qemuarm64.conf | 8 +--
meta-isar/conf/machine/qemuriscv64.conf | 3 +-
meta-isar/conf/mc.conf | 3 +
.../conf/multiconfig/qemuamd64-resolute.conf | 7 ++
.../conf/multiconfig/qemuarm64-resolute.conf | 7 ++
.../multiconfig/qemuriscv64-resolute.conf | 7 ++
testsuite/citest.py | 64 ++++++++++++++++++-
testsuite/data/targets.yml | 6 ++
testsuite/start_vm.py | 5 +-
16 files changed, 155 insertions(+), 10 deletions(-)
create mode 100644 kas/distro/ubuntu-resolute.yaml
create mode 100644 meta-isar/conf/distro/ubuntu-resolute-ports.list
create mode 100644 meta-isar/conf/distro/ubuntu-resolute.conf
create mode 100644 meta-isar/conf/distro/ubuntu-resolute.list
create mode 100644 meta-isar/conf/multiconfig/qemuamd64-resolute.conf
create mode 100644 meta-isar/conf/multiconfig/qemuarm64-resolute.conf
create mode 100644 meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
diff --git a/kas/distro/Kconfig b/kas/distro/Kconfig
index e819ab70..9dadc52e 100644
--- a/kas/distro/Kconfig
+++ b/kas/distro/Kconfig
@@ -1,5 +1,5 @@
# This software is a part of Isar.
-# Copyright (C) 2023-2024 ilbers GmbH
+# Copyright (C) 2023-2026 ilbers GmbH
#
# SPDX-License-Identifier: MIT
#
@@ -44,6 +44,9 @@ config CODENAME_JAMMY
config CODENAME_NOBLE
bool
+config CODENAME_RESOLUTE
+ bool
+
choice
prompt "Distro selection"
default DEBIAN_TRIXIE
@@ -92,6 +95,10 @@ config UBUNTU_NOBLE
bool "Ubuntu 24.04 (Noble)"
depends on (DISTRO_UBUNTU && CODENAME_NOBLE) || ANY_MACHINE_DISTRO
+config UBUNTU_RESOLUTE
+ bool "Ubuntu 26.04 (Resolute)"
+ depends on (DISTRO_UBUNTU && CODENAME_RESOLUTE) || ANY_MACHINE_DISTRO
+
endchoice
config ANY_MACHINE_DISTRO
@@ -114,5 +121,6 @@ config KAS_INCLUDE_DISTRO
default "kas/distro/ubuntu-focal.yaml" if UBUNTU_FOCAL
default "kas/distro/ubuntu-jammy.yaml" if UBUNTU_JAMMY
default "kas/distro/ubuntu-noble.yaml" if UBUNTU_NOBLE
+ default "kas/distro/ubuntu-resolute.yaml" if UBUNTU_RESOLUTE
endmenu
diff --git a/kas/distro/ubuntu-resolute.yaml b/kas/distro/ubuntu-resolute.yaml
new file mode 100644
index 00000000..fb643862
--- /dev/null
+++ b/kas/distro/ubuntu-resolute.yaml
@@ -0,0 +1,9 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+header:
+ version: 14
+
+distro: ubuntu-resolute
diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig
index 6151716a..04881a4b 100644
--- a/kas/machine/Kconfig
+++ b/kas/machine/Kconfig
@@ -123,6 +123,7 @@ config MACHINE_QEMU_AMD64
select CODENAME_FOCAL
select CODENAME_JAMMY
select CODENAME_NOBLE
+ select CODENAME_RESOLUTE
select ARCH_AMD64
config MACHINE_QEMU_ARM
@@ -145,6 +146,7 @@ config MACHINE_QEMU_ARM64
select CODENAME_FOCAL
select CODENAME_JAMMY
select CODENAME_NOBLE
+ select CODENAME_RESOLUTE
select ARCH_ARM64
config MACHINE_QEMU_I386
@@ -167,6 +169,8 @@ config MACHINE_QEMU_RISCV64
select DISTRO_DEBIAN
select CODENAME_TRIXIE
select CODENAME_SID
+ select DISTRO_UBUNTU
+ select CODENAME_RESOLUTE
select ARCH_RISCV64
config MACHINE_RPI_ARM_V7
diff --git a/meta-isar/conf/distro/ubuntu-common.inc b/meta-isar/conf/distro/ubuntu-common.inc
index 8b9964c8..1ee9bb84 100644
--- a/meta-isar/conf/distro/ubuntu-common.inc
+++ b/meta-isar/conf/distro/ubuntu-common.inc
@@ -1,5 +1,6 @@
-#
+# This software is a part of Isar.
# Copyright (c) Siemens AG, 2018-2023
+# Copyright (C) 2023-2024 ilbers GmbH
#
# SPDX-License-Identifier: MIT
@@ -12,6 +13,9 @@ HOST_BASE_DISTRO = "${BASE_DISTRO}"
DISTRO_APT_SOURCES:arm64 ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-ports.list"
HOST_DISTRO_APT_SOURCES:arm64 ?= "conf/distro/${HOST_DISTRO}.list conf/distro/${HOST_DISTRO}-ports.list"
+DISTRO_APT_SOURCES:riscv64 ?= "conf/distro/${BASE_DISTRO}-${BASE_DISTRO_CODENAME}-ports.list"
+HOST_DISTRO_APT_SOURCES:riscv64 ?= "conf/distro/${HOST_DISTRO}.list conf/distro/${HOST_DISTRO}-ports.list"
+
BOOTSTRAP_KEY = "file://${LAYERDIR_isar}/conf/distro/ubuntu.public.key;sha256sum=36a38199a4bf4eae1e7f574891f7dfcb79b91b87a33a499383265e1224b5e989"
DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}"
HOST_DISTRO_BOOTSTRAP_KEYS += "${BOOTSTRAP_KEY}"
diff --git a/meta-isar/conf/distro/ubuntu-resolute-ports.list b/meta-isar/conf/distro/ubuntu-resolute-ports.list
new file mode 100644
index 00000000..239cafe6
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute-ports.list
@@ -0,0 +1,6 @@
+deb [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute main restricted universe multiverse
+deb-src [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute main restricted universe multiverse
+deb [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-updates main restricted universe multiverse
+deb-src [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-updates main restricted universe multiverse
+deb [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-security main restricted universe multiverse
+deb-src [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports resolute-security main restricted universe multiverse
diff --git a/meta-isar/conf/distro/ubuntu-resolute.conf b/meta-isar/conf/distro/ubuntu-resolute.conf
new file mode 100644
index 00000000..141f438f
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute.conf
@@ -0,0 +1,14 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+require conf/distro/ubuntu-common.inc
+
+BASE_DISTRO_CODENAME = "resolute"
+
+DISTRO_GCC = "15"
+
+DEBIAN_COMPAT = "13"
+
+DEBIAN_STANDARDS_VERSION ?= "4.7.4"
diff --git a/meta-isar/conf/distro/ubuntu-resolute.list b/meta-isar/conf/distro/ubuntu-resolute.list
new file mode 100644
index 00000000..65dcc81e
--- /dev/null
+++ b/meta-isar/conf/distro/ubuntu-resolute.list
@@ -0,0 +1,6 @@
+deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
+deb-src [arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute main restricted universe multiverse
+deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
+deb-src [arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-updates main restricted universe multiverse
+deb [arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
+deb-src [arch=amd64,i386] http://archive.ubuntu.com/ubuntu resolute-security main restricted universe multiverse
diff --git a/meta-isar/conf/machine/qemuarm64.conf b/meta-isar/conf/machine/qemuarm64.conf
index 0cc7457c..4b76e5c1 100644
--- a/meta-isar/conf/machine/qemuarm64.conf
+++ b/meta-isar/conf/machine/qemuarm64.conf
@@ -1,12 +1,12 @@
# This software is a part of Isar.
-# Copyright (C) 2015-2017 ilbers GmbH
+# Copyright (C) 2015-2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
DISTRO_ARCH ?= "arm64"
KERNEL_NAME ?= "arm64"
-KERNEL_NAME:ubuntu-focal ?= "generic"
-KERNEL_NAME:ubuntu-jammy ?= "generic"
-KERNEL_NAME:ubuntu-noble ?= "generic"
+KERNEL_NAME:ubuntu ?= "generic"
IMAGE_FSTYPES ?= "ext4"
ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/machine/qemuriscv64.conf b/meta-isar/conf/machine/qemuriscv64.conf
index f2a32b8e..a2a5de9b 100644
--- a/meta-isar/conf/machine/qemuriscv64.conf
+++ b/meta-isar/conf/machine/qemuriscv64.conf
@@ -1,5 +1,5 @@
# This software is a part of Isar.
-# Copyright (C) 2015-2017 ilbers GmbH
+# Copyright (C) 2015-2026 ilbers GmbH
# Copyright (c) Siemens AG, 2020
#
# SPDX-License-Identifier: MIT
@@ -7,6 +7,7 @@
DISTRO_ARCH ?= "riscv64"
KERNEL_NAME ?= "riscv64"
+KERNEL_NAME:ubuntu ?= "generic"
IMAGE_FSTYPES ?= "ext4"
ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index 6c7d7840..6f9ac7df 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -72,9 +72,12 @@ BBMULTICONFIG = " \
qemuarm64-focal \
qemuarm64-jammy \
qemuarm64-noble \
+ qemuarm64-resolute \
qemuamd64-focal \
qemuamd64-jammy \
qemuamd64-noble \
+ qemuamd64-resolute \
qemuamd64-sid \
qemuarm64-sid \
+ qemuriscv64-resolute \
"
diff --git a/meta-isar/conf/multiconfig/qemuamd64-resolute.conf b/meta-isar/conf/multiconfig/qemuamd64-resolute.conf
new file mode 100644
index 00000000..8c997f89
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuamd64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuamd64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/meta-isar/conf/multiconfig/qemuarm64-resolute.conf b/meta-isar/conf/multiconfig/qemuarm64-resolute.conf
new file mode 100644
index 00000000..cdb25642
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuarm64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuarm64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf b/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
new file mode 100644
index 00000000..4f2c6b9e
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuriscv64-resolute.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuriscv64"
+DISTRO ?= "ubuntu-resolute"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index ff2f9ba4..5975b2cc 100644
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
#
# This software is a part of Isar.
-# Copyright (C) 2022-2025 ilbers GmbH
+# Copyright (C) 2022-2026 ilbers GmbH
# Copyright (C) 2022-2025 Siemens AG
#
# SPDX-License-Identifier: MIT
@@ -262,6 +262,8 @@ class CrossTest(CIBaseTest):
'mc:qemuarm64-trixie:isar-image-base',
'mc:qemuarm64-focal:isar-image-base',
'mc:nanopi-neo-efi-bookworm:isar-image-base',
+ 'mc:qemuarm64-resolute:isar-image-base',
+ 'mc:qemuamd64-resolute:isar-image-base',
]
self.init()
@@ -384,6 +386,42 @@ class CrossTest(CIBaseTest):
self.init()
self.vm_start('arm64', 'focal')
+ # TODO: broken because of moving to UEFI
+ def test_run_arm64_resolute(self):
+ """
+ :avocado: tags=startvm
+ """
+ self.init()
+ try:
+ self.vm_start('arm64', 'resolute')
+ except exceptions.TestFail:
+ self.cancel('KFAIL')
+
+ def test_run_amd64_resolute(self):
+ """
+ :avocado: tags=startvm
+ """
+ self.init()
+ self.vm_start('amd64', 'resolute')
+
+ def test_cross_debsrc(self):
+ targets = [
+ 'mc:qemuarm64-bookworm:isar-image-ci',
+ ]
+
+ self.init()
+ # only build a single custom package to speedup test
+ self.perform_build_test(targets, debsrc_cache=True, image_install='cowsay')
+
+ def test_cross_trixie(self):
+ targets = [
+ 'mc:qemuamd64-trixie:isar-image-base',
+ 'mc:qemuarm64-trixie:isar-image-base',
+ ]
+
+ self.init()
+ self.perform_build_test(targets, cross=False)
+
def test_cross_debsrc(self):
targets = [
'mc:qemuarm64-bookworm:isar-image-ci',
@@ -430,6 +468,30 @@ class CrossTest(CIBaseTest):
self.perform_build_test(targets, lines=lines,
image_install=image_install)
+ def test_cross_riscv64(self):
+ """
+ :avocado: tags=riscv64
+ """
+ targets = [
+ 'mc:qemuriscv64-resolute:isar-image-ci',
+ ]
+
+ self.init()
+ try:
+ self.perform_build_test(targets)
+ except exceptions.TestFail:
+ self.cancel('KFAIL')
+
+ def test_run_riscv64_resolute(self):
+ """
+ :avocado: tags=startvm,riscv64
+ """
+ self.init()
+ try:
+ self.vm_start('riscv64', 'resolute', image='isar-image-ci')
+ except exceptions.TestFail:
+ self.cancel('KFAIL')
+
def test_cross_mira_trixie(self):
targets = [
'mc:phyboard-mira-trixie:isar-image-base',
diff --git a/testsuite/data/targets.yml b/testsuite/data/targets.yml
index e7b112d9..f480d034 100644
--- a/testsuite/data/targets.yml
+++ b/testsuite/data/targets.yml
@@ -127,16 +127,22 @@ a: !mux
name: qemuarm64-jammy
qemuarm64-noble:
name: qemuarm64-noble
+ qemuarm64-resolute:
+ name: qemuarm64-resolute
qemuamd64-focal:
name: qemuamd64-focal
qemuamd64-jammy:
name: qemuamd64-jammy
qemuamd64-noble:
name: qemuamd64-noble
+ qemuamd64-resolute:
+ name: qemuamd64-resolute
qemuamd64-sid:
name: qemuamd64-sid
qemuarm64-sid:
name: qemuarm64-sid
+ qemuriscv64-resolute:
+ name: qemuriscv64-resolute
b: !mux
base:
image: isar-image-base
diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py
index 8e28f11b..15d5ed5c 100755
--- a/testsuite/start_vm.py
+++ b/testsuite/start_vm.py
@@ -48,7 +48,7 @@ def format_qemu_cmdline(
extra_args = ''
image_type = image_fstypes.split()[0]
- base = 'ubuntu' if distro in ['jammy', 'focal', 'noble'] else 'debian'
+ base = 'ubuntu' if distro in ['jammy', 'focal', 'noble', 'resolute'] else 'debian'
rootfs_image = f"{image}-{base}-{distro}-qemu{arch}.{image_type}"
@@ -148,7 +148,7 @@ def start_qemu(arch, build, distro, image, out, pid, enforce_pcbios):
def parse_args():
parser = argparse.ArgumentParser()
- arch_names = ['arm', 'arm64', 'amd64', 'amd64-sb', 'amd64-cip', 'amd64-iso', 'i386', 'mipsel']
+ arch_names = ['arm', 'arm64', 'amd64', 'amd64-sb', 'amd64-cip', 'amd64-iso', 'i386', 'mipsel', 'riscv64']
distro_names = [
'buster',
'bullseye',
@@ -157,6 +157,7 @@ def parse_args():
'focal',
'jammy',
'noble',
+ 'resolute',
]
parser.add_argument(
'-a',
--
2.34.1
--
You received this message because you are subscribed to the Google Groups "isar-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/isar-users/20260629094624.855927-10-amikan%40ilbers.de.
next prev parent reply other threads:[~2026-06-29 9:46 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-29 9:46 [PATCH v2 00/11] Add new targets and required fixes Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 01/11] grub: Remove obsolete efi_uga module for new distros Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 02/11] CI: Freeze setuptools package version for avocado compatibility Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 03/11] CI: Fix errors reporting during startvm Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 04/11] meta: Add base distro overrides Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 05/11] linux-kernel: Reverse linux-libc-dev package arch selection logic Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 06/11] trixie: Split missing drivers hook recipes Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 07/11] CI: Move trixie targets to generic test cases Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 08/11] CI: Run startvm for all qemu targets Anton Mikanovich
2026-06-29 9:46 ` Anton Mikanovich [this message]
2026-06-29 9:46 ` [PATCH v2 10/11] testsuite: Cover Debian Trixie RISCV64 QEMU target with CI Anton Mikanovich
2026-06-29 9:46 ` [PATCH v2 11/11] testsuite: Cover Debian Forky " Anton Mikanovich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260629094624.855927-10-amikan@ilbers.de \
--to=amikan@ilbers.de \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox