From: "'Gourav Singh' via isar-users" <isar-users@googlegroups.com>
To: isar-users@googlegroups.com
Cc: Gourav Singh <gouravsingh@siemens.com>
Subject: [PATCH] feat: add support for hyper-v virtual machine
Date: Mon, 6 Jul 2026 17:16:02 +0530 [thread overview]
Message-ID: <20260706114602.2309505-1-gouravsingh@siemens.com> (raw)
Introduce a new `hyper-v` machine targeting Microsoft Hyper-V virtual
machines on amd64. The machine uses WIC with an EFI partition layout,
GRUB as the bootloader, and produces a `.vhdx` disk image alongside
the `.wic` image.
Add Kconfig entry, kas machine yaml, machine config, and multiconfig
files for bullseye, bookworm, and trixie. Register the new multiconfigs
in mc.conf and document the addition in RECIPE-API-CHANGELOG.md.
Signed-off-by: Gourav Singh <gouravsingh@siemens.com>
---
RECIPE-API-CHANGELOG.md | 24 +++++++++++++++++++
kas/machine/Kconfig | 9 +++++++
kas/machine/hyper-v.yaml | 7 ++++++
meta-isar/conf/machine/hyper-v.conf | 16 +++++++++++++
meta-isar/conf/mc.conf | 3 +++
.../conf/multiconfig/hyper-v-bookworm.conf | 7 ++++++
.../conf/multiconfig/hyper-v-bullseye.conf | 7 ++++++
.../conf/multiconfig/hyper-v-trixie.conf | 7 ++++++
8 files changed, 80 insertions(+)
create mode 100644 kas/machine/hyper-v.yaml
create mode 100644 meta-isar/conf/machine/hyper-v.conf
create mode 100644 meta-isar/conf/multiconfig/hyper-v-bookworm.conf
create mode 100644 meta-isar/conf/multiconfig/hyper-v-bullseye.conf
create mode 100644 meta-isar/conf/multiconfig/hyper-v-trixie.conf
diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
index 5d2514c0..3c70d681 100644
--- a/RECIPE-API-CHANGELOG.md
+++ b/RECIPE-API-CHANGELOG.md
@@ -1087,3 +1087,27 @@ and `arch=all` binary packages). Recipes for such mixed packages should append
`PROVIDES="foo-doc-archall"` for an `arch=all` binary package `foo-doc`).
Consumers can then simply reference the package by its original name (e.g.,
`foo-doc`).
+
+### Add Hyper-V machine support
+
+A new machine `hyper-v` has been introduced for building images
+targeting Microsoft Hyper-V virtual machines on amd64.
+
+The machine produces a `.vhdx` disk image using the WIC image type
+and GRUB as the bootloader. It supports the following Debian codenames:
+
+- `bullseye`
+- `bookworm`
+- `trixie`
+
+To build a Hyper-V image:
+
+```bash
+./kas/kas-container --ssh-dir ~/.ssh/ menu
+```
+
+- Select machine: `hyper-v`
+- Select distro and image type
+
+The output `.vhdx` file will be placed in `DEPLOY_DIR_IMAGE` alongside
+the `.wic` image.
diff --git a/kas/machine/Kconfig b/kas/machine/Kconfig
index 6151716a..9bfdee38 100644
--- a/kas/machine/Kconfig
+++ b/kas/machine/Kconfig
@@ -237,6 +237,14 @@ config MACHINE_VMWARE
select CODENAME_BULLSEYE
select ARCH_AMD64
+config MACHINE_HYPER_V
+ bool "hyper-v"
+ select DISTRO_DEBIAN
+ select CODENAME_BULLSEYE
+ select CODENAME_BOOKWORM
+ select CODENAME_TRIXIE
+ select ARCH_AMD64
+
config MACHINE_X86_PC
bool "x86 PC"
select DISTRO_DEBIAN
@@ -280,6 +288,7 @@ config KAS_INCLUDE_MACHINE
default "kas/machine/stm32mp15x.yaml" if MACHINE_STM32MP15X
default "kas/machine/virtualbox.yaml" if MACHINE_VIRTUALBOX
default "kas/machine/vmware.yaml" if MACHINE_VMWARE
+ default "kas/machine/hyper-v.yaml" if MACHINE_HYPER_V
default "kas/machine/x86-pc.yaml" if MACHINE_X86_PC
endmenu
diff --git a/kas/machine/hyper-v.yaml b/kas/machine/hyper-v.yaml
new file mode 100644
index 00000000..e7ff1dc5
--- /dev/null
+++ b/kas/machine/hyper-v.yaml
@@ -0,0 +1,7 @@
+# This software is a part of ISAR.
+# Copyright (C) 2026 ilbers GmbH
+
+header:
+ version: 14
+
+machine: hyper-v
diff --git a/meta-isar/conf/machine/hyper-v.conf b/meta-isar/conf/machine/hyper-v.conf
new file mode 100644
index 00000000..e43483cd
--- /dev/null
+++ b/meta-isar/conf/machine/hyper-v.conf
@@ -0,0 +1,16 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+DISTRO_ARCH ?= "amd64"
+
+KERNEL_NAME ?= "amd64"
+
+WKS_FILE ?= "sdimage-efi"
+
+IMAGER_INSTALL:wic += "${GRUB_BOOTLOADER_INSTALL}"
+
+IMAGE_FSTYPES ?= "ova"
+VMDK_SUBFORMAT = "monolithicSparse"
+VIRTUAL_MACHINE_IMAGE_TYPE = "vhdx"
diff --git a/meta-isar/conf/mc.conf b/meta-isar/conf/mc.conf
index 6c7d7840..77118996 100644
--- a/meta-isar/conf/mc.conf
+++ b/meta-isar/conf/mc.conf
@@ -45,6 +45,9 @@ BBMULTICONFIG = " \
hikey-bullseye \
hikey-bookworm \
hikey-trixie \
+ hyper-v-bullseye \
+ hyper-v-bookworm \
+ hyper-v-trixie \
phyboard-mira-bullseye \
phyboard-mira-bookworm \
phyboard-mira-trixie \
diff --git a/meta-isar/conf/multiconfig/hyper-v-bookworm.conf b/meta-isar/conf/multiconfig/hyper-v-bookworm.conf
new file mode 100644
index 00000000..0b52d69f
--- /dev/null
+++ b/meta-isar/conf/multiconfig/hyper-v-bookworm.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "hyper-v"
+DISTRO ?= "debian-bookworm"
diff --git a/meta-isar/conf/multiconfig/hyper-v-bullseye.conf b/meta-isar/conf/multiconfig/hyper-v-bullseye.conf
new file mode 100644
index 00000000..9dfbbd43
--- /dev/null
+++ b/meta-isar/conf/multiconfig/hyper-v-bullseye.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "hyper-v"
+DISTRO ?= "debian-bullseye"
diff --git a/meta-isar/conf/multiconfig/hyper-v-trixie.conf b/meta-isar/conf/multiconfig/hyper-v-trixie.conf
new file mode 100644
index 00000000..c6299582
--- /dev/null
+++ b/meta-isar/conf/multiconfig/hyper-v-trixie.conf
@@ -0,0 +1,7 @@
+# This software is a part of Isar.
+# Copyright (C) 2026 ilbers GmbH
+#
+# SPDX-License-Identifier: MIT
+
+MACHINE ?= "hyper-v"
+DISTRO ?= "debian-trixie"
--
2.39.5
--
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/20260706114602.2309505-1-gouravsingh%40siemens.com.
reply other threads:[~2026-07-06 11:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20260706114602.2309505-1-gouravsingh@siemens.com \
--to=isar-users@googlegroups.com \
--cc=gouravsingh@siemens.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