From: Dominik Csapak <d.csapak@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH manager 00/10] enable qemu vm architecture selection
Date: Wed, 28 Jan 2026 13:18:01 +0100 [thread overview]
Message-ID: <20260128123035.2576774-1-d.csapak@proxmox.com> (raw)
This series brings the emulated aarch64 vms to the gui. This could
be configured on the api only previously.
The code also handles if the host has a non-x86 architecture, and is
generally structured in a way that should make it (relatively) easy
to add other architectures in the future.
Some fields/panels needed adaptions to hide some values or change some
defaults, since not every combination that can be configured makes
sense. (e.g. seabios on aarch64 cannot work currently)
Generally the backend allows many combinations that don't make sense on
all architectures, so i tried to limit the users here to the 'correct'
ones, but we should think about limiting them in the backend too.
Also, the backend made some inconsistent choices with different
architectures, such as the default controller changes with the
architecture, but things like 'bios' or 'scsihw' do not. So I worked
around these things a bit differently.
What is still missing:
* make the disk controllers selective per architecture
(e.g. aarch64 has no ide controller, ovmf+aarch64 cannot boot from sata)
* cpumodel + cpuflags need to be architecture aware
other nice to haves not yet done, that also invovle changing the backend:
* 'virt' machine support in our api, so one can choose older versions
* allow 'pcie' passthrough on 'virt'
Dominik Csapak (10):
api/pvestatd: broadcast and expose non-x86 host architecture
ui: resource store: add architecture field
ui: qemu: add architecture field in wizard and hardware view
ui: qemu: make scsi hw selector architecture aware
ui: qemu: make osdefaults architecture aware
ui: qemu: make os type selector architecture aware
ui: qemu: make machine panels/fields architecture aware
ui: qemu: make bios selector architecture aware
ui: qemu: make sortByPreviousUsage architecture aware
ui: qemu: wizard: use defaults to populate machine and bios
PVE/API2/Cluster.pm | 9 +++
PVE/API2/Nodes.pm | 3 +-
PVE/Service/pvestatd.pm | 10 +++
www/manager6/Makefile | 1 +
www/manager6/Utils.js | 61 ++++++++++++++++--
www/manager6/data/ResourceStore.js | 6 ++
www/manager6/form/ControllerSelector.js | 9 ++-
www/manager6/form/QemuBiosSelector.js | 61 ++++++++++++++++--
www/manager6/form/QemuMachineSelector.js | 64 +++++++++++++++++++
www/manager6/form/ScsiHwSelector.js | 63 ++++++++++++++++++
www/manager6/panel/MultiDiskEdit.js | 14 ++--
www/manager6/qemu/CIDriveEdit.js | 2 +
www/manager6/qemu/CreateWizard.js | 27 ++++++++
www/manager6/qemu/HardwareView.js | 19 +++++-
www/manager6/qemu/MachineEdit.js | 63 +++++++++++++-----
www/manager6/qemu/MultiHDEdit.js | 3 +-
www/manager6/qemu/NetworkEdit.js | 3 +-
www/manager6/qemu/OSDefaults.js | 81 +++++++++++++++++++-----
www/manager6/qemu/OSTypeEdit.js | 39 +++++++++++-
www/manager6/qemu/QemuBiosEdit.js | 35 +++++++++-
www/manager6/qemu/ScsiHwEdit.js | 1 +
www/manager6/qemu/SystemEdit.js | 33 +++++++---
www/manager6/window/GuestDiskReassign.js | 1 +
23 files changed, 539 insertions(+), 69 deletions(-)
create mode 100644 www/manager6/form/QemuMachineSelector.js
--
2.47.3
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next reply other threads:[~2026-01-28 12:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-28 12:18 Dominik Csapak [this message]
2026-01-28 12:18 ` [pve-devel] [PATCH manager 01/10] api/pvestatd: broadcast and expose non-x86 host architecture Dominik Csapak
2026-01-28 16:05 ` Fiona Ebner
2026-01-29 9:20 ` Dominik Csapak
2026-01-28 12:18 ` [pve-devel] [PATCH manager 02/10] ui: resource store: add architecture field Dominik Csapak
2026-01-28 12:18 ` [pve-devel] [PATCH manager 03/10] ui: qemu: add architecture field in wizard and hardware view Dominik Csapak
2026-01-28 16:32 ` Fiona Ebner
2026-01-28 12:18 ` [pve-devel] [PATCH manager 04/10] ui: qemu: make scsi hw selector architecture aware Dominik Csapak
2026-01-28 12:18 ` [pve-devel] [PATCH manager 05/10] ui: qemu: make osdefaults " Dominik Csapak
2026-01-29 9:25 ` Fiona Ebner
2026-01-28 12:18 ` [pve-devel] [PATCH manager 06/10] ui: qemu: make os type selector " Dominik Csapak
2026-01-29 9:41 ` Fiona Ebner
2026-01-29 9:47 ` Dominik Csapak
2026-01-29 12:09 ` Fiona Ebner
2026-01-29 10:18 ` Dominik Csapak
2026-01-29 12:10 ` Fiona Ebner
2026-01-28 12:18 ` [pve-devel] [PATCH manager 07/10] ui: qemu: make machine panels/fields " Dominik Csapak
2026-01-29 11:12 ` Fiona Ebner
2026-01-29 12:16 ` Dominik Csapak
2026-01-29 12:25 ` Fiona Ebner
2026-01-28 12:18 ` [pve-devel] [PATCH manager 08/10] ui: qemu: make bios selector " Dominik Csapak
2026-01-28 12:18 ` [pve-devel] [PATCH manager 09/10] ui: qemu: make sortByPreviousUsage " Dominik Csapak
2026-01-28 12:18 ` [pve-devel] [PATCH manager 10/10] ui: qemu: wizard: use defaults to populate machine and bios Dominik Csapak
2026-01-29 13:13 ` [pve-devel] [PATCH manager 00/10] enable qemu vm architecture selection Fiona Ebner
2026-01-29 13:15 ` Fiona Ebner
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=20260128123035.2576774-1-d.csapak@proxmox.com \
--to=d.csapak@proxmox.com \
--cc=pve-devel@lists.proxmox.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