How to : Framebuffer: Userspace VESA VGA graphics support
Uvesafb is an improved framebuffer driver for Linux systems with some enhancements compared to vesa. Uvesafb can allow you to get a full-resolution console, even if you have installed a graphics driver that does not support full-resolution consoles. Examples of drivers like these: ati-drivers and NVidia-drivers.
Before we emerge the required packages for uvesafb functionality, we have to configure the kernel properly.
|Important:||This section is in need of updates.|
Device Drivers -> <*> Connector - unified userspace <-> kernelspace linker ---> Graphics support -> [*] Support for frame buffer devices ---> [*] Enable firmware EDID Console display driver support -> [*] Video mode selection support [*] Video mode handling helpers Frame buffer hardware drivers [*] Userspace VESA VGA graphics support
|Note:||Build the kernel (make), do not install the kernel and modules ( make install modules_install). You can choose uvesafb as a module, unlike vesa.|
Next, we emerge dev-libs/klibc. Klibc has to be compiled against a kernel that includes uvesafb support. This only has to be done once:
# emerge klibc
sys-apps/v86d is the userspace helper that runs x86 code in emulated environment. Uvesafb will not work without v86d. Now, we emerge
# emerge v86d
Back to kernel configuration
Reconfigure the kernel to include /usr/share/v86d/initramfs as an initramfs source file:
General Setup-> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support (/usr/share/v86d/initramfs) Initramfs source file(s)
Rebuild the kernel: make and install it, install the modules
If you compiled uvesafb into the kernel (not as a module), you can configure its behavior by editing the 'params += ' line in /etc/boot.conf. Below, some of the more common switches used with uvesafb are explained.
- video=uvesafb:<screen y-res>x<screen x-res>-<color depth>: Tells the kernel that you want to use the uvesafb driver for console output. Also specifies that you will be using uvesafb at a set x-screen resolution, y screen-resolution, and color depth. Set the first part to the size of your screen (in pixels). For example, if I had a 1920x1080 screen and wanted a color depth of 32, I would add the following: video=uvesafb:1920x1080-32
- mtrr:x: X represents the number 0 or 3. This option allows you to set up the memory type range registers for uvesafb. Setting x=0 disables mtrr and setting x=3 enables mtrr. x=3 is the default setting for this switch. mtrr:3 is recommended.
- ywrap: Add support for display panning. Recommended.
|Tip:||For more information regarding these switches, check out http://www.mjmwired.net/kernel/Documentation/fb/uvesafb.txt|
Now that you have a basic understanding of these different switches, configure your /etc/boot.conf:
|Note:||Realize that the configuration in the above file will not work on every computer. You must change the resolution (and possibly other switches) to best suite your needs.|
After you have finished editing your /etc/boot.conf, run the following:
finally, reboot your computer so that you can test out uvesafb: