LinuxCommandLibrary

vbetool

Modify or save video BIOS state

SYNOPSIS

vbetool [OPTIONS] COMMAND [ARGS]

PARAMETERS

-q, --quiet
    Suppresses all standard output, useful for scripting where only the exit status matters.

-l, --lrmi
    Forces vbetool to use the lrmi (Linux Real Mode Interface) module for real mode access. This might be necessary on some systems if direct kernel support is not available or preferred.

-p, --ports RANGE
    Specifies a comma-separated list of I/O port ranges to use. This is an advanced option typically not needed.

vbeinfo
    Displays detailed information about the VESA BIOS Extensions capabilities of the graphics card, including supported modes, memory, and OEM strings.

dpms {on|off|standby|suspend}
    Controls the DPMS (Display Power Management Signaling) state of the display. Allows turning the monitor on/off or putting it into low-power states.

vbesave
    Saves the current VBE state to an internal buffer. This can be used in conjunction with vberestore to preserve and later restore display settings.

vberestore
    Restores a previously saved VBE state. Useful for returning to a known display configuration after temporary changes.

vbesetmode MODE_NUMBER
    Sets the display to the specified VESA mode number. Mode numbers can be found using vbeinfo or vbeprobe. For example, vbesetmode 0x118 might set 1024x768x16.

vbegetmode
    Retrieves and displays the VESA mode number that the display is currently set to.

vbeprobe
    Probes and lists available VESA video modes that the graphics card supports, similar to vbeinfo but focused on modes.

DESCRIPTION

vbetool is a low-level command-line utility designed to interact with the VESA BIOS Extensions (VBE) of a computer's graphics card. VBE provides a standardized interface for software to control display modes, resolutions, and other graphics card features before a full-fledged graphics driver takes over. Typically, vbetool is used during the early boot process, often from an initramfs or similar environment, to set up a specific console resolution for a framebuffer device like uvesafb.

It operates by executing real-mode VBE calls, which requires access to the system's BIOS and is generally performed with root privileges. This direct hardware manipulation allows for fine-grained control over the display, such as enabling specific video modes, saving and restoring the VBE state, or querying information about the available VBE modes. While modern Linux systems increasingly rely on Kernel Mode Setting (KMS) for display management, vbetool remains valuable for older hardware, specific framebuffer configurations, or troubleshooting scenarios where early graphical output is critical.

CAVEATS

vbetool requires root privileges to operate, as it performs direct hardware access. It relies on kernel support for real-mode execution (e.g., via the lrmi module) and may not function correctly on all modern systems, particularly those using UEFI without a Compatibility Support Module (CSM) or with proprietary graphics drivers. Misuse can lead to display issues or system instability.

USAGE IN BOOT PROCESS

vbetool is frequently used within the initramfs during the Linux boot sequence. Before the root filesystem is mounted and full graphics drivers are loaded, vbetool can be invoked to set a desired console resolution, providing a graphical boot splash or a higher-resolution text console. This is especially relevant for configurations relying on uvesafb.

HISTORY

vbetool emerged in the early days of Linux to provide users with direct control over VESA BIOS Extensions, a standard crucial for setting up console resolutions before advanced graphics drivers were fully loaded or universally available. Its development often paralleled the needs of framebuffer device drivers like vesafb and later uvesafb, which enabled high-resolution graphics on the Linux console. While the advent of Kernel Mode Setting (KMS) has reduced its prominence for general desktop use, vbetool continues to be maintained and used for specific boot-time display configurations, embedded systems, and troubleshooting scenarios.

SEE ALSO

fbset(8), modprobe(8), uvesafb(4), xrandr(1), console-setup(8)

Copied to clipboard