Provided by: fbset_2.1-33.1_amd64 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

              sync <number>
                     custom sync flags (frame buffer driver dependent)

              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)