- Frame Buffer Device -






1. Introduction

    This documentation was done with the intention to give a quick help to all Linux users which have a graphic card not supported or still in development by Xfree86 Project.
    I'll just write what I did to get my graphic card(S3Trio3D2x AGP) to work on X.
 

2. What's a Frame Buffer Device ?

    It's a device which create an hardware graphic abstraction. It represents the "frame buffer" from compatibles VESA boards so that software doesn't need to use any low-level instructions (hardware registers).
    Such devices are on /dev/fb* .
 

3. It's my video card supported by XFree86 Project ?

    You should check if your video card is supported by the XFree86 Project. Even if you get Frame Buffering to work it's recommended that you search always for a specific (if available) X server for your graphic card - Frame Buffering don't get acceleration capabilities.

    XFree86 Video Card and X server list
 

4. Kernel

    Frame Buffer Device it's supported on above kernel 2.1.105 and 2.2.x series.
    It's supported by XFree86 (>=3.2.x).
 

4.1. Which options are needed ?

    As I'd compiled with kernel 2.2.11, at the moment, Frame Buffer Device is still on development so that you should do:

        Code Maturity level options -->
            [Y]  Prompt for development and/or incomplete code/drivers

        Console Drivers -->
            [Y]  VGA text console
            [Y]  Video mode selection support
            [Y]  Support for frame buffer devices (EXPERIMENTAL)
            [Y]  Vesa VGA graphics console (NEW)
 

5. Devices

    You should create, at least, one device to get it to work.

        $ mknod /dev/fb0 c 29 0
        $ mknod /dev/fb1 c 29 32
 

6. LILO configuration

    Insert the following line to your /etc/lilo.conf :

       vga = ask

    All supported modes are:
 

 
640x480
800x600
1024x768
1280x1024
256
0x301
0x303
0x305
0x307
32k
0x310
0x313
0x316
0x319
64k
0x311
0x314
0x317
0x31A
16M
0x312
0x315
0x318
0x31B

This table was copied
from (Documentation/fb/vesafb.txt) kernel sources(2.2.11)

    Read also some documentation about Frame Buffer (Documentation/fb/framebuffer.txt)

    Example:

        If you want your text console with 800x600x256 you should have on your /etc/lilo.conf :

           vga = 0x303
 

7. What about a X Server ?

    Previous section only treats text console: give you more pleasure(pinguim logo) to work on text console and fast switching between text and X.

    You should get an FBDev X server. At the moment, it's not available for any distribution so you will need to download the source code from ftp.xfree86.org .

    You can download a binary FBDev X server from this site (libc6).

    Don't forget to make the correct symbolic link to your /usr/X11R6/bin/X (also on /etc/X11/X for RedHat users).

    Edit your X11 configuration file (XF86Config).
    On "Screen" section change it to something like:

        Section "Screen"
            Driver          "FBDev"
            Device          "Primary Card"
            Monitor         "Primary Monitor"
            SubSection      "Display"
                     Modes   "default"
            EndSubSection
        EndSection

    At this point you should be able to get X to work. X will use the actual text console resolution.
    The only way I know to change resolution it's changing LILO configuration.
    It seems there's an FBSet file (contains modelines needed !?) which can change resolution without changing LILO. Meanwhile I still didn't found any non-corrupted file on web.
 

8. That's all

    I hope this document could help you on some way.
 



Nuno Carvalho, 20 August 1999