GNU.WIKI: The GNU/Linux Knowledge Base

  [HOME] [PHP Manual] [HowTo] [ABS] [MAN1] [MAN2] [MAN3] [MAN4] [MAN5] [MAN6] [MAN7] [MAN8] [MAN9]

  [0-9] [Aa] [Bb] [Cc] [Dd] [Ee] [Ff] [Gg] [Hh] [Ii] [Jj] [Kk] [Ll] [Mm] [Nn] [Oo] [Pp] [Qq] [Rr] [Ss] [Tt] [Uu] [Vv] [Ww] [Xx] [Yy] [Zz]


       libvga.config, svgalibrc - the svgalib configuration file


       The  svgalib configuration is usually located in /etc/vga/libvga.config
       though one can reconfigure this location when recompiling svgalib.

       In the configuration file, everything between a # and the  end  of  the
       line  is  ignored.  Empty  lines are also ignored. Since the driver you
       will use may not know all config options  here,  unknown  commands  are
       silently  ignored. Please think of that when something does not work as
       you expect. I know this is a nuisance because  malformed  configuration
       statements  do  not  cause errors. Multiple commands are allowed in one
       line, and commands can exceed lines.

       Actually, svgalib simply reads a list of  whitespace  separated  tokens
       from  the  file  until  it  finds  one it knows and it then assumes the
       following  tokens  to  be  arguments  of  that  command  until  one  is
       encountered which may not be an argument.

       New style options are in general case insensitive whereas the old style
       options are case sensitive. The old style options are included to allow
       for  old  config  files  still  being  used.  For completeness they are
       documented in the OBSOLETE COMMANDS section. You should  not  use  them

       In  addition,  svgalib(7)  parses  the  files ~/.svgalibrc and the file
       given in the environment variable SVGALIB_CONFIG_FILE.

       Finally, the contents of the environment  variable  SVGALIB_CONFIG  are
       parsed like the files before.

       Configuration commands which control hardware settings that might cause
       harm to your hardware are called privileged.  By default the privileged
       commands   can   only   be   used   in   the  main  configuration  file
       /etc/vga/libvga.config for safety (s.t. a non root user can  not  cause
       any harm to your hardware by misconfiguring svgalib(7)).

       Enable   them   in  the  other  locations  as  well  with  the  command
       overrideenable in the main config file.   BEWARE!   This  allows  every
       user  to  change  the  monitor  and clocks (and other configs) and thus
       damaging the hardware. I strongly discourage the use of  overrideenable
       except for debugging/testing purposes.


       Please  do  not allow the vastness of options to confuse you. Generally
       svgalib uses well chosen defaults and is able to autodetect everything.
       Thus  generally you don't need to specify much. When installing svgalib
       it provides a sample /etc/vga/libvga.config file which contains most of
       the required configuration. Just edit it to your needs.

       Generally you only need to use:

       mouse  To  specify if you use anything else then a Microsoft compatible

       mdev   If the mouse device file is not  /dev/input/mice  which  is  the
              actual  mouse  device  file.  You  will usually need to use this
              command if you want to use the SpaceTec Spaceball device  (which
              is not your usual mouse).

       setRTS, clearRTS, leaveRTS, setDTR, clearDTR, and leaveDTR
              if your mouse needs it to enter your desired mouse protocol.

       monitor, or (better) HorizSync and VertRefresh
              to specify the capabilities of your monitor.

   If you use the EGA chipset driver
       monotext or colortext
              to   specify  if  your  EGA  card  is  in  monochrome  or  color

   If you use the Mach32 chipset driver
       You should consider reading svgalib.mach32(7).

       Clocks clock1 clock2 clock3 ...
              to specify the Mach32 clocks. This is mandatory. However, if you
              omit   it.  svgalib  will  autodetect  clocks  and  modify  your
              /etc/vga/libvga.config file and abort. After this, every svgalib
              application started will find the proper Clocks command.

       mach32eeprom /etc/vga/mach32.eeprom
              is recommended to avoid slowish reads of the Mach32 EEPROM which
              will also cause annoying screen flickering.

   If you use the Mach64 chipset driver
       Chipset Mach64
              if you want to use the experimental pre-alpha driver

   If you use the S3 chipset driver
       I don't have much knowledge on the S3, but it  seems  to  me  that  you

       Clocks clock1 clock2 ...
              to   specify   the   clocks   (take   them   from  your  Xfree86


       ClockChip icd2061a number
              if you have an Icd2061a clockchip.

       Ramdac chipname
              if your Ramdac is not detected properly.

       Dacspeed speed
              if the default chosen is not right (probably too restrictive).

       The remaining options are really only to be used in  case  of  problems
       which you'll not generally encounter.

   If you use the VESA chipset driver
              forces  the  driver  to set 80x25 text mode, before any standard
              vga mode setting. Fixes text mode restoring with many cards,  as
              well as standard VGA modes.

              selects  the  bitmap  to save and restore, using VESA functions.
              see VESA documentation for bits' meanings. The default  is  1110
              (=14) which is good for most cards, but some give better results
              with other numbers.


   Mouse configuration
       mouse mousetype
              where mousetype is one of:  Microsoft,  MouseSystems,  MMSeries,
              Logitech,   Busmouse,   PS2,  MouseMan,  gpm,  Spaceball,  none,
              IntelliMouse, or IMPS2.  mousetype can also be a number (0 -  9)
              for the keywords Microsoft - none.

              gpm  allows  for  (hopefully)  peaceful  interaction  with  gpm,
              Spaceball enables support  for  the  6-axes  Spacetec  Spaceball
              mouse  (well,  probably more like a trackball), IntelliMouse and
              IMPS2 refer to the Microsoft IntelliMouse or Logitech MouseMan+,
              where IntelliMouse is for serial port and IMPS2 for such a mouse
              on the PS/2 port.

              Note  that  it  is  not  possible  to  specify   the   Microsoft
              IntelliMouse  or  Logitech MouseMan+ by a number. This is due to
              historical and compatibility reasons.

              This command is only available if ALLOW_MOUSE_OVERRIDE  was  set
              in   Makefile.cfg  when  svgalib  was  compiled  (which  is  the

              If given, svgalib ignores any mouse type the  program  specifies
              but uses the type configured with the mouse command.

              For  example,  DOOM does not recognize MouseMan as a valid mouse
              type and defaults the mouse type to MouseSystems.  This  command
              allows  to  make  svgalib ignore whatever DOOM specifies and use
              MouseMan anyway.

       mdev mousedevice
              Usually /dev/input/mice (the default) will be the mouse  device.
              However,  esp.  with  the  Spacetec  Spaceball  you  may want to
              specify a different device for svgalib(7) to use:

              mdev /dev/ttyS0 # mouse is at /dev/ttyS0

       Some multiprotocol mice use the state of RTS and DTR to find out  which
       protocol to enable:

       setRTS set the RTS wire.

              clear the RTS wire.

              leave the RTS wire alone (default) (Wire is usually set)

       setDTR set the DTR wire.

              clear the DTR wire.

              leave the DTR wire alone (default) (Wire is usually set)

       For  example my mouse can emulate Microsoft and MouseSystems.  It needs
       a low RTS to go into MouseSystems mode. Thus I use:

       mouse MouseSystems clearRTS

       Still I could just use mouse Microsoft and  use  the  mouse  with  that
       protocol.. But then only 2 buttons instead of 3 are supported (not that
       I know many svgalib programs that uses more than 2 buttons.)

       Other mice might need clearDTR as  well  or  one  set  and  clear.  Try

       Note:  Having  crtscts handshake enabled on the mouse tty may interfere
       with this option. Do not do that.

       Finally, a special goodie for wheel mice:

       mouse_fake_kbd_event upscancode downscancode
              sends a fake keyboard event to the program when the wheel  on  a
              Microsoft  IntelliMouse,  Logitech  MouseMan+,  or similar wheel
              mouse is turned.

              The up and down scancodes are  the  scancodes  of  the  keys  to
              simulate when the wheel is turned up and down, respectively.

              The following can be specified for the scancodes: letters (A-Z),
              numbers (0-9), function keys (F1-F12), or any of the following -
              ESCAPE,    MINUS,    EQUAL,    BACKSPACE,   TAB,   BRACKET_LEFT,
              KEYPAD7,     CURSORUPLEFT,     KEYPAD8,    CURSORUP,    KEYPAD9,

              Note that this option has no effect unless the  IntelliMouse  or
              IMPS2  mouse  type  is  used  (see  above).  Also  note that the
              simulated keypresses are instantaneous, so they cannot  be  used
              for  functions  that require a key to be held down for a certain
              length of time.

              This example simulates a press of the left bracket ([) when  the
              wheel is turned up and a press of the right bracket (]) when the
              wheel is turned down (good for selecting items in Quake II):

              mouse_fake_kbd_event BRACKET_LEFT BRACKET_RIGHT

   Mouse acceleration
       Svgalib versions 1.3.0 and later use the following commands to  control
       the logarithmic mouse acceleration:

                     If given, force use of input parameters even if they seem

              mouse_maxdelta <integer>
                     Set max delta BEFORE acceleration.

              mouse_accel_maxdelta <integer>
                     Set max delta AFTER acceleration.

              mouse_accel_thresh <integer>
                     Set acceleration threshold.

              mouse_accel_power <float>
                     Set input variable for power mode.

              mouse_accel_mult <float>
                     Set acceleration factor.

              mouse_accel_type {0|off|normal|power|linear}
                     Set the type of acceleration. The following  strings  are
                     valid values:

                     0 or off
                            No acceleration.

                     normal No   acceleration   while   delta   is  less  than
                            mouse_accel_thresh     but      multiplied      by
                            mouse_accel_mult if more.
                            Originally      done      by      Mike     Chapman

                     power  The acceleration factor is  a  power  function  of
                            delta until it reaches mouse_accel_mult After that
                            it's a simple multiplication. Basically it's  like
                            the  normal mode but the acceleration factor grows
                            as you move your mouse faster and faster, not just
                            turns  in  and  out.  If  the  acceleration factor
                            reaches mouse_accel_mult it  turns  into  a  plain

                            Threshold  has the same meaning as in normal mode.
                            The one I use for *uaking... :)

                            It is calculated like this:

                            if (abs(dx) > 1) /* to prevent  losing  resolution
                              dx = (abs(dx) >=
                                     mouse_accel_thresh ) ?
                                   (float)dx *
                                    mouse_accel_mult :
                                   (float)dx *

                     linear The  acceleration  factor  grows  linear  with the
                            delta until it reaches mouse_accel_thresh.   After
                            that  it is a simple multiplication.  (I know that
                            it can be done with setting  mouse_accel_power  to
                            1,  but it was one minute to implement... and uses
                            no memory... and...)

                            It is calculated like this:

                            if (abs(dx) > 1)
                              dx = (abs(dx) >=
                                     mouse_accel_thresh ) ?
                                   (float)dx *
                                    mouse_accel_mult :
                                   (float)dx * abs(dx) *
                                    mouse_accel_mult /
                                    mouse_accel_thresh ;

              The enhanced acceleration  was  done  by  101  (Attila  Lendvai)

   Joystick configuration
       As  of now, svgalib supports up to four joystick devices. You must have
       joystick support in your kernel to support this.

       joystick0 device
              sets the device  name  to  use  for  joystick  0.  The  commands
              joystick1,   joystick2   and   joystick3   configure  the  other
              joysticks. By default the names /dev/js0, /dev/js1, /dev/js2 and
              /dev/js3 are used.

   Keyboard configuration
       kbd_fake_mouse_event scancode [flag(s)] command [argument]
              , as it says, sends a fake mouse event to the program.  Scancode
              is   a   raw   scancode   as    you    can    find    them    in

              Supported flag(s) are:

              down   trigger event when the key is pressed (default).

              up     the opposite.

              both   trigger in both case, if pressed or released.

              repeat repeat  events  if  the  key  is  kept  pressed  (off  by

              Supported commands are:

                     send a fake delta event as if you have moved your  mouse.
                     If  the  parameter  is  off or on it will turn off/on the
                     respective mouse axis (requires a parameter, of course)

                     send a fake event that the mouse  button  is  pressed  or
                     released as given by the parameter (pressed or released)

              Here are some examples:

              This  is  one  I use in *uake: it turns around, looks down a bit
              and when the key is released it does the opposite,  so  it  gets
              back  to  the  starting  state.  With this one and the help of a
              rocket you can fly though the  whole  map  :)  (Scancode  28  is

                  kbd_fake_mouse_event 28 both deltax 8182
                                          down deltay -1500
                                          up deltay 1500

              This  one  will switch off the y axis of the mouse while the key
              <Right Ctrl> is kept pressed.

                  kbd_fake_mouse_event 97 down deltay off
                                          up deltay on

              This one is the same as if you  were  pressing  the  left  mouse
              button.  (But  if you move your mouse then the button state will
              reset even if you keep <Right Ctrl> down...)

                  kbd_fake_mouse_event 97 down button1 pressed
                                          up button1 released

              NOTE: This does only work when the keyboard is in  raw  keyboard

              Yet  another  feature  brought  to  you  by 101 (Attila Lendvai)

              This command disables generation of a SIGINT signal when  <Ctrl-
              C> is pressed.

              This  works  regardless of ordinary or raw keyboard mode (albeit
              the hot key might be different from <Ctrl-C> in the first case).

              Note that this is a very dangerous option. Disabling SIGINT will
              lock  you  in  programs  which  can  only  by  quit by <Ctrl-C>!
              However, there were request for it for Quake playing.

       sigint (default)
              Enables generation of SIGINT.

   Monitor configuration
       HorizSync min_kHz max_kHz
       VertRefresh min_Hz max_Hz
              specifies the range of frequencies acceptable to  your  monitor.
              They  obsolete the monitor settings below, and this shouldn't be
              used if HorizSync and VertRefresh are defined. Examples:

              HorizSync 31.5 35.5
              VertRefresh 50 70

       monitor monitor_class
              where monitor_class is a digit 0 - 6 or the  maximal  horizontal
              frequency in kHz. Examples:

              monitor 0 # Max horizontal sync is 31.5 kHz
              monitor 1 # Max horizontal sync is 35.1 kHz
              monitor 2 # Max horizontal sync is 35.5 kHz
              monitor 3 # Max horizontal sync is 37.9 kHz
              monitor 4 # Max horizontal sync is 48.3 kHz
              monitor 5 # Max horizontal sync is 56.0 kHz
              monitor 6 # No restrictions.

              For  your  convenience  you  may specify the max horizontal sync
              explicitly. The correct class will the be chosen.  You  may  use
              floats consisting of digits and a decimal point for this too:

              monitor 40.0 # equivalent to monitor 3

              This command is privileged.

   Mode timings
       It  is  now possible to define modetimings for some cards (see the info
       on your card in svgalib(7)).  The syntax is:

       modeline label pxcl HDsp HSS HSE HTot VDsp VSS VSE VTot flags

              label  string
                     (ignored by svgalib) mainly there to be  compatible  with
                     XF86Config.    I   use  the  format  "Width  x  Height  @
                     Vert.Refresh", but that's just personal taste...

              pxcl   float
                     the pixel clock in MHz

              VDsp   integer
                     size of the visible area (horizontal/vertical)

              VSS    integer
                     Sync start (horizontal/vertical)

              VSE    integer
                     Sync end (horizontal/vertical)

              VTot   integer
                     Total width/height (end of back porch)

              flags  +hsync -hsync +vsync -vsync interlace interlaced
                     doublescan Sync polarity, interlace mode

       Everything should be on  one  line.   The  values  for  the  horizontal
       timings must be multiples of eight.

       These  are  preferred  over the default timings (if monitor and chipset
       can handle them).  The format is identical to the one used by  XFree86,
       but the label following the modeline keyword is ignored by vgalib.

       Here some examples:

       modeline 640x480@100 43 640 664 824 848 480 483 490 504
       modeline 800x600@73 50 800 856 976 1024 600 637 643 666
       modeline 1024x768@75 85 1024 1048 1376 1400 768 771 780 806

       IMPORTANT!   Not  all drivers, that is SVGA cards, use the values. Only
       drivers using timing.c. As of this writing, drivers using this  feature
       are: Ark, Cirrus, Chips & Technologies, Et6000, S3.

       The  Mach32  driver  provides a similar feature separately, you have to
       use the define command described below.

       ET4000 (and to some extent EGA) allow one to use a binary file  created
       by  some  utility. All other chipset driver use predefined timings that
       are   hardcoded   in   register   dumps   within   the   drivers.   See
       svgalib.et4000(7) for more information.

   Chipset detection
       Usually  svgalib  does a good job autodetecting your hardware. However,
       if auto detection fails (or you want to fall back to a simpler  driver,
       say VGA, as a bug work around), you may force detection of your chipset

       chipset type
              where type is (currently) one of:  VGA,  ET4000,  Cirrus,  TVGA,
              Oak,  EGA,  S3, ET3000, Mach32, GVGA6400, ARK, ATI, ALI, Mach64,
              C&T, APM, NV3, ET6000, VESA, MX, PARADISE, and RAGE.

              You can also specify a number in range 1  -  22 to  specify  the
              type-th chipset type or 0 to enforce autodetection.

              Warning,  incorrect  settings  may  damage  your hardware.  This
              command is privileged.

       chipset type param1 param2
              use  this  form  if  the  size  of  memory  or   an   additional
              configuration option is misdetected. For example:

              chipset Mach32 0 2048

              Note  that  always  two  integers  have to be specified. Usually
              (Mach32) the second parameter is the memory amount. Look at  the
              *_init  function  of  the  specific  device  driver  sources  or
              information on that type of cards in svgalib(7).

              Note that there is a more  convenient  command  setuplinear  for
              enforcing specific memory-aperture configurations for Mach32

              This command is privileged.

   Specific options required for the EGA-driver.
              Card is in monochrome emulation mode

              Card is in color emulation mode

              This command is privileged.

   RAMDAC configuration
       Some chipsets (e.g. S3 and ARK) allow specifying a RAMDAC type. If your
       RAMDAC is not autodetected, you can try specifying it:

       Ramdac Sierra32K
       Ramdac SC15025
       Ramdac SDAC
              S3 SDAC
       Ramdac GenDAC
              S3 GenDAC
       Ramdac ATT20C490
              AT&T 20C490, 491, 492 (and compatibles)
       Ramdac ATT20C498
              AT&T 20C498
       Ramdac IBMRGB52x
              IBM RGB524, 526, 528 (and compatibles)

       BEWARE!  The Mach32 driver features an own  ramdac  command  (which  is
       usually not required). If you have a Mach32, see svgalib.mach32(7).

       Dacspeed speed
              speed  is a floating point number in MHz (like in Dacspeed40.0")
              specifying the maximal allowable pixel clock of  the  Ramdac  in
              use.  Currently  this option is only supported by the S3 driver.
              The Mach32 driver supports  maxclock8,  maxclock16,  maxclock24,
              and   maxclock32   commands   which   have   a  similar  effect.
              Nevertheless,  the  Mach32  has  a  very  good   idea   on   the
              capabilities  of  the  Ramdac  in  use.  The  settings  are more
              intended to specify the VGA memory bandwidth.

   Pixel clocks
       Clocks list of clock values as floats or ints

              Some chipsets need a list of dot clocks for  optimum  operation.
              Some  includes  or  supports  a programmable clock chip.  You'll
              need to specify them here.

              Fixed clocks example: (The following is just an example, get the
              values for your card from you X setup)

              Clocks  25.175  28.3 40 70 50 75 36 44.9 0 118 77 31.5 110 65 72

              BEWARE!  The Clocks command for the Mach32 features only integer
              clocks.  Please  round your clocks to the next integer data. The
              Mach32 only uses these values to check monitor requirements  and
              to  compare  the quality of modes. The rounding errors are of no
              importance there as the  difference  in  the  resulting  monitor
              timings is barely measurable. See the Mach32 section below.

       Clockchip ICD2061A
              Configure  for  a  programmable clockchip.  ICD2061A is the only
              one supported right now.

   Miscellaneous options
       security revoke-all-privs
              Make  sure  it  is  impossible  to  regain  root  access   after
              vga_init(3) was called. (default)

       security compat
              For  compatibility  to  pre 1.2.11, do not close a security hole
              using saved uids.

              Mach32: show messages while processing all info to  build  up  a
              mode table.

       quiet  Turn verbose messages off (default).

              Inhibit use of a linear mmaped frame buffer.

       linear Allow (not enforce!) use of a linear mmaped frame buffer.

              Allow privileged commands outside the main configuration file.

   Common options currently used by Mach32 only
       Options  that  may  be  useful  for all drivers, but currently are only
       supported by Mach32 (Please read svgalib.mach32(7) if you use one):

       maxclock16 maxclk
              The maximum pixel clock to use for 16bpp modes. This is used  by
              Mach32  to  find out which settings may be used for 16bpp modes.
              the Mach32 default for this is  2000,  thus  it  is  effectively
              switched off.  maxclk must be an integer.

       maxclock24 maxclk
              The maximum clock to use for 24bpp modes. (see above) Experience
              showed that the Mach32 default 49 is good for my 2MB VRAM card.

       maxclock32 maxclk
              The same for 32bpp modes (24bpp with one fill  byte  for  faster
              memory  access  (not  fully  implemented (esp. for Mach32) yet).
              Mach32 default (good for my VRAM card) is 39.

       maxclock8 maxclk
              Just for completeness the same for 8bpp modes  (I  doubt  anyone
              needs it), default is 2000 to disable this feature.

       The maxclock commands are privileged.

       clocks list of clocks
              Sets  the  frequencies  of  the  clocks  the chips can generate.
              Exactly 16 values have to be specified for  mach32.   Use  0  to
              disable a specific clock.

              Note  that  the  mach32  can  divide clocks by 2. Thus there are
              actually 32 clocks And you can also use the divided clocks in  a
              define  command.   On  contrary to Xfree96 or the clocks command
              above only integers are allowed for Mach32. Simply round them to
              the nearest integer.

              This line is mandatory for Mach32. If it is not there it will be
              auto detected and added at the beginning of the config file. The
              program  will  then  exit and when you start it next, everything
              should be ok.

              Common clock values for Mach32:

              Clock chip 18811-0:
                     clocks 43 49 92 36 50 56 0 45
                            30 32 110 80 40 45 75 65

              Clock chip 18811-1:
                     due to Xfree86 info valid for: Ultra pro ISA,  Ultra  pro
                     EISA, Ultra pro VLB(68800-3)

                     clocks 100 126 92 36 50 56 0 45
                            135 32 110 80 40 45 75 65

              Clock chip 1881 (ICS2494):
                     due to Xfree86 info valid for: Ultra pro VLB (6880006)

                     clocks 18 22 25 28 36 44 50 56
                            30 32 37 39 40 0 75 65

              In  my  own  correspondence with ATI they say every Mach32 would
              have a 18811-1, so it  should  be  possible  just  to  take  the
              18811-1  line.   However I have now reports of third party cards
              and motherboards with on board Mach32 chips, so be careful.

              Please read svgalib.mach32(7) for additional info on clocks.

              The clocks command is privileged.

              Sometimes a mode cannot be realized with the logical  linelength
              = pixels in a row * bytes per pixel. (definitely true for Mach32
              800x600). The default behavior of Mach32  is  to  adjust  xbytes
              (see vga_getmodeinfo(3)) in the info table appropriately.

              This  command enforces this default operation and adjusts xbytes
              appropriately, thus overriding the standard svgalib  mode.  This
              may   yield   to   problems   with  ..umm..  not  well  designed

              Don't touch the standard  mode  but  create  an  exact  copy,  a
              dynamic  mode,  with the adjusted xbytes value.  Expect noise at
              some pixels in 800x600 for more than 256 colors on  Mach32  when
              not using the dynamic mode.

              Same as above but delete the standard mode thus creating the non
              conforming xbytes modes only as dynamic modes.

       To  enforce  the  standard  linelength  for  non-conforming  modes  use
       setlinelength below.

       The linelength commands are not privileged.

       In  the  following  commands a mode is specified with horzXvertXcolors.
       Valid settings for colors in the mach32 driver are: 256, 32K, 64K, 16M,
       16M4.   16M4 is for the 16M colors with 32bpp modes. These are expected
       to support slightly faster drawing.

       Examples: 640x480x256, 1024x768x64K, etc...

       inhibit mode1 [mode2 mode3...]
              Switch the specified SVGA-Modes off. For example:

              inhibit 800x600x32K 800x600x64K 800x600x16M

              disallows the maybe toasted mach32 800x600 modes.

              The inhibit command is not privileged.

       setlinelength length mode1 [mode2 mode3...]
              Force the logical line length (xbytes) in  the  given  modes  to
              length   pixels   (not  bytes!).  See  also  variablelinelength,
              strictlinelength, and duplicatelinelength above. For example:

              setlinelength 800 800x600x32K 800x600x64K 800x600x16M

              sets the linelength, and thus xbytes, for the 800x600  modes  to
              the  equivalent  of  800 pixels. For Mach32 this will give badly
              designed applications an  800x600  with  which  they  can  cope.
              However,  the  Mach32 will generate a noisy video signal in some

              The setlinelength command is not privileged.

       define mode1 [mode2 mode3...] clock horz_timing vert_timing flags
              where clock is a clock in MHz (as an integer! Has to be known by
              the driver.  (one of the set clocks, or the exact half of one)).
              Only clocks in a clocks command issued before the define can  be

              You  may  use  :n  to  specify  the  n-thclock  (n = 0 .. 31 for

              horz_timing  is  four  integers:  hdisp  h_sync_strt  h_sync_wid

              vert_timing has the same format but for vertical.

              You  may  specify  one  or more flags out of: Interlace, +vsync,
              -vsync, +hsync, or -hsync to select interlace mode and  polarity
              of sync signals. This format is almost the same Xfree uses, s.t.
              you may use their mode table and the modegen spreadsheet package
              for  mode  creation.  You  simple need to round the clock to the
              next integer, add the resolution instead of the timing name  for
              Xfree  and  replace the modeline keyword with define.  Here is a
              1024x768x256 mode as example:

              define 1024x768x256 80 1024 1024 1184 1312
                     768 768 772 791 +vsync -hsync


              define 1024x768x256 1024x768x32K 1024x768x64K
                     :11 1024 1024 1184 1312 768 768 772 791

              (yes any whitespace in a command is allowed, even a newline !)

              Both commands define the same timings (if the 11-th clock is 80)
              but  the first explicitly specifies the polarity of sync signals
              whereas the second declares that these timings are  also  to  be
              used for a 32K and 64K mode.

              The define command is privileged.

       There is one really dangerous option (except faking clocks). Please use
       it only if you are sure what you are doing. Wrong setup  will  lead  to
       multiple  components  accessing  your  bus at once and thus to probable
       hardware damage:

       setuplinear address size
              Sets up a linear frame buffer at address of size size (both  are
              given  in  MB).  If  the  values make sense (for example address
              <16MB for ISA cards) the linear aperture  is  setup.  Since  the
              Mach32-driver auto detects configured address itself, I strongly
              discourage use of this command. However I was asked  for  it  as
              some   PCI   mach32-cards   didn't  setup  the  linear  aperture

              Please ensure that the address range from address to  address  +
              size  (exclusively) is not used in your system. Obey that due to
              memory remapping for  example  16MB  Ram  may  exceed  the  16MB
              address limit.

              Valid  Mach32  values  for  size  are  1  and  4  (only 4 in PCI
              configurations), address + size have to be below 16MB  for  ISA,
              4GB for multiplexed PCI, and 128MB else. Example: (my setup)

              setuplinear 64 4

              for a 4MB linear frame buffer at address 0x4000000.

              It is also valid to specify setuplinear 0 0.  This will actually
              disable/de-configure any linear frame buffer. Useful to  disable
              mach32 aperture even if it is enabled in the EEPROM.

              The setuplinear command is privileged.

       blit subcommand1 subcommand2 ...
              This  is  a  command  to control the Mach32 support for oldstyle
              accelerator functions.

              Valid subcommands are bit, fill,  image,  and  hlinelist.   They
              enable  support  for  the  corresponding blit functions. Precede
              them with no to turn them off (no space after no  allowed).  Use
              memimage  to  emulate  the image blit using a linearframebuffer,
              which is usually much faster  for  Mach32.   Use  nomemimage  to
              never  use  this  emulation. On the Mach32 this emulation can be
              used in more resolutions than the actual  imageblit  accelerator
              function.  Again order is vital! (esp. for the *image commands).

              As  the Mach32 now has also new style vga_accel(3) support there
              are  now  also  the  subcommands:  settrans,  setrop,   fillbox,
              screencopy,   drawline,   putimage,   drawhlinelist,  putbitmap,
              screencopymono, setmode, polyline, polyhline, and  polyfillmode.
              Which  are  also  supported  with  a  leading no.  They allow to
              control  support  for  the  subfunctions  of  vga_accel(3).   In
              addition, memimage emulation applies to putimage as well.

              Some examples:

              blit image nomemimage
                     Use IO-style imageblt where possible. Don't emulate it in
                     any resolution.

              blit image memimage
                     Use emulated imageblt where possible.

              blit memimage image
                     Use IO-style imageblt where possible, and  the  emulation
                     where possible in the remaining modes.

              blit noimage
                     Disable support for imageblt.

              Mach32 default is:

              blit bit fill image hlinelist settrans setrop
                   fillbox screencopy drawline putimage
                   drawhlinelist putbitmap screencopymono
                   setmode polyline polyhline polyfillmode

              The blit command is not privileged.

       The  Mach32  has  also  a  few intermediate debug options for low level
       timing adjust.  They are:

       vfifo8 number
       vfifo16 number
       vfifo24 number
       vfifo32 number
       blank number
       latch number

       There also options which are useful to support broken Mach32  cards  or
       third  party  hardware  based  on  Mach32 which does not follow the ATI
       specifications completely. For example:

       vendor ati
       misc_ctl keep-off
       svgaclocks 9
       ramdac auto

       For details about these options see svgalib.mach32(7).  All of them are


       Very  old  svgalib  versions used a different style configuration file.
       For compatibility, svgalib can still parse these old options. Generally
       the  options  consist  of  one character (case sensitive) followed by a
       number. Whitespace characters (space, tab, newline) can be  used  after
       the characters m and M and the number.

       The  old  svgalib  versions  actually allowed a new option character to
       follow a number immediately.  The current parser requires  white  space
       after the numbers.

       Of course, you should not use these cryptic forms anymore. The obsolete
       commands are:

              Specify the mouse type like mouse number does.

       Mclass Specify the monitor class like monitor class does.

              Force usage of the number-th chipset driver  from  the  list  of
              supported drivers VGA(1), ET4000(2), Cirrus(3), TVGA(4), Oak(5),
              EGA(6),  S3(7),  ET3000(8),  Mach32(9),  GVGA6400(10),  ARK(11),
              ATI(12),   ALI(13),   Mach64(14),   C&T(15),  APM(16),  NV3(17),
              ET6000(18), VESA(19), MX(20), PARADISE(21), and RAGE(22).

              C0 reenables auto detection of the chipset (default).

       cflag  When using the EGA chipset driver, the  card  is  in  monochrome
              emulation mode for flag = 0 and in color emulation mode for flag
              = 1.




       svgalib(7), svgalib.et4000(7), svgalib.chips(7), svgalib.mach32(7),


       The newstyle configuration file was first implemented and documented by
       Michael  Weller  <>.  However, other people
       added new features.

       Finally this page was edited by  Michael  Weller  <eowmob@exp-math.uni->.

  All copyrights belong to their respective owners. Other content (c) 2014-2018, GNU.WIKI. Please report site errors to
Page load time: 0.126 seconds. Last modified: November 04 2018 12:49:43.