VBETOOL(1)

πŸ“¦ version 1.2.2, in arch rolling

πŸ‘‘ VBETOOL(1) β€” the vbetool era, honestly

okay bestie so picture this: it's the VBETOOL(1) manual page, filed under User Commands, and it's about a little tool that straight-up runs real-mode video BIOS code to mess with your hardware's whole vibe. yes. actual BIOS code. she's brave like that. 🫢

✨ NAME ✨

vbetool β€” run real-mode video BIOS code to alter hardware state πŸ’…

🌸 SYNOPSIS 🌸

vbetool [[vbestate save|restore]|[vbemode set|get]|[vgamode]|[dpms
on|off|standby|suspend|reduced]|[post [romfile]]|[vgastate
on|off]|[vbefp panelid|panelsize|getbrightness|setbrightness|invert]]

like, that's the whole menu. pick your fighter. πŸŽ€

πŸ’– DESCRIPTION πŸ’–

so vbetool uses lrmi in order to run code from the video BIOS. that's the whole bit. currently she's able to alter DPMS states, save/restore video card state, and attempt to initialize the video card from scratch β€” starting from absolutely nothing, no cap. it's giving "main character who shows up to the group project with a full plan." ✨

πŸ¦‹ OPTIONS πŸ¦‹

vbetool takes the following options:

  • vbestate β€” she'll use the VESA 0x4f0f extensions to save or restore hardware state. this gets sent to, or read from, stdin. and listen β€” this information is highly hardware specific, so do not attempt to restore state saved from a different machine. like, that's not a vibe, that's a disaster. 🚨 also this command will not work unless you are at a text console, because it interferes badly with X. (rude of it, honestly, but we move.)
  • dpms β€” she'll use the VESA 0x4f10 extensions to alter the power management state of your screen. on, off, standby, suspend and reduced are the acceptable further options, and they determine which state will be activated. pick one, she'll commit. πŸ’…
  • vbemode β€” she'll get or set the current VESA mode. get will return the current mode number on stdout β€” set will set the mode to the next argument. simple as that, iykyk. ⭐
  • vgamode β€” she'll set the legacy VGA mode to the following numeric argument. just a number. that's the whole thing. iconic.
  • post β€” she'll attempt to run BIOS code located at c000:0003. that's the code the system BIOS runs at boot in order to intialise the video hardware. ⚠️ but heads up: on some machines (especially laptops) not all of this code is present after system boot β€” as a result, executing this command may result in undefined behaviour. so like... be normal about it. also this command must be run from a text console, otherwise it will interfere with the operation of X. this command takes an optional argument which is the location of a file containing a ROM image. if provided, this image will be mapped to the c000 segment and used instead of the system's video BIOS. adorable. 🧚
  • vgastate β€” she'll enable or disable the current video card. on most hardware, disabling will cause the hardware to stop responding until it is reenabled. you probably don't want to do this if you're using a framebuffer. πŸ’€ seriously. don't.
  • vbefp β€” she'll execute a VESA flat panel interface call. and then it branches, bestie:
    • panelid will provide information about the panel
    • panelsize will provide the size of the panel
    • getbrightness will provide the current screen brightness as an integer
    • setbrightness accepts an integer as an argument and will set the screen brightness to that
    • invert will invert the colours of the screen 🌈 (unhinged. obsessed.)

πŸ™ˆ BUGS πŸ™ˆ

  • Switching dpms modes may interact badly with X on some systems. 😭
  • The vbestate command may behave in strange ways. she's quirky like that.
  • The post command may result in the execution of arbitrary code that happens to be lying around in the area where chunks of your video BIOS used to be. 🫠 genuinely one of the most sentences ever written.
  • The VESA specification does not require that "vbemode get" provides the correct mode if the current mode was set via some means other than the VESA BIOS extensions. so like, don't @ her.
  • The VESA flat panel interface ceased development at the proposal stage. panelid and panelsize will work on many machines, but the other arguments are unlikely to be implemented on available hardware. it's giving unfinished group project energy. πŸŽ€

πŸ’œ AUTHOR πŸ’œ

vbetool was written by Matthew Garrett <mjg59@srcf.ucam.org>, based on code from read-edid by John Fremlin <john@fremlin.de>, LRMI (http://sourceforge.net/projects/lrmi/) and XFree (http://www.xfree86.org). it is released under the terms of the GNU General Public License. πŸ‘‘ slay, licensing.


and that's a wrap, bestie β€” this was vbetool 0.2, dated 31 December 2004, and honestly the fact that we're still reading it is main character energy. πŸ¦‹πŸ’–βœ¨

πŸ“¦ where this page comes from