public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH manager v2 00/17] enable qemu vm architecture selection
@ 2026-02-03 10:00 Dominik Csapak
  2026-02-03 10:00 ` [PATCH manager v2 01/17] api/pvestatd: broadcast and expose non-x86 host architecture Dominik Csapak
                   ` (18 more replies)
  0 siblings, 19 replies; 22+ messages in thread
From: Dominik Csapak @ 2026-02-03 10:00 UTC (permalink / raw)
  To: pve-devel

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.

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'

NOTE: requires fionas series for qemu-server[0] to work properly
for the cpu models + flags

The series is a very big rewrite from the v1, so it probably
won't help by comparing with the v1, but here is a changelog
nonetheless:

changes from v1:
* refactored the filtering of KVComboBox into a FilteredKVComboBox
* refactored architecture specific things into PVE.qemu.Architecture
  this makes it much easier in the future to add new architectures
* refactored the wizard logic for ostype + iso into it's own panel
  this makes the os type selector much simpler and easier to follow
* changed the way the wizard sets the architecture in the viewmodel,
  namely it's now always a valid value, and we don't have to calculate
  from the selected node everywhere
* added handling of cd roms in the wizard
* added handling of cpu model + flags
* fixed leftover hunk in PVE/API2/NodeConfig
* probably more...

Dominik Csapak (17):
  api/pvestatd: broadcast and expose non-x86 host architecture
  ui: qemu: wizard: refactor ostype and cd selector into an OSPanel
  ui: form: add filtered KVComboBox
  ui: resource store: add architecture field
  ui: qemu: add architecture specific defaults and helpers
  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
  ui: qemu: wizard: make iso confid architecture specific
  ui: qemu: make bus selector architecture aware
  ui: qemu: make processor edit architecture aware
  ui: qemu: change ui default for cpu model

 PVE/API2/Cluster.pm                      |   9 ++
 PVE/Service/pvestatd.pm                  |  10 ++
 www/manager6/Makefile                    |   4 +
 www/manager6/Utils.js                    |  21 ++-
 www/manager6/data/ResourceStore.js       |   6 +
 www/manager6/form/BusTypeSelector.js     |   4 +-
 www/manager6/form/CPUModelSelector.js    |  39 ++++++
 www/manager6/form/ControllerSelector.js  |  26 +++-
 www/manager6/form/FilteredKVComboBox.js  |  67 +++++++++
 www/manager6/form/QemuBiosSelector.js    |  18 ++-
 www/manager6/form/QemuMachineSelector.js |  13 ++
 www/manager6/form/ScsiHwSelector.js      |   6 +-
 www/manager6/form/VMCPUFlagSelector.js   |  13 ++
 www/manager6/panel/MultiDiskEdit.js      |  14 +-
 www/manager6/qemu/Architecture.js        | 104 ++++++++++++++
 www/manager6/qemu/CDEdit.js              |   4 +
 www/manager6/qemu/CIDriveEdit.js         |   2 +
 www/manager6/qemu/CreateWizard.js        |  81 +++++++----
 www/manager6/qemu/HDEdit.js              |   3 +
 www/manager6/qemu/HardwareView.js        |  16 ++-
 www/manager6/qemu/MachineEdit.js         |  68 +++++++---
 www/manager6/qemu/MultiHDEdit.js         |   8 +-
 www/manager6/qemu/NetworkEdit.js         |   6 +-
 www/manager6/qemu/OSDefaults.js          |  82 +++++++++---
 www/manager6/qemu/OSPanel.js             | 164 +++++++++++++++++++++++
 www/manager6/qemu/OSTypeEdit.js          | 126 ++++-------------
 www/manager6/qemu/Options.js             |   4 +-
 www/manager6/qemu/ProcessorEdit.js       |  30 +++++
 www/manager6/qemu/QemuBiosEdit.js        |  29 +++-
 www/manager6/qemu/ScsiHwEdit.js          |   1 +
 www/manager6/qemu/SystemEdit.js          |  26 ++--
 www/manager6/window/GuestDiskReassign.js |   1 +
 32 files changed, 802 insertions(+), 203 deletions(-)
 create mode 100644 www/manager6/form/FilteredKVComboBox.js
 create mode 100644 www/manager6/form/QemuMachineSelector.js
 create mode 100644 www/manager6/qemu/Architecture.js
 create mode 100644 www/manager6/qemu/OSPanel.js

-- 
2.47.3





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

end of thread, other threads:[~2026-02-03 15:07 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-03 10:00 [PATCH manager v2 00/17] enable qemu vm architecture selection Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 01/17] api/pvestatd: broadcast and expose non-x86 host architecture Dominik Csapak
2026-02-03 13:56   ` Thomas Lamprecht
2026-02-03 15:07   ` Thomas Lamprecht
2026-02-03 10:00 ` [PATCH manager v2 02/17] ui: qemu: wizard: refactor ostype and cd selector into an OSPanel Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 03/17] ui: form: add filtered KVComboBox Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 04/17] ui: resource store: add architecture field Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 05/17] ui: qemu: add architecture specific defaults and helpers Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 06/17] ui: qemu: add architecture field in wizard and hardware view Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 07/17] ui: qemu: make scsi hw selector architecture aware Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 08/17] ui: qemu: make osdefaults " Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 09/17] ui: qemu: make os type selector " Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 10/17] ui: qemu: make machine panels/fields " Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 11/17] ui: qemu: make bios selector " Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 12/17] ui: qemu: make sortByPreviousUsage " Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 13/17] ui: qemu: wizard: use defaults to populate machine and bios Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 14/17] ui: qemu: wizard: make iso confid architecture specific Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 15/17] ui: qemu: make bus selector architecture aware Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 16/17] ui: qemu: make processor edit " Dominik Csapak
2026-02-03 10:00 ` [PATCH manager v2 17/17] ui: qemu: change ui default for cpu model Dominik Csapak
2026-02-03 10:56 ` [PATCH manager v2 00/17] enable qemu vm architecture selection Dominik Csapak
2026-02-03 13:34 ` Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal