Page 1 of 1

Limine returns only empty framebuffer

Posted: Fri Dec 19, 2025 2:40 pm
by h3tR
Hi everyone,
I recently decided to partially start anew with my rust kernel project. I wanted to add bootloader support instead of relying on the bootimage tool. For this I went with Limine and the Limine Boot Protocol since it has the ability to load a 64-bit kernel ELF directly. To test this project I use QEMU with OVMF.

Right now I have the serial port as an output for debugging purposes, but I want to add some basic text plotting since, as far as I know, UEFI does not support VGA text mode. Before that is possible however, I need to be able to manipulate the framebuffers, but unfortunately I haven't been able to get this to work.
As of now I do get a response to my Limine framebuffer request, however when I read it (there is only one framebuffer), the only populated value is the framebuffer pointer, the rest is all zeroes.

You may find the implementation here https://github.com/h3tR/limine-protocol ... ree/master, this is a tiny library I've written.
The actual requests that are being linked into the kernel binary are pretty much exactly what's in the example code.

I can't really figure out what's wrong. I can't find anyone else who had this problem and asking AI isn't much help either.
I'd almost think this is an issue with Limine itself but I'd like to ask here first before I open an issue for my terrible code :P.
That would be quite embarrasing.

Anyways, thanks a lot for your help :mrgreen:

Re: Limine returns only empty framebuffer

Posted: Fri Dec 19, 2025 3:16 pm
by Octocontrabass
This line looks wrong. Shouldn't it be something like "*const *const Framebuffer"?

Re: Limine returns only empty framebuffer

Posted: Fri Dec 19, 2025 3:42 pm
by h3tR
You're right. I completely read over the fact that all of the arrays returned in all of the responses are filled with pointers rather than the structs themselves. Thanks!