         Frequently Asked Questions about the usage of fbset

This document tries to answer questions a user might have when installing
and using fbset.  Please make sure you read this before sending questions
or bug reports to the maintainers.

If you have any questions you think should be answered in this document,
please let me know.

                                          Hartmut Koptein <koptein@debian.org>

==============================================================================

1.1.	How to set my matrox graphicboard for the framebuffer and with lilo?
1.2.	How to do this with other graphic cards?
1.3.	How to switch modes with vesafb?
1.4.	Is fbset usable with the linux kernel 2.6?
1.5.	What are the driver names on the different linux kernel versions?

2.1.	I have an valid XF86Config file, but no /etc/fb.modes file. Any hints?
2.2.	The XF86Config-4 file doesn't have any ModeLine lines. What to do?
2.3.	What is the difference between the old XF86Config and the one for FB?
2.4.	Is a /etc/X11/XF86Config file for framebuffer available?


==============================================================================


1.1.	How to set my matrox graphicboard for the framebuffer and with lilo?

  {HK} Put this line into the /etc/lilo.conf: (some examples)

  append="video=matrox:xres:1152,yres:864,pixclock:10869,left:56,right:106,upper:20,lower:1,hslen:160,vslen:10,depth:8"
  append="video=matrox:vesa:279,fv:85"
  append="video=matrox:xres:1280,yres:1024,pixclock:7124,left:184,right:12,upper:30,lower:3,hslen:160,vslen:3,sync:3,depth:8"


1.2.	How to do this with other graphic cards?

  {HK} Look at /usr/share/doc/fbset/examples/fb.modes.ATI for say 1024x768
  This gives:

  mode "1024x768-75"
  # D: 78.75 MHz, H: 60.023 kHz, V: 75.03 Hz
     geometry 1024 768 1024 768 8
     timings 12699 176 16 28 1 96 3
     hsync high
     vsync high
  endmode

  To compare this for the lilo append line we have

  append="video=XXXXXX:xres:1024,yres:768,pixclock:12699,left:176,right:16,upper:28,lower:1,hslen:96,vslen:3,sync:3,depth:8"

  The frame buffer device uses the following fields:

    - screen resolution is                    xres:1024  yres:768
    - pixclock: pixel clock in ps (pico seconds)     12699
    - left_margin: time from sync to picture           176
    - right_margin: time from picture to sync           16
    - upper_margin: time from sync to picture           28
    - lower_margin: time from picture to sync            1
    - hsync_len: length of horizontal sync              96
    - vsync_len: length of vertical sync                 3


1.3.	How to switch modes with vesafb?

  {GJ} You can only switch modes at boot time. More info at:

  /usr/share/doc/fbset/kernel-doc/vesafb.txt.gz


1.4.	Is fbset usable with the linux kernel 2.6?


  {GJ} Yes, you will need the apropriate FB devices drivers for your
  hardware as well as the fbcon support (CONFIG_FRAMEBUFFER_CONSOLE).


1.5.	What are the driver names on the different linux kernel versions?


  {GJ} Some framebuffer driver names used on the linux kernel argument
  "video=" have changed. All new driver names on linux kernel 2.6 have
  the string "fb" appended. Old ones that don't have that postfix on
  linux kernel 2.4 are:

    retz3, cyber, cyber2000, clgen, matrox, neo, virge, riva, radeon,
    s3trio, trident, sst, vesa, tdfx, sgivw, acorn, hga, apollo, tga,
    g364, sa1100, sun3, tx3912, pvr2, vga16

  So when reading /usr/share/doc/fbset/FAQ, take this into account and
  use the apropriate driver name depending on your running kernel.


2.1.	I have an valid XF86Config file, but no /etc/fb.modes file. Any hints?

  {HK} Sure. :-)
  With an available and correct /etc/X11/XF86Config file (an old setup) you
  can use the modeline2fb to convert the modelines into
  /etc/fb.modes to to use it with fbset.

  Or you put the fb.modes.ATI (/usr/share/doc/fbset/examples) into /etc/ as
  fb.modes (perms root.root 644). The timings are very compatible with other
  graphicboards then ATI.


