GENFB(4)

πŸ“¦ version 11.0, in nixpkgs unstable

✨ GENFB(4) β€” the manual page for the generic framebuffer console driver, bestie ✨

okay so like, this is genfb from the Kernel Interfaces Manual, and I'm literally obsessed with how much it does with so little. let's get into it πŸ’…


🌸 NAME 🌸

genfb β€” generic framebuffer console driver


✨ SYNOPSIS ✨

genfb* at pci?
genfb* at sbus?
genfb* at intvid? (mac68k)
genfb* at macvid? (mac68k)
wsdisplay* at genfb?

πŸ’– DESCRIPTION πŸ’–

okay so the genfb driver is literally your go-to for generic framebuffers that don't have their own native driver yet β€” it's giving support for the underdogs, fr fr. all it needs are some parameters to describe the framebuffer and an address, and it's good to go. iconic behavior, honestly. 🫢


πŸŽ€ PCI πŸŽ€

when attaching to a pci(4) bus, the driver is configured via device properties, and here's the whole lineup:

  • width (uint32) β€” width in pixels. like, how wide is your screen, bestie? πŸ“
  • height (uint32) β€” height in pixels. vertical vibes only. πŸ“
  • stride (uint32) β€” line size in bytes. the way that stride just keeps everything lined up correctly 😭
  • depth (uint32) β€” bits per pixel. depth check passed, slay. πŸ’…
  • is_console (bool) β€” if true, genfb will try to become the system console. main character energy tbh πŸ‘‘
  • address (uint32) β€” bus address of the framebuffer. literally the address, no cap. 🏠

πŸ¦‹ SBus πŸ¦‹

when attaching to sbus(4), all those parameters are retrieved from the firmware. not me, not you β€” the firmware handles it. lowkey convenient, highkey iconic. ✨


🌸 mac68k 🌸

all those parameters are configured with Mac OS, and retrieved from the boot loader. the way that mac68k just does its own thing and we respect it πŸ’–


πŸ‘‘ SEE ALSO πŸ‘‘

mac68k/intro(4), pci(4), sbus(4), wscons(4), wsdisplay(4)


πŸ’€ BUGS πŸ’€

okay so there are some things you need to know, and I'm gonna be real with you:

there is no way to change the color map even when the firmware supports it. like, it's giving "we don't do that here" 😭
the pci(4) bus frontend has only been tested on macppc, i386, and amd64 and requires machine dependent code to pass the properties mentioned above. so far only macppc, i386, and amd64 provides them. periodt. πŸ’…

and that's the whole thing, bestie! this page is from Debian, dated July 26, 2019, and it's GENFB(4) β€” go forth and framebuffer responsibly πŸ§šπŸ’œ

πŸ“¦ where this page comes from