GNS3 / gns3-server

GNS3 server
GNU General Public License v3.0
811 stars 263 forks source link

what is the purpose of gns3server/disks/OVMF.fd ? #2251

Closed Raizo62 closed 1 year ago

Raizo62 commented 1 year ago

Hi

When the UEFI boot mode, QEmu needs the file "OVMF.fd".

But the command line has no path for OVMF.fd (this is -bios OVMF.fd ) So qemu uses the file /usr/share/ovmf/OVMF.fd (or the link /usr/share/qemu/OVMF.fd)

So, the file "gns3server/disks/OVMF.fd" is it necessary ? and do you need to copy this file in the disk files of user ?

grossmj commented 1 year ago

The files in gns3server/disks will be copied to the default disk location ~GNS3\images\QEMU when the controller is started.

This is handled by this code: https://github.com/GNS3/gns3-server/blob/2.2/gns3server/controller/__init__.py#L315L326

Raizo62 commented 1 year ago

Do you need to copy this file in ~GNS3\images\QEMU ? I believe that qemu (of GNS3) uses /usr/share/qemu/OVMF.fd

Or some appliances use this file without enable the option UEFI ?

grossmj commented 1 year ago

Do you need to copy this file in ~GNS3\images\QEMU ?

No this is automatically done for you by the server.

I believe that qemu (of GNS3) uses /usr/share/qemu/OVMF.fd

This is also an option but you have to install the ovmf package (at least on Ubuntu)

Or some appliances use this file without enable the option UEFI ?

Currently, appliances that need to OVMF file download it from https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-20160813.fd.zip and install it in ~GNS3\images\QEMU

The new UEFI option is mostly a convenience option for our users. You are free to use the one bundled in GNS3, the one installed from the ovmf package or the one that can be downloaded from our Source Forge account.

Maybe a change we can do is to first try to use /usr/share/qemu/OVMF.fd and otherwise use ~GNS3\images\QEMU\OVMF.fd if the former does not exist?

Raizo62 commented 1 year ago

Do you need to copy this file in ~GNS3\images\QEMU ?

No this is automatically done for you by the server.

By "you", I mean "the developers of the team" ;-)

The new UEFI option is mostly a convenience option for our users. You are free to use the one bundled in GNS3, the one installed from the ovmf package or the one that can be downloaded from our Source Forge account.

So, you know that if we enable the UEFI option in GNS3 without installed the Debian/Ubuntu package "ovmf" (the file /usr/share/qemu/OVMF.fd) , we have an error when we start the VM ? The file "~GNS3\images\QEMU\OVMF.fd" is useless to enable it.

cristian-ciobanu commented 1 year ago

Currently, appliances that need to OVMF file download it from https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/OVMF-20160813.fd.zip and install it in ~GNS3\images\QEMU

The OVMF version provided by GNS3 is very old (7 years) so some appliances might require newer version so I suggest to use the OVMF version provided by OS or update the existing OVMF version from 2016. Never binary versions are available here: https://www.kraxel.org/repos/jenkins/edk2/

grossmj commented 1 year ago

@cristian-ciobanu

Thanks, I have compiled the firmware myself using the instructions provided on https://wiki.ubuntu.com/UEFI/EDK2 because the repo you sent me is EOL (see https://www.kraxel.org/blog/2022/07/edk2-firmware-packaging/)

I will update appliances to use this newer version and update the code to use it too.

@Raizo62

So, you know that if we enable the UEFI option in GNS3 without installed the Debian/Ubuntu package "ovmf" (the file /usr/share/qemu/OVMF.fd) , we have an error when we start the VM ? The file "~GNS3\images\QEMU\OVMF.fd" is useless to enable it.

Not sure I follow, what error do you have? (Qemu should be using the "~GNS3\images\QEMU\OVMF.fd")

Raizo62 commented 1 year ago

Not sure I follow, what error do you have? (Qemu should be using the "~GNS3\images\QEMU\OVMF.fd")

I dont believe. I haved tried again (but without this pull request). On Debian, with a default config of GNS3, if i enable OVMF, and i remove the debian package ovmf, i have an error : "qemu: could not load PC BIOS 'OVMF.fd'" And, the command line is "-bios OVMF.fd" without path

grossmj commented 1 year ago

On Debian, with a default config of GNS3, if i enable OVMF, and i remove the debian package ovmf, i have an error : "qemu: could not load PC BIOS 'OVMF.fd'" And, the command line is "-bios OVMF.fd" without path

I have fixed that, now we bundle a recent version of OVMF_CODE.fd + OVMF_VARS.fd and use flash drives instead of -bios on the Qemu command line.