Bienvenido! - Willkommen! - Welcome!

Sunday, December 4, 2011

VESA BIOS Extensions

VESA BIOS Extensions (VBE) is a VESA
standard, currently at version 3, that defines the interface that can
be used by software to access compliant video boards at high resolutions
and bit depths. This is opposed to the "traditional" int 10hBIOS calls, which are limited to resolutions of 640×480 pixels with 16 color (4-bit) depth or less.

VBE is made available through the video adapter's BIOS, which installs interrupt
vectors pointing at itself during system startup. Unfortunately, the
older versions of VBE (those bundled with older video cards) provided
only a real mode interface, which could not be used without a significant performance penalty from within protected mode operating systems, such as Windows 95 or Linux. This meant that the VBE standard was almost never used for writing video-drivers, and each video board vendor had to invent a proprietary protocol for communicating with their own boards. Despite this, many existing drivers for these video cards still thunk out to the real mode interrupt to initialize screen modes and gain direct access to a card's linear frame buffer,
tasks which would otherwise require many hundreds of port writes which
change from card to card. Most newer cards implement the more capable
VBE 3.0 standard

The Linux kernel allows user configuration of VESA modes at boot time
using the 'vga' kernel parameter. This parameter does not directly
accept VESA video mode numbers; the Linux video mode number is simply
the VESA number plus 512.

The value can be passed to the kernel in the form 'vga=XXX', where
XXX is the decimal value, or in form 'vga=0xHHH', where HHH is the
hexadecimal value.

As already stated, the modes above 1,280×1,024 are not covered by the standard, and every graphics card manufacturer uses its own codes. This means the modes, in red below, may not apply to your graphics card !

320
×200

640
×400

640
×480

800
×500

800
×600

896
×672

1,024
×640

1,024
×768

1,152
×720

1,280
×1,024

1,400
×1,050

1,440
×900

1,600
×1,200

1,900
×1,200

16 colors

770

772

774

256 colors

768

769

879

771

815

874

773

869

775

835

864

796

893

15-bit (5:5:5)

781

801

784

880

787

816

875

790

870

793

865

797

16-bit (5:6:5)

782

802

785

881

788

817

876

791

871

794

837

866

798

24-bit (8:8:8)

783

803

786

882

789

818

877

792

872

795

838

867

799

32-bit (8:8:8)1

804

809

883

814

819

878

824

873

829

868

834

1: 32-bit
is really (8:8:8:8), but the final 8-bit number is an "empty" alpha
channel. It is otherwise equal to 24-bit color. Many GPUs use 32-bit
color mode instead of 24-bit mode merely for faster video memory access
through 32-bit memory alignmen

4.1Alternative Methodhwinfo is the hardware detection tool used in SuSE Linux and may be
available in other GNU/Linux distributions. To use hwinfo to get the
actual mode number that you need to pass as a parameter to the kernel:

hwinfo --framebuffer

The command should be run as root. Pick the number corresponding to
the desired resolution. The modes reported by hwinfo are in hexadecimal.
Use them with the '0x' prefix or convert them to decimal.