2.2.	The XF86Config-4 file doesn't have any ModeLine lines. What to do?


  {ibr} Use xvidtune's "Show" function to obtain mode parameters, then
  use modeline2fb as described above, or cvtmode.m script from
  Framebuffer-HOWTO (in this case, don't forget about [hvc]sync lines).

  Some examples:

  echo ModeLine \"640x400\" 31.5 640 672 736 832 400 401 404 445 \
	-hsync +vsync | modeline2fb

  ./cvtmode.m 31.5 640 672 736 832 400 401 404 445


2.3.	What is the difference between the old XF86Config and the one for FB?


  {HK} There aren't many differences, all fonts, kbd, mice and monitor
  settings are the same.
  But you have choices. For fbdev you don't need a modeline, you can use the
  same resolution as on the consoles, setable with fbset (Modes "default").


  # **********************************************************************
  # Server for the Linux Frame Buffer Device
  # **********************************************************************

  Section "Device"
      Identifier "Linux Frame Buffer Device"
  #   Option "no_accel"
  EndSection

  # **********************************************************************
  # Screen/Display  section
  # **********************************************************************

  Section "Screen"
      Driver  "fbdev"
      Device  "Linux Frame Buffer Device"
      Monitor "Panasonic PanaSync/Pro5"
      DefaultColorDepth 16
      SubSection  "Display"
          Modes   "default"
      EndSubsection
  EndSection


  With modelines, it is the same as without fbdev. But then you should
  check your modeline with fbset --xfree86. This shows you the 'xf86'
  modeline from the fbdev settings. Here some examples (don't use it
  without checking your setup first):


  ModeLine "640x480" 30.438 640 704 768 832 480 512 514 546 -HSync -VSync
  ModeLine "800x600" 49.553 800 864 928 992 600 632 634 666 -HSync -VSync
  ModeLine "832x624" 52.995 832 896 960 1024 624 656 658 690 -HSync -VSync
  # ModeLine "1024x768" 76.064 1024 1088 1152 1216 768 800 802 834 -HSync -VSync
  ModeLine "1024x768" 99.801 1024 1024 1120 1312 768 789 804 845 -HSync -VSync
  ModeLine "1152x870" 94.358 1152 1216 1280 1344 870 902 904 936 -HSync -VSync
  ModeLine "1152x900" 130.000 1152 1320 1360 1620 900 901 905 943 +HSync +VSync
  ModeLine "1280x960"  125.645 1280 1312 1456 1680 960 961 964 1000 -HSync -VSync
  ModeLine "1280x1024" 144.551 1280 1352 1496 1632 1024 1025 1028 1059 +HSync +VSync
  ModeLine "1280x1024" 155.000 1280 1384 1528 1688 1024 1025 1028 1066 +HSync +VSync


2.4.	Is a /etc/X11/XF86Config file for framebuffer available?


  {HK} Use this as an example:


  # $XFree86: xc/programs/Xserver/hw/xfree86/XF86Conf.cpp,v 3.21 1996/01/31 11:46:37 dawes Exp $
  #
  # Copyright (c) 1994 by The XFree86 Project, Inc.
  #
  # Permission is hereby granted, free of charge, to any person obtaining a
  # copy of this software and associated documentation files (the "Software"),
  # to deal in the Software without restriction, including without limitation
  # the rights to use, copy, modify, merge, publish, distribute, sublicense,
  # and/or sell copies of the Software, and to permit persons to whom the
  # Software is furnished to do so, subject to the following conditions:
  #
  # The above copyright notice and this permission notice shall be included in
  # all copies or substantial portions of the Software.
  #
  # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
  # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  # SOFTWARE.
  #
  # Except as contained in this notice, the name of the XFree86 Project shall
  # not be used in advertising or otherwise to promote the sale, use or other
  # dealings in this Software without prior written authorization from the
  # XFree86 Project.
  #
  # $XConsortium: XF86Conf.cpp /main/16 1996/01/31 10:03:57 kaleb $

  # **********************************************************************
  # Refer to the XF86Config(4/5) man page for details about the format of
  # this file. This man page is installed as /usr/X11R6/man/man5/XF86Config.5x
  # **********************************************************************

  # **********************************************************************
  # Files section.  This allows default font and rgb paths to be set
  # **********************************************************************

  Section "Files"
  # The location of the RGB database.  Note, this is the name of the
  # file minus the extension (like ".txt" or ".db").  There is normally
  # no need to change the default.

      RgbPath		"/usr/X11R6/lib/X11/rgb"

  # Multiple FontPath entries are allowed (which are concatenated together),
  # as well as specifying multiple comma-separated entries in one FontPath
  # command (or a combination of both methods)

      FontPath	"/usr/X11R6/lib/X11/fonts/misc/"
  #   FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
  #   FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
      FontPath	"/usr/lib/ghostscript/fonts/"
      FontPath	"/usr/X11R6/lib/X11/fonts/Type1/"
      FontPath	"/usr/X11R6/lib/X11/fonts/Speedo/"
      FontPath	"/usr/X11R6/lib/X11/fonts/75dpi/"
      FontPath	"/usr/X11R6/lib/X11/fonts/100dpi/"

      FontPath	"/usr/X11R6/lib/X11/fonts/sharefont/"
  EndSection

  # **********************************************************************
  # Server flags section.
  # **********************************************************************

  Section "ServerFlags"
  # Uncomment this to cause a core dump at the spot where a signal is
  # received.  This may leave the console in an unusable state, but may
  # provide a better stack trace in the core dump to aid in debugging

  #   NoTrapSignals

  # Uncomment this to disable the <Crtl><Alt><BS> server abort sequence
  # This allows clients to receive this key event.

  #   DontZap

  # Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching
  # sequences.  This allows clients to receive these key events.

  #   DontZoom

  # Uncomment this to disable tuning with the xvidtune client. With
  # it the client can still run and fetch card and monitor attributes,
  # but it will not be allowed to change them. If it tries it will
  # receive a protocol error.

  #   DisableVidModeExtension

  # Uncomment this to enable the use of a non-local xvidtune client.

  #   AllowNonLocalXvidtune
  EndSection

  # **********************************************************************
  # Input devices
  # **********************************************************************

  # **********************************************************************
  # Keyboard section
  # **********************************************************************

  Section "Keyboard"
      Protocol		"Standard"

  # when using XQUEUE, comment out the above line, and uncomment the
  # following line

  #   Protocol		"Xqueue"

      AutoRepeat	500 5

  # Let the server do the NumLock processing.  This should only be required
  # when using pre-R6 clients
  #   ServerNumLock

  # Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1))
  #   Xleds		1 2 3

  # To set the LeftAlt to Meta, RightAlt key to ModeShift,
  # RightCtl key to Compose, and ScrollLock key to ModeLock:

  #   LeftAlt		Meta
  #   RightAlt		ModeShift
  #   RightCtl		Compose
  #   ScrollLock	ModeLock

  # To disable the XKEYBOARD extension, uncomment XkbDisable.

      XkbDisable

  # To use the default map in ProjectRoot keymap/xfree86, uncomment
  # XkbKeymap. To use one of the alternate maps in keymap/xfree86
  # uncomment and modify the XkbKeymap line, e.g.:
  #   XkbKeymap		"keymap/xfree86(us_microsoft)"
  # To tailor a combination not already in keymap/xfree86 modify
  # keymap/xfree86 or uncomment and modify the other lines as
  # desired. One way to get a german layout on a 101 key keyboard
  # is to modify the XkbSymbols line, e.g.:
  #   XkbSymbols	"symbols/us(pc101)+de"

      XkbKeymap		"keymap/xfree86"
      Xkbkeycodes	"keycodes/xfree86"
      XkbTypes		"types/default"
      XkbCompat		"compat/default"
      XkbSymbols	"symbols/de(pc102)"
      XkbGeometry	"geometry/pc"
  EndSection


  # **********************************************************************
  # Pointer section
  # **********************************************************************

  Section "Pointer"
      Protocol		"PS/2"
      Device		"/dev/mouse"

  # When using XQUEUE, comment out the above two lines, and uncomment
  # the following line.

  #   Protocol		"Xqueue"

  # Baudrate and SampleRate are only for some Logitech mice

  #   BaudRate		9600
  #   SampleRate	150

  # Emulate3Buttons is an option for 2-button Microsoft mice
  # Emulate3Timeout is the timeout in milliseconds (default is 50ms)

  #   Emulate3Buttons
  #   Emulate3Timeout	50

  # ChordMiddle is an option for some 3-button Logitech mice

  #   ChordMiddle
  EndSection


  # **********************************************************************
  # Xinput section -- this is optional and is required only if you
  # are using extended input devices.  This is for example only.  Refer
  # to the XF86Config man page for a description of the options.
  # **********************************************************************
  #
  # Section "Xinput"
  #    SubSection "WacomStylus"
  #        Port "/dev/ttyS1"
  #        DeviceName "Wacom"
  #    EndSubSection
  #    SubSection "WacomCursor"
  #    EndSubSection
  #    SubSection "WacomEraser"
  #    EndSubSection
  #
  #    SubSection "Elographics"
  #        Port "/dev/ttyS1"
  #        DeviceName "Elo"
  #        MinimumXPosition 300
  #        MaximumXPosition 3500
  #        MinimumYPosition 300
  #        MaximumYPosition 3500
  #        Screen 0
  #        UntouchDelay 10
  #        ReportDelay 10
  #    EndSubSection
  #
  #    SubSection "Joystick"
  #        Port "/dev/joy0"
  #        DeviceName "Joystick"
  #        TimeOut 10
  #        MinimumXPosition 100
  #        MaximumXPosition 1300
  #        MinimumYPosition 100
  #        MaximumYPosition 1100
  #        # CenterX 700
  #        # CenterY 600
  #        Delta 20
  #    EndSubSection
  # EndSection


  # **********************************************************************
  # Monitor section
  # **********************************************************************

  # Any number of monitor sections may be present

  Section "Monitor"
      Identifier	"Panasonic PanaSync/Pro5"
      VendorName	"Panasonic"
      ModelName		"PanaSync/Pro5"

  # HorizSync is in kHz unless units are specified.
  # HorizSync may be a comma separated list of discrete values, or a
  # comma separated list of ranges of values.
  # NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
  # USER MANUAL FOR THE CORRECT NUMBERS.

  #   HorizSync		31.5  # typical for a single frequency fixed-sync monitor

  #   HorizSync		15-40         # multisync
  #   HorizSync		30-64         # multisync
  #   HorizSync		31.5, 35.2    # multiple fixed sync frequencies
  #   HorizSync		15-25, 30-50  # multiple ranges of sync frequencies

      HorizSync		31-84

  # VertRefresh is in Hz unless units are specified.
  # VertRefresh may be a comma separated list of discrete values, or a
  # comma separated list of ranges of values.
  # NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR'S
  # USER MANUAL FOR THE CORRECT NUMBERS.

  #   VertRefresh	60  # typical for a single frequency fixed-sync monitor

  #   VertRefresh	50-100        # multisync
  #   VertRefresh	60, 65        # multiple fixed sync frequencies
  #   VertRefresh	40-50, 80-100 # multiple ranges of sync frequencies

      VertRefresh	50-90

  # Modes can be specified in two formats. A compact one-line format, or
  # a multi-line format.

      ModeLine "640x480" 30.438 640 704 768 832 480 512 514 546 -HSync -VSync
      ModeLine "800x600" 49.553 800 864 928 992 600 632 634 666 -HSync -VSync
      ModeLine "832x624" 52.995 832 896 960 1024 624 656 658 690 -HSync -VSync
  #   ModeLine "1024x768" 76.064 1024 1088 1152 1216 768 800 802 834 -HSync -VSync
      ModeLine "1024x768" 99.801 1024 1024 1120 1312 768 789 804 845 -HSync -VSync
      ModeLine "1152x870" 94.358 1152 1216 1280 1344 870 902 904 936 -HSync -VSync
      ModeLine "1152x900" 130.000 1152 1320 1360 1620 900 901 905 943 +HSync +VSync
      ModeLine "1280x960"  125.645 1280 1312 1456 1680 960 961 964 1000 -HSync -VSync
      ModeLine "1280x1024" 144.551 1280 1352 1496 1632 1024 1025 1028 1059 +HSync +VSync
      ModeLine "1280x1024" 155.000 1280 1384 1528 1688 1024 1025 1028 1066 +HSync +VSync
  EndSection

  # **********************************************************************
  # Server for the Linux Frame Buffer Device
  # **********************************************************************

  Section "Device"
      Identifier	"Linux Frame Buffer Device"
  #   Option		"no_accel"
  EndSection

  Section "Screen"
      Driver		"fbdev"
      Device		"Linux Frame Buffer Device"
      Monitor		"Panasonic PanaSync/Pro5"
      DefaultColorDepth	16
      SubSection "Display"
          Modes		"1280x960" "1152x900" "1024x768" "800x600" "640x480"
          Depth		8
          Virtual	1280 960
      EndSubSection
      SubSection "Display"
          Depth		15
          Modes		"1280x960" "1152x900" "1024x768" "800x600" "640x480"
          Virtual	1280 960
      EndSubSection
      SubSection "Display"
          Depth		16
          Modes		"1280x960" "1152x900" "1024x768" "800x600" "640x480"
          Virtual	1280 960
      EndSubSection
      SubSection "Display"
          Depth		24
          Modes		"1280x960" "1152x900" "1024x768" "800x600" "640x480"
          Virtual	1280 960
      EndSubSection
      SubSection "Display"
          Depth		32
          Modes		"1152x900" "1024x768" "800x600" "640x480"
          Virtual	1152 900
      EndSubSection
  EndSection



==============================================================================

Answers were given by:
{HK} Hartmut Koptein, <koptein@debian.org>
{ibr} Baurjan Ismagulov, <ibr@ata.cs.hun.edu.tr>
{GJ} Guillem Jover, <guillem@debian.org>
