[pve-devel] [PATCH manager 1/2] GUI: efi disk: use correct version with aarch64

Matthias Heiserer m.heiserer at proxmox.com
Tue Jan 17 13:17:22 CET 2023


Sets the EFI version to 2m when arch=aarch64.

When the VM has arch=aarch64, creating an EFI disk failed with
"Can't use an undefined value as an ARRAY reference at /usr/share/perl5/PVE/QemuServer.pm line 3382. (500)"

That's because we only have EFI 2m available for aarch64.

Reported in the forum: https://forum.proxmox.com/threads/121160/

Signed-off-by: Matthias Heiserer <m.heiserer at proxmox.com>
---
 www/manager6/qemu/HDEfi.js | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/www/manager6/qemu/HDEfi.js b/www/manager6/qemu/HDEfi.js
index a8ca8f56..ef3092a6 100644
--- a/www/manager6/qemu/HDEfi.js
+++ b/www/manager6/qemu/HDEfi.js
@@ -26,7 +26,7 @@ Ext.define('PVE.qemu.EFIDiskInputPanel', {
 
 	// always default to newer 4m type with secure boot support, if we're
 	// adding a new EFI disk there can't be any old state anyway
-	me.drive.efitype = '4m';
+	me.drive.efitype = me.config.useOldVersion ? '2m' : '4m';
 	me.drive['pre-enrolled-keys'] = values.preEnrolledKeys;
 	delete values.preEnrolledKeys;
 
@@ -103,15 +103,24 @@ Ext.define('PVE.qemu.EFIDiskEdit', {
 	    throw "no node name specified";
 	}
 
-	me.items = [{
+	const efiInputPanel = Ext.create({
 	    xtype: 'pveEFIDiskInputPanel',
 	    onlineHelp: 'qm_bios_and_uefi',
 	    confid: me.confid,
 	    nodename: nodename,
 	    usesEFI: me.usesEFI,
 	    isCreate: true,
-	}];
+	    useOldVersion: false,
+	});
+	me.items = [efiInputPanel];
 
 	me.callParent();
+
+	me.load({
+	    success: function(response) {
+		const data = response.result.data;
+		efiInputPanel.config.useOldVersion = data.arch === 'aarch64';
+	    },
+	});
     },
 });
-- 
2.30.2






More information about the pve-devel mailing list