Provided by: fbset_2.1-18_i386 bug

NAME

       fb.modes - frame buffer modes file

DESCRIPTION

       /etc/fb.modes  contains an unlimited number of video mode descriptions.
       The general format of a video mode is:

       mode
              geometry <xres> <yres> <vxres> <vyres> <depth>
              timings  <pixclock>  <left>  <right>  <upper>  <lower>   <hslen>
              <vslen>
              options <value>
              rgba <red,green,blue,alpha>
       endmode

OPTIONS

       geometry options:

              xres   visible horizontal resolution (in pixels)

              yres   visible vertical resolution (in pixels)

              vxres  virtual horizontal resolution (in pixels)

              vyres  virtual vertical resolution (in pixels)

              depth  display depth (in bits per pixel)

       timing options:

              pixclock
                     length of one pixel (in picoseconds)

              left   left margin (in pixels)

              right  right margin (in pixels)

              upper  upper margin (in pixel lines)

              lower  lower margin (in pixel lines)

              hslen  horizontal sync length (in pixels)

              vslen  vertical sync length (in pixel lines)

       rgba options (only valid with truecolor):

              red    red color bitfields (in length or length/offset)

              green  green color bitfields (in length or length/offset)

              blue   blue color bitfields (in length or length/offset)

              alpha  alpha color bitfields (in length or length/offset)

       other options:
              the first value of this options is the default

              hsync {low|high}
                     the horizontal sync polarity

              vsync {low|high}
                     the vertical sync polarity

              csync {low|high}
                     the composite sync polarity

              gsync {low|high}
                     the sync on green polarity

              bcast {false|true}
                     enable  or  disable broadcast modes. If enabled the frame
                     buffer generates the exact timings fot several  broadcast
                     modes  (e.g.  PAL or NTSC). Note that this option may not
                     be supported by every frame buffer

              extsync {false|true}
                     enable or disable external resync. If  enabled  the  sync
                     timings  are not generated by the frame buffer device and
                     must be  provided  externally  instead.  Note  that  this
                     option may not be supported by every frame buffer device

              laced {false|true}
                     enable  or disable interlace. If enabled the display will
                     be split in two frames, each frame contains only even and
                     odd   lines   respectively.  These  two  frames  will  be
                     displayed alternating, this way twice the  lines  can  be
                     displayed  and  the  vertical frequency for monitor stays
                     the same, but the visible vertical frequency gets halved

              double {false|true}
                     enable or disable doublescan. If enabled every line  will
                     be  displayed twice and this way the horizontal frequency
                     can easily be doubled, so that the same resolution can be
                     displayed  on  different monitors, even if the horizontal
                     frequency specification differs. Note  that  this  option
                     may not be supported by every frame buffer device

              nostd <number>
                     select nonstandard video mode

              accel {false|true}
                     enable or disable hardware text acceleration

              grayscale {false|true}
                     enable or disable graylevels instead of colors

INTERNALS

       Generally a frame buffer display is organized as follows:

                            +---+---------------+---+---+
                            |   |       ^       |   |   |
                            |   |       | 5     |   |   |
                            |   |       v       |   |   |
                            +---#################---+---+
                            |   #       ^       #   |   |
                            |   #       |       #   |   |
                            |   #       |       #   |   |
                            | 1 #       |   2   # 3 | 4 |
                            |<->#<------+------>#<->|<->|
                            |   #       |       #   |   |
                            |   #       | 6     #   |   |
                            |   #       |       #   |   |
                            |   #       v       #   |   |
                            +---#################---+---+
                            |   |       ^       |   |   |
                            |   |       | 7     |   |   |
                            |   |       v       |   |   |
                            +---+---------------+---+---+
                            |   |       ^       |   |   |
                            |   |       | 8     |   |   |
                            |   |       v       |   |   |
                            +---+---------------+---+---+

              1  left margin
              2  xres
              3  right margin
              4  horizontal sync len
              5  upper margin
              6  yres
              7  lower margin
              8  vertical sync len

       The  area bordered with ‘#’ is the visible display area. Horizontal and
       vertical frequencies can now easily be calculated, for this the sum  of
       horizontal or vertical values are important

              htotal = left + xres + right + hslen
              vtotal = upper + yres + lower + vslen

       The length of one line can now be calculated with pixclock

              line = pixclock * htotal

       and we have the horizontal frequency

              hfreq = 1E12 / line = 1E12 / (pixclock * htotal)

       To  get  the vertical frequency vtotal must eventually adjusted. If the
       display is laced, vtotal  must  be  halved  or  if  the  display  is  a
       doublescan one, vtotal must be doubled. Now we can calculate the length
       of one frame

              if (lace)   vtotal /= 2
              if (double) vtotal *= 2

              frame = vtotal * line

       and we get also the vertical frequency

              vfreq = 1E12 / frame = hfreq / vtotal

SEE ALSO

       fbset(8), fbdev(4)