Hi,
chauhanjpr wrote:
I was just thinking out loud. BTW, I got the framebuffer to work in non-UEFI mode but on the machines with UEFI its not working. Possibly because in UEFI mode multiboot's vbeinfo is not populated. I am yet to try the frame buffer specific section in multiboot header. Anything else that would be needed to get FB to work under UEFI?
I'm not sure how much of what GRUB supports under UEFI; but the reason they created multi-boot 2 is that the original multi-boot 1 was only designed for BIOS systems and wasn't very portable. Also note that GRUB 2 tends to rely on "optional" modules, so maybe the problem is that GRUB 2 is missing some sort of video related module.
chauhanjpr wrote:
anatolik wrote:
Hello Himanshu, I am literally in the same position. Currently I am porting my homebrewed OS from multiboot1 to UEFI. The are some progress but the work is not fully completed yet.
I am also trying to get Multiboot 1 to work with UEFI.
I'm fairly sure (based on
information elsewhere) that anatolik is porting code to "raw UEFI" so that it won't use multi boot and won't need a loader like GRUB.
You seem to want to continue using multi-boot and GRUB; which is quite different to what anatolik is doing.
anatolik wrote:
I am using Grub to boot the hypervisor. Grub, as I have read on the internet, exits the boot services before it launches the OS. So I need to just get the framebuffer working in UEFI mode. I don't know if the framebuffer section of multiboot header will give the enough information because VBE section info doesn't work.
Erm, this is getting a little confusing.
Just to be sure, for what you're planning:
- GRUB starts running on the real/host machine
- GRUB (on the host machine) exits the host machine's boot services
- GRUB (on the host machine) starts a hypervisor
- Hypervisor creates a whole new (virtual) machine with it's own completely unrelated UEFI and it's own boot services
- Hypervisor starts a completely different copy of GRUB inside the virtual machine
- GRUB (in the virtual machine) exits the virtual machine's boot services
- GRUB (in the virtual machine) passes control to your code using "multi-boot 1"
The alternative is something like:
- GRUB starts running on the real/host machine
- GRUB (on the host machine) exits the host machine's boot services
- GRUB (on the host machine) starts a hypervisor
- Hypervisor creates a whole new (virtual) machine with it's own completely unrelated UEFI and it's own boot services
- Hypervisor starts boots your code (without using GRUB inside the virtual machine, and without multi-boot being used by your code at all) and you have to exit boot services yourself
Cheers,
Brendan