fbset(8)

๐Ÿ“ฆ version 2.1, in arch rolling

๐Ÿ’… fbset(8) โ€” Linux frame buffer utils โœจ

okay bestie, so the manual page header says fbset(8) from the Linux frame buffer utils and honestly? iconic. let's get into it ๐Ÿซถ


๐ŸŒธ NAME ๐ŸŒธ

fbset โ€” show and modify frame buffer device settings. literally exactly what it sounds like, no cap ๐Ÿ’–


โœจ SYNOPSIS โœจ

fbset [options] [mode]

that's it. that's the whole vibe check. one command, all the options, one optional mode ๐ŸŽ€


๐Ÿ’œ DESCRIPTION ๐Ÿ’œ

๐Ÿ’€ heads up bestie: This documentation is out of date!! โ€” the original manpage literally says that, so i'm passing it straight to you, no editing. iykyk.

fbset is a system utility to show or change the settings of the frame buffer device. the frame buffer device provides a simple and unique interface to access different kinds of graphic displays. it's giving "one interface to rule them all" energy ๐Ÿ‘‘

frame buffer devices are accessed via special device nodes located in the /dev directory. the naming scheme for these nodes is always fb<n>, where n is the number of the used frame buffer device. so like fb0, fb1, whatever โ€” the number is the device's whole personality ๐ŸŒˆ

fbset uses an own video mode database located in /etc/fb.modes. an unlimited number of video modes can be defined in this database. for further information see fb.modes(5). so many modes. infinite modes. the database ate, fr fr ๐Ÿ“šโœจ


๐ŸŽ€ OPTIONS ๐ŸŽ€

if no option is given, fbset will display the current frame buffer settings. default behavior slay ๐Ÿ’…

๐ŸŒŸ General options:

  • --help, -h โ€” display an usage information. the classic "what do i even do" button ๐Ÿซถ
  • --now, -n โ€” change the video mode immediately. if no frame buffer device is given via -fb, then this option is activated by default. no waiting, no buffering, immediate main character behavior โšก
  • --show, -s โ€” display the video mode settings. this is default if no further option or only a frame buffer device via -fb is given. the lowkey default ๐Ÿ‘€
  • --info, -i โ€” display all available frame buffer information. the full tea, all of it โ˜•
  • --verbose, -v โ€” display information what fbset is currently doing. it narrates its own life ๐Ÿ—ฃ๏ธ
  • --version, -V โ€” display the version information about fbset. who are you, when were you born, all that ๐ŸŽ‚
  • --xfree86, -x โ€” display the timing information as it's needed by XFree86. retro bestie behavior, we respect it ๐Ÿ’พ

๐Ÿฆ‹ Frame buffer device nodes:

  • -fb <device> โ€” device gives the frame buffer device node. if no device via -fb is given, /dev/fb0 is used. the default default default ๐Ÿ“

๐Ÿ’– Video mode database:

  • -db <file> โ€” set an alternative video mode database file (default is /etc/fb.modes), see also fb.modes(5). customize your mode menu, fancy ๐Ÿ’

๐ŸŒธ Display geometry:

  • -xres <value> โ€” set visible horizontal resolution (in pixels)
  • -yres <value> โ€” set visible vertical resolution (in pixels)
  • -vxres <value> โ€” set virtual horizontal resolution (in pixels)
  • -vyres <value> โ€” set virtual vertical resolution (in pixels)
  • -depth <value> โ€” set display depth (in bits per pixel)
  • --geometry, -g ... โ€” set all geometry parameters at once in the order <xres> <yres> <vxres> <vyres> <depth>, e.g. -g 640 400 640 400 4. one line, five numbers, absolutely devouring ๐Ÿฝ๏ธ
  • -match โ€” make the physical resolution match the virtual resolution. they're matching. they're twinning. they're in sync ๐ŸŽ€

โญ Display timings:

  • -pixclock <value> โ€” set the length of one pixel (in picoseconds). note that the frame buffer device may only support some pixel lengths โฑ๏ธ
  • -left <value> โ€” set left margin (in pixels)
  • -right <value> โ€” set right margin (in pixels)
  • -upper <value> โ€” set upper margin (in pixel lines)
  • -lower <value> โ€” set lower margin (in pixel lines)
  • -hslen <value> โ€” set horizontal sync length (in pixels)
  • -vslen <value> โ€” set vertical sync length (in pixel lines)
  • --timings, -t ... โ€” set all timing parameters at once in the order <pixclock> <left> <right> <upper> <lower> <hslen> <vslen>, e.g. -g 35242 64 96 35 12 112 2. yes bestie, the manpage literally shows -g in that example โ€” i'm copying it exactly as written, not my typo, not fixing it, periodt ๐Ÿ’€

๐Ÿ”ฅ Display flags:

  • -hsync {low|high} โ€” set the horizontal sync polarity
  • -vsync {low|high} โ€” set the vertical sync polarity
  • -csync {low|high} โ€” set the composite sync polarity
  • -extsync {false|true} โ€” enable or disable external resync. if enabled the sync timings are not generated by the frame buffer device and must be provided externally instead. note that this option may not be supported by every frame buffer device ๐Ÿ™ˆ
  • -bcast {false|true} โ€” enable or disable broadcast modes. if enabled the frame buffer generates the exact timings for several broadcast modes (e.g. PAL or NTSC). note that this option may not be supported by every frame buffer device ๐Ÿ“บ
  • -laced {false|true} โ€” enable or disable interlace. if enabled the display will be split in two frames, each frame contains only even and odd lines respectively. these two frames will be displayed alternating, this way twice the lines can be displayed and the vertical frequency for the monitor stays the same, but the visible vertical frequency gets halved ๐Ÿ˜ญ math is math
  • -double {false|true} โ€” enable or disable doublescan. if enabled every line will be displayed twice and this way the horizontal frequency can easily be doubled, so that the same resolution can be displayed on different monitors, even if the horizontal frequency specification differs. note that this option may not be supported by every frame buffer device โœŒ๏ธ

๐ŸŒˆ Display positioning:

  • -move {left|right|up|down} โ€” move the visible part of the display in the specified direction. scoot scoot ๐Ÿ›ผ
  • -step <value> โ€” set step size for display positioning (in pixels or pixel lines), if -step is not given display will be moved 8 pixels horizontally or 2 pixel lines vertically. that's the default, memorize it bestie ๐Ÿ“

๐Ÿ“ EXAMPLE ๐Ÿ“

to set the used video mode for X insert the following in rc.local:

fbset -fb /dev/fb0 vga

and make the used frame buffer device known to X:

export FRAMEBUFFER=/dev/fb0

two lines. that's the whole glow-up. go off ๐Ÿ’…โœจ


๐Ÿงš FILES ๐Ÿงš

  • /dev/fb*
  • /etc/fb.modes

๐Ÿ‘‘ SEE ALSO ๐Ÿ‘‘

fb.modes(5), fbdev(4) โ€” go read those too, they're the supporting cast and they ate ๐Ÿซถ


๐Ÿ’œ AUTHORS ๐Ÿ’œ

  • Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>
  • Roman Zippel <zippel@fh-brandenburg.de> โ€” man files

okay that's the whole page, and for the cute sign-off: this one's credited as local, dated July 1998, filed under fbset(8) โ€” yes bestie, 1998, elder millennial of a manpage and still serving ๐Ÿ’พ๐ŸŽ€๐Ÿ’–

๐Ÿ“ฆ where this page comes from