-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question: Is there/Will there be support for UEFI SNP(Simple Network Protocol)? #30
Comments
No support for UEFI SNP at the moment but feel free to create a PR to add it. |
@Amir-Fikri if I understand your use-case correctly, you want to:
We needed something similar to this at work, but using the SNP turned out to not work very well (it was either very slow, lacked the correct driver support, or firmware vendors didn't consistently support it, like GCE). What we ended up doing was creating VMs containing only two things:
Then this VM boots, executes the EFI application, downloads the image, and reboots into that downloaded image. This ended up being much faster and more reliable than using the firmware directly. Part of the issue with implementing UEFI SNP is not the protocol itself, but all the networks drivers you would need to support (and make fast). Where if you use an EFI application you can use whatever existing drivers/logic you want, and it will work on any firmware implementation. We used a stripped down Linux kernel + Initramfs, but you wouldn't have to do it that way. We also write out the image to disk and do a reboot. However, you could just write it into memory and exec from that. Finally, one feature I would be interested in is a way to embed an EFI application in the firmware itself. EDK2 supports something like this. That way you could load a single blob onto your VMs and have them run an EFI app without even needing a disk for the VM. |
@josephlr Thank you for your respond.
Yes, this is precisely what I want to do. Objective
Reasons for wanting to try to use rust-hypervisor-firmware
Current situation
QuestionsI am thinking of using iPXE (https://github.com/ipxe/ipxe) as an EFI Network Bootloader. If possible, do you have any advice/tips regarding the following matters?
Appendix: Details of iPXE PANIC errorSummary of what I did
Build iPXE$ git clone https://github.com/ipxe/ipxe.git
$ make -C ipxe/src -j $(nproc) bin-x86_64-efi/virtio-net.efi Create disk image$ git clone https://github.com/takumin/go-diskfs-playground.git
$ make -C go-diskfs-playground RUN_KERNEL=../ipxe/src/bin-x86_64-efi/virtio-net.efi
$ ls -la /tmp/disk.img
-rw-rw-r-- 1 takumi takumi 9437184 2020-01-14 23:48:01 /tmp/disk.img Boot cloud-hypervisor
PANIC error occured
|
Hi,
Thank you all the developers for this amazing project.
I would like to use this project to install VM on a hardware during its early development stage to test applications. And I wish to be able to boot the VM via the network.
Questions:
Browsing through the code, it seems that it does not support the protocol, but I would just like to make sure.
The text was updated successfully, but these errors were encountered: