Xvfb is a virtual frame buffer X11 server that can be installed on linux servers without a monitor and graphics card. It can be customized for multiple displays and screens as well. In this tutorial i will show how to install, setup and configure a display. I am installing the Xvfb (X11 server) on a Centos/ Redhat linux system.
Example:
If you want to capture a screen shot but you have only a linux server running and no graphics card or monitor. To get the output you have to dump the virtual display to a file and then convert to suitable jpg or png graphics with ImageMagick
To Install Xvfb
yum install Xvfb
To intialize the display
Xvfb :1 -screen 0 800x600x24&
This sets the display number 1 and screen 0 to 800×600 resolution with the color depth of 24.
If you get error like
Fatal server error:
Couldn't add screen 0
then most probably you have set the color depth to 32bit which never worked for me. You have to set to 16 bit or 24 bit color for the virtual buffer.
To export the display to X11
export DISPLAY=localhost:1.0
If you get errors like while running Xvfb then you install necessary fonts
Could not init font path element unix/:7100, removing from list!
FreeFontPath: FPE "built-ins" refcount is 2, should be 1; fixing.
yum install xorg-x11-fonts*
It should in most cases fix the problem!
To Run a program in the virtual display
DISPLAY=localhost:1.0 firefox