From e2657febf0d79849fe36e024e23f960f2f456d2b Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 29 Jul 2026 17:23:28 +0200 Subject: [PATCH 1/2] fix(qemu): fix addition of QEMU RNG device causes interface names to change --- gns3server/compute/qemu/qemu_vm.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gns3server/compute/qemu/qemu_vm.py b/gns3server/compute/qemu/qemu_vm.py index fa7757a62..e54454628 100644 --- a/gns3server/compute/qemu/qemu_vm.py +++ b/gns3server/compute/qemu/qemu_vm.py @@ -2480,6 +2480,8 @@ class QemuVM(BaseNode): elif sys.platform.startswith("win") or sys.platform.startswith("darwin"): command.extend(["-enable-hax"]) command.extend(["-boot", "order={}".format(self._boot_priority)]) + # network options must be first to have predictable NIC numbering, see https://github.com/GNS3/gns3-server/issues/2838 + command.extend((await self._network_options())) command.extend(self._bios_option()) command.extend(self._cdrom_option()) command.extend((await self._disk_options())) @@ -2497,7 +2499,6 @@ class QemuVM(BaseNode): elif self._console_type != "none": raise QemuError("Console type {} is unknown".format(self._console_type)) command.extend(self._monitor_options()) - command.extend((await self._network_options())) if self.on_close != "save_vm_state": await self._clear_save_vm_stated() else: From d9140d2f8c8dbbadbf0e32bdf1ffeeba75c0d369 Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 29 Jul 2026 17:47:03 +0200 Subject: [PATCH 2/2] fix(qemu): move the bios options after the network ones --- gns3server/compute/qemu/qemu_vm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gns3server/compute/qemu/qemu_vm.py b/gns3server/compute/qemu/qemu_vm.py index e54454628..3353048f8 100644 --- a/gns3server/compute/qemu/qemu_vm.py +++ b/gns3server/compute/qemu/qemu_vm.py @@ -2480,9 +2480,6 @@ class QemuVM(BaseNode): elif sys.platform.startswith("win") or sys.platform.startswith("darwin"): command.extend(["-enable-hax"]) command.extend(["-boot", "order={}".format(self._boot_priority)]) - # network options must be first to have predictable NIC numbering, see https://github.com/GNS3/gns3-server/issues/2838 - command.extend((await self._network_options())) - command.extend(self._bios_option()) command.extend(self._cdrom_option()) command.extend((await self._disk_options())) command.extend(self._linux_boot_options()) @@ -2499,6 +2496,9 @@ class QemuVM(BaseNode): elif self._console_type != "none": raise QemuError("Console type {} is unknown".format(self._console_type)) command.extend(self._monitor_options()) + command.extend((await self._network_options())) + # bios options must be last to have predictable NIC numbering, see https://github.com/GNS3/gns3-server/issues/2838 + command.extend(self._bios_option()) if self.on_close != "save_vm_state": await self._clear_save_vm_stated() else: