# You can actually use this file as a config file for svgalib by copying # it to /usr/local/lib/libvga.config. However this is not recommended # because of the size of this file. So better remove any unneeded lines # from this file before using it as config file. # As you have probably guessed already, everything between '#' 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. Multiple commands are allowed in one line # 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 being used. # However there is one difference: The new style config expects a blank # between each command. That is m2M4 won't work anymore. It would be # parsed as a single config command. You have to specify m2 M4 in this # situation. # The environment variable SVGALIB_CONFIG is parsed like a line in this # file after the real config file is parsed. Note that some config # commands are disabled in SVGALIB_CONFIG for safety by default. # Note that you will have to delete the # before the example config commands # to activate them. # General options (handled by libvga): # Mouse setting: # mouse mousetype where mousetype is one of: # Microsoft, MouseSystems, MMSeries, Logitech, Busmouse, or none. # That is for example: # mouse Microsoft # mouse MouseSystems # mouse MMSeries # mouse Logitech # mouse Busmouse # mouse none # You can also specify the type by numbers: # mouse 0 # Microsoft # mouse 1 # MouseSystems # mouse 2 # MMSeries # mouse 3 # Logitech # mouse 4 # Busmouse # mouse 9 # none # Or in old style: # m0 # Microsoft # m1 # MouseSystems # m2 # MMSeries # m3 # Logitech # m4 # Busmouse # m9 # none # Whitespace between m and the digit is allowed. # Monitor setting: # monitor monitor class where monitor class is a digit from 0 to 6 or the # 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 # Everything above 59 is considered as monitor 6. # For compatibility the following are also supported: # M0 # Max horizontal sync is 31.5 kHz # M1 # Max horizontal sync is 35.1 kHz # M2 # Max horizontal sync is 35.5 kHz # M3 # Max horizontal sync is 37.9 kHz # M4 # Max horizontal sync is 48.3 kHz # M5 # Max horizontal sync is 56.0 kHz # M6 # No restrictions. # Whitespace between M and the digit is allowed. # This command is not allowed in SVGALIB_CONFIG by default. # Chipset enforcement: If auto detection fails you may force detection of # you chipset with "chipset type" where type is (currently ;) ) one of # VGA, ET4000, Cirrus, TVGA, Oak, EGA, S3, ET3000, or Mach32 # Examples: # chipset VGA # chipset ET4000 # chipset Cirrus # chipset TVGA # chipset Oak # chipset EGA # chipset S3 # chipset ET3000 # chipset Mach32 # There is also an old style way for this: # C1 # chipset VGA # C2 # chipset ET4000 # C3 # chipset Cirrus # C4 # chipset TVGA # C5 # chipset Oak # C6 # chipset EGA # C7 # chipset S3 # C8 # chipset ET3000 # C9 # chipset Mach32 # C0 # Auto-detect. # Warning, incorrect settings may damage your hardware. # No whitespace is allowed between the C and the digit. # This command is not allowed in SVGALIB_CONFIG by default. # If the size of memory or additional info is misdetected use this form: # 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. Values you have to specify to force dac type # and type of memory-aperture for mach32 can be found in mach32.h # This form is also not allowed in SVGALIB_CONFIG by default. # Specific options are required for the EGA-driver: # monotext # Card is in monochrome emulation mode # colortext # Card is in color emulation mode # Old style form: # c0 # Card is in monochrome emulation mode # c1 # Card is in color emulation mode # No whitespace is allowed between the c and the digit. # This command is not allowed in SVGALIB_CONFIG by default. # Miscanellous options: # verbose # Mach32: show messages while processing all info to build up a # mode table. # quiet # Turn verbose messages off (default) # nolinear # Inhibit use of a linear mmaped frame buffer. # linear # Allow (not enforce!) use of a linear mmaped frame buffer. # overrideenable # Allow "dangerous" commands in SVGALIB_CONFIG. # Options that may be useful for all drivers, but currently are only supported # by Mach32: # maxclock16 maxclk # The maximal 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. # maxclock16 2000 # maxclock24 maxclk # The maximal clock to use for 24bpp modes. (see above) # Experience showed that the mach32 default 49 is good for my 2MB VRAM card. # maxclock24 49 # 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: # maxclock32 39 # maxclock8 maxclk # Just for completeness the same for 8bpp modes. # default is: # maxclock8 2000 # Thus you can consider it switched off. # 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. # In difference to Xconfig only integers allowed. # 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. # 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 maybe possible just to take the 18811-1 line. # Sometimes a mode cannot be realized with the logical linelength = pixels in # a row * bytes per pixel. (true for Mach32 800x600). The default behavior # of mach32 is to adjust xbytes in the info table appropriate, but you can # select: # variablelinelength # Adjust xbytes appropriate, thus overriding the standard # svgalib mode. This may yield to problems with ..umm.. not well designed # applications. This is the mach32 default. # duplicatelinelength # Don't touch the standard mode but create an exact # copy, an 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. # strictlinelength # 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. # 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 of: # Inhibit 800x600x32K 800x600x64K 800x600x16M # Disallow the maybe toasted # mach32 800x600 modes. # setlinelength length mode1 [mode2 mode3...] # Force the logical line length # (xbytes) in the given modes to length pixels (not bytes!) # see also variablelinelength, strictlinelength, duplicatelinelength above. # setlinelength 800 800x600x32K 800x600x64K 800x600x16M # define mode1 [mode2 mode3 .... ] clock horz_timing vert_timing flags # where clock is a clock in MHz (in integer! Has to be known by the driver. # (one of the set clocks, or the exact half of them) only clocks in a clocks # before the define can be used. # You may use :n to specify the n-th clock (n=0..31 for mach32). # horz_timing are four ints: hdisp h_sync_strt h_sync_wid h_total. # vert_timing has the same format but for vertical. You may specify one or # more flags out of: Interlace, +vsync, -vsync, +hsync, -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 spreadsheat # package for mode creation. Here is a 1024x768x256 mode as example: #define 1024x768x256 80 1024 1024 1184 1312 768 768 772 791 +vsync -hsync # or #define 1024x768x256 1024x768x32K 1024x768x64K # :11 1024 1024 1184 1312 768 768 772 791 # (yes any whitespace in a command is allowed, even \n !) # 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 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 correctly. # Please ensure that the address range from address to address+size is free # in your system. Obey that due to memory re mapping 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, 4096GB for multiplexed PCI, # and 128MB else. Example: (my setup) # setuplinear 64 4 # 4MB linear frame buffer at 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. # There is one additional option that makes only sense for mach32: # mach32eeprom filename # The mach32 has an EEPROM that is filled with predefined modes that can be # set very convenient with a config utility from ATI. These settings will # be used by svgalib. Unfortunately reading the mach32eeprom causes noise # on the video signal. If the resulting flicker annoys you or screws your # monitor up, specify a filename from which to read the contents of the # EEPROM. If the file cannot be read, the EEPROM is read out and the file # is created. There is a very simple checksum put into this file. Although # it can easily fooled, don't change the file except you know very very # well what you are doing. Also as long as the file exists changes in the # mach32 EEPROM have no effect.. delete the file to recreate an updated # version on next use of svgalib. You should ensure that the permissions of # the file don't allow usual users to change it. (This may happen if umask # has a bad value when svgalib creates the file) # Example: # mach32eeprom /etc/mach32.eeprom # The mach32 has also a few intermediate options for low level timing adjust. # These are: # vfifo8 number # vfifo16 number # vfifo24 number # vfifo32 number # blank number # latch number # See README.mach32 for details