* [PATCH 1/2] meta-isar: Add ubuntu-ports riscv64 support in Isar
2025-04-24 7:02 [PATCH 0/2] Add riscv64 support for Ubuntu Noble Uladzimir Bely
@ 2025-04-24 7:02 ` Uladzimir Bely
2025-04-24 7:02 ` [PATCH 2/2] testsuite: Add cross-build and run tests for riscv64 targets Uladzimir Bely
1 sibling, 0 replies; 3+ messages in thread
From: Uladzimir Bely @ 2025-04-24 7:02 UTC (permalink / raw)
To: isar-users
Ubuntu ports provides not only arm64/armhf architectures we currently
support in Isar, but also some other architectures.
Provide possibility to build ubuntu/riscv64 targets.
Also, change kas configuration to allow selecting ubuntu-noble for
qemuriscv64 build without enabling ANY_MACHINE_DISTRO option.
Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
kas/machine/Kconfig | 2 ++
meta-isar/conf/distro/ubuntu-common.inc | 5 ++++-
meta-isar/conf/distro/ubuntu-noble-ports.list | 12 ++++++------
meta-isar/conf/machine/qemuriscv64.conf | 3 +++
meta-isar/conf/mc.conf | 1 +
meta-isar/conf/multiconfig/qemuriscv64-noble.conf | 7 +++++++
6 files changed, 23 insertions(+), 7 deletions(-)
create mode 100644 meta-isar/conf/multiconfig/qemuriscv64-noble.conf
diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig
index 8c334a8f..82e2715d 100644
--- a/kas/machine/Kconfig
+++ b/kas/machine/Kconfig
@@ -168,6 +168,8 @@ config MACHINE_QEMU_RISCV64
select DISTRO_DEBIAN
select CODENAME_TRIXIE
select CODENAME_SID
+ select DISTRO_UBUNTU
+ select CODENAME_NOBLE
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 88a3b4f0..fac61fbe 100644
--- a/meta-isar/conf/distro/ubuntu-common.inc
+++ b/meta-isar/conf/distro/ubuntu-common.inc
@@ -12,6 +12,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}"
@@ -21,7 +24,7 @@ DISTRO_BOOTSTRAP_BASE_PACKAGES:append:focal = " usrmerge"
DISTRO_BOOTSTRAP_BASE_PACKAGES:append:jammy = " usrmerge"
# kernel package name is linux-image-generic in Ubuntu
-KERNEL_NAME = "generic"
+KERNEL_NAME ?= "generic"
# that is what debootstrap_1.0.118ubuntu1 does anyways
DISTRO_DEBOOTSTRAP_SCRIPT = "/usr/share/debootstrap/scripts/gutsy"
diff --git a/meta-isar/conf/distro/ubuntu-noble-ports.list b/meta-isar/conf/distro/ubuntu-noble-ports.list
index adeb2639..9b101e3d 100644
--- a/meta-isar/conf/distro/ubuntu-noble-ports.list
+++ b/meta-isar/conf/distro/ubuntu-noble-ports.list
@@ -1,6 +1,6 @@
-deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
-deb-src [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
-deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
-deb-src [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
-deb [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
-deb-src [arch=armhf,arm64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
+deb [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
+deb-src [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse
+deb [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
+deb-src [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse
+deb [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
+deb-src [arch=armhf,arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse
diff --git a/meta-isar/conf/machine/qemuriscv64.conf b/meta-isar/conf/machine/qemuriscv64.conf
index b9656090..3f14727a 100644
--- a/meta-isar/conf/machine/qemuriscv64.conf
+++ b/meta-isar/conf/machine/qemuriscv64.conf
@@ -7,6 +7,9 @@
DISTRO_ARCH ?= "riscv64"
KERNEL_NAME ?= "riscv64"
+KERNEL_NAME:ubuntu ?= "generic"
+KERNEL_NAME:ubuntu-jammy ?= "generic"
+KERNEL_NAME:ubuntu-noble ?= "generic"
IMAGE_FSTYPES ?= "ext4"
ROOTFS_EXTRA ?= "128"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index 55969c7b..322c89b2 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -69,6 +69,7 @@ BBMULTICONFIG = " \
qemuamd64-focal \
qemuamd64-jammy \
qemuamd64-noble \
+ qemuriscv64-noble \
qemuamd64-sid \
qemuarm64-sid \
"
diff --git a/meta-isar/conf/multiconfig/qemuriscv64-noble.conf b/meta-isar/conf/multiconfig/qemuriscv64-noble.conf
new file mode 100644
index 00000000..9a2b0430
--- /dev/null
+++ b/meta-isar/conf/multiconfig/qemuriscv64-noble.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2025 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "qemuriscv64"
+DISTRO ?= "ubuntu-noble"
--
2.49.0
--
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/20250424070606.11003-2-ubely%40ilbers.de.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] testsuite: Add cross-build and run tests for riscv64 targets
2025-04-24 7:02 [PATCH 0/2] Add riscv64 support for Ubuntu Noble Uladzimir Bely
2025-04-24 7:02 ` [PATCH 1/2] meta-isar: Add ubuntu-ports riscv64 support in Isar Uladzimir Bely
@ 2025-04-24 7:02 ` Uladzimir Bely
1 sibling, 0 replies; 3+ messages in thread
From: Uladzimir Bely @ 2025-04-24 7:02 UTC (permalink / raw)
To: isar-users
Since stability of new riscv64 targets is not known yet, don't mark
complete CI as failed if some of new tests fail.
Signed-off-by: Uladzimir Bely <ubely@ilbers.de>
---
meta-isar/conf/machine/qemuriscv64.conf | 2 +-
testsuite/citest.py | 35 +++++++++++++++++++++++++
testsuite/start_vm.py | 2 +-
3 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/meta-isar/conf/machine/qemuriscv64.conf b/meta-isar/conf/machine/qemuriscv64.conf
index 3f14727a..4cb4f371 100644
--- a/meta-isar/conf/machine/qemuriscv64.conf
+++ b/meta-isar/conf/machine/qemuriscv64.conf
@@ -21,7 +21,7 @@ QEMU_ROOTFS_DEV ?= "vda"
QEMU_ARCH ?= "riscv64"
QEMU_MACHINE ?= "virt"
-QEMU_CPU ?= "rv64gcsu-v1.10.0"
+QEMU_CPU ?= "rv64"
# TODO: start_vm doesn't support multiline vars
QEMU_DISK_ARGS ?= "-drive file=##ROOTFS_IMAGE##,if=none,format=raw,id=hd0 -device virtio-blk-device,drive=hd0"
diff --git a/testsuite/citest.py b/testsuite/citest.py
index 56ac1f52..1ba1de9f 100755
--- a/testsuite/citest.py
+++ b/testsuite/citest.py
@@ -204,6 +204,21 @@ class CrossTest(CIBaseTest):
self.init()
self.perform_build_test(targets)
+ def test_cross_riscv64(self):
+ """
+ :avocado: tags=riscv64
+ """
+ targets = [
+ 'mc:qemuriscv64-trixie:isar-image-ci',
+ 'mc:qemuriscv64-noble:isar-image-ci',
+ ]
+
+ self.init()
+ try:
+ self.perform_build_test(targets, cross=False)
+ except exceptions.TestFail:
+ self.cancel('KFAIL')
+
class WicTest(CIBaseTest):
@@ -563,6 +578,26 @@ class VmBootTestFast(CIBaseTest):
script='test_systemd_unit.sh getty.target 10',
)
+ def test_riscv64_trixie(self):
+ """
+ :avocado: tags=riscv64
+ """
+ self.init()
+ try:
+ self.vm_start('riscv64', 'trixie', image='isar-image-ci')
+ except exceptions.TestFail:
+ self.cancel('KFAIL')
+
+ def test_riscv64_noble(self):
+ """
+ :avocado: tags=riscv64
+ """
+ self.init()
+ try:
+ self.vm_start('riscv64', 'noble', image='isar-image-ci')
+ except exceptions.TestFail:
+ self.cancel('KFAIL')
+
class VmBootTestFull(CIBaseTest):
diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py
index 57d169df..18c6139c 100755
--- a/testsuite/start_vm.py
+++ b/testsuite/start_vm.py
@@ -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',
--
2.49.0
--
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/20250424070606.11003-3-ubely%40ilbers.de.
^ permalink raw reply [flat|nested] 3+ messages in thread