Documentation‎ > ‎


# how to use uvesafb - by Chih-Wei Huang (cwhuang) 2009/07/23


The uvesafb denotes the userspace VESA frame buffer driver, a generic frame buffer driver for Linux systems. It offers more features than the original vesafb, such as adjustable resolution and adjustable refresh rates with VBE 3.0-compliant graphic cards.

Android-x86 has integrated the function of uvesafb to support more wide ranges of hardware. Since it can be compiled as a module and loaded on demand, it serves as the last resort if no native frame buffer driver is found.

On some platforms, uvesafb is possible to run the native resolution. For example I have tested,

  • ASUS Eee Top 1602 (1366x768)
  • Acer Aspire One (1024x600)
But on other platforms it seems to not work. I am not sure why. Fortunately, this can be overcome by grub2 + i915resolution patch.


Basically speaking, you need not to to do anything to use it. Android-x86 will automatically load uvesafb with resolution 800x600 on boot, if no other frame buffer driver is found.

However, sometimes you may want to force to load it. For example, the native frame buffer is buggy for your hardware, or if you'd like to change the default resolution. You can specify the following boot options:

  • UVESA_MODE=<resolution>
Force to use uvesafb, and set the resolution to the specified one.
  • UVESA_OPTION=<options>
Specify other options passed to uvesafb. The default options are mtrr=3 scroll=ywrap.

Note on virtual machine

Since virtual machines usually don't have native frame buffer driver, the vesa frame buffer driver has to be used, either the original vesafb, or the uvesafb.

On the boot screen, if the first item is selected, uvesafb will be loaded. Otherwise, the vesafb will be used. However, the uvesafb doesn't work well on Virtual Box 2.2.4/3.0.2. But it runs fine on Qemu.

Test result of VMware is welcome.