FBDEV(4)

πŸ’… FBDEV(4) β€” the framebuffer driver, bestie edition πŸŽ€

okay so real talk, this is a page from the Kernel Interfaces Manual (yes, that's the manual name, we're being fancy today ✨) and it's all about fbdev, the Xorg video driver for framebuffer devices. grab a strawberry drink πŸ“ and let's get into it.


✨ NAME ✨

fbdev β€” the video driver for framebuffer devices. that's it, that's the whole vibe. πŸ¦‹


🌸 SYNOPSIS 🌸

here's how you summon it in your config, copy it exactly pls, no freestyling:

Section "Device"
  Identifier "devname"
  Driver "fbdev"
  BusID  "pci:bus:dev:func"
  ...
EndSection

like, that's the whole appearance. so clean. so iconic. πŸ‘‘


πŸ’– DESCRIPTION πŸ’–

fbdev is an Xorg driver for framebuffer devices. and ngl bestie, this one is a non-accelerated driver β€” no zoomies, no turbo mode, just vibes. 😌

here's the tea on what framebuffer depths it supports: 8, 15, 16, 24. that's the list, memorize it.

  • at depth 8, all visual types are supported πŸ’…
  • for the other depths, you get TrueColor visual. that's the one. 🎨

and yes, multi-head configurations are supported β€” multiple monitors, main character energy, the way that works is genuinely stunning. 🫢


πŸ”₯ SUPPORTED HARDWARE πŸ”₯

the fbdev driver supports all hardware where a framebuffer driver is available. literally all of it, no cap.

how does it talk to your kernel device driver? it uses the os-specific submodule fbdevhw(4) β€” that's the middleman, the mutual friend, the connector. 🀝

and rn? a fbdevhw module is available for linux. that's the one that's available, periodt. 🐧


πŸŽ€ CONFIGURATION DETAILS πŸŽ€

okay so for the general configuration lore, please refer to xorg.conf(5) β€” this section is only covering the details that are specific to this driver. we're staying in our lane. πŸ’β€β™€οΈ

big news: for this driver it is not required to specify modes in the screen section of the config file. not required!! the fbdev driver can pick up the currently used video mode from the framebuffer driver and will use it if there are no video modes configured. it just knows. iykyk. ⭐

for PCI boards you might have to add a BusID line to the Device section. see the sample line up in the synopsis, it's right there, go look. πŸ‘€

the following driver Options are supported:

  • Option "fbdev" "string" β€” the framebuffer device to use. Default: /dev/fb0. that's the default, don't come for me. πŸ“Ÿ
  • Option "ShadowFB" "boolean" β€” enable or disable use of the shadow framebuffer layer. heads up: it's mandatory for 24bpp framebuffers on newer servers. Default: on. πŸ”¦
  • Option "Rotate" "string" β€” enable rotation of the display. the supported values are "CW" (clockwise, 90 degrees), "UD" (upside down, 180 degrees) and "CCW" (counter clockwise, 270 degrees). it implies use of the shadow framebuffer layer, and it's disabled for 24bpp framebuffers. Default: off. πŸ”„
⚠️ tiny warning bestie: Rotate is a no-go on 24bpp framebuffers, and ShadowFB is not optional there β€” it's mandatory on newer servers at 24bpp. don't fight the rules, they're doing their best. 😭

πŸ¦‹ SEE ALSO πŸ¦‹

Xorg(1), xorg.conf(5), Xserver(1), X(7), fbdevhw(4)

go read them, they're all slay in their own way. πŸ“šπŸ’œ


πŸ‘‘ AUTHORS πŸ‘‘

authors include: Gerd Knorr, Michel DΓ€nzer, Geert Uytterhoeven β€” legends, every single one, we stan. 🫢✨


🧚 and that's the page!! this little beauty is from X Version 11, specifically xf86-video-fbdev 0.5.1, and it's filed under FBDEV(4) β€” so next time someone asks, you literally know. mwah, bye bestie πŸ’‹πŸŒˆ
πŸ“¦ where this page comes from