1libvga.config(5)              Svgalib User Manual             libvga.config(5)
2
3
4

NAME

6       libvga.config, svgalibrc - the svgalib configuration file
7

DESCRIPTION

9       The  svgalib configuration is usually located in /etc/vga/libvga.config
10       though one can reconfigure this location when recompiling svgalib.
11
12       In the configuration file, everything between a # and the  end  of  the
13       line  is  ignored.  Empty  lines are also ignored. Since the driver you
14       will use may not know all config options  here,  unknown  commands  are
15       silently  ignored. Please think of that when something does not work as
16       you expect. I know this is a nuisance because  misformed  configuration
17       statements  do  not  cause errors. Multiple commands are allowed in one
18       line, and commands can exceed lines.
19
20       Actually, svgalib simply reads a list of  whitespace  separated  tokens
21       from  the file until it finds one it knows and it then assumes the fol‐
22       lowing tokens to be arguments of that command until one is  encountered
23       which may not be an argument.
24
25       New style options are in general case insensitive whereas the old style
26       options are case sensitive. The old style options are included to allow
27       for  old config files still being used. For completeness they are docu‐
28       mented in the OBSOLETE COMMANDS section. You should not use  them  any‐
29       more.
30
31       In  addition,  svgalib(7)  parses  the  files ~/.svgalibrc and the file
32       given in the environment variable SVGALIB_CONFIG_FILE.
33
34       Finally, the contents of the environment  variable  SVGALIB_CONFIG  are
35       parsed like the files before.
36
37       Configuration commands which control hardware settings that might cause
38       harm to your hardware are called privileged.  By default the privileged
39       commands  can only be used in the main configuration file /etc/vga/lib‐
40       vga.config for safety (s.t. a non root user can not cause any  harm  to
41       your hardware by misconfiguring svgalib(7)).
42
43       Enable them in the other locations as well with the command overrideen‐
44       able in the main config file.   BEWARE!   This  allows  every  user  to
45       change the monitor and clocks (and other configs) and thus damaging the
46       hardware. I strongly discourage the use of  overrideenable  except  for
47       debugging/testing purposes.
48
49

REQUIRED CONFIGURATION

51       Please  do  not allow the vastness of options to confuse you. Generally
52       svgalib uses well choosen defaults and is  able  to  autodetect  every‐
53       thing.  Thus  generally you don't need to specify much. When installing
54       svgalib it provides a sample /etc/vga/libvga.config file which contains
55       most of the required configuration. Just edit it to your needs.
56
57       Generally you only need to use:
58
59       mouse  To  specify if you use anything else then a Microsoft compatible
60              mouse.
61
62       mdev   If the mouse device file is not /dev/mouse which is generally  a
63              symbolic  link to the actual mouse device file. You will usually
64              need to use this command if you want to use the SpaceTec  Space‐
65              ball device (which is not your usual mouse).
66
67
68       setRTS, clearRTS, leaveRTS, setDTR, clearDTR, and leaveDTR
69              if your mouse needs it to enter your desired mouse protocol.
70
71       monitor, or (better) HorizSync and VertRefresh
72              to specify the capabilities of your monitor.
73
74
75   If you use the EGA chipset driver
76       monotext or colortext
77              to specify if your EGA card is in monochrome or color configura‐
78              tion.
79
80   If you use the Mach32 chipset driver
81       You should consider reading svgalib.mach32(7).
82
83       Clocks clock1 clock2 clock3 ...
84              to specify the Mach32 clocks. This is mandatory. However, if you
85              omit   it.  svgalib  will  autodetect  clocks  and  modify  your
86              /etc/vga/libvga.config file and abort. After this, every svgalib
87              application started will find the proper Clocks command.
88
89       mach32eeprom /etc/vga/mach32.eeprom
90              is recommended to avoid slowish reads of the Mach32 EEPROM which
91              will also cause annoying screen flickering.
92
93   If you use the Mach64 chipset driver
94       Chipset Mach64
95              if you want to use the experimental pre-alpha driver
96
97   If you use the S3 chipset driver
98       I don't have much knowledge on the S3, but it  seems  to  me  that  you
99       need:
100
101
102       Clocks clock1 clock2 ...
103              to  specify  the  clocks (take them from your Xfree86 configura‐
104              tion).
105
106       or
107
108       ClockChip icd2061a number
109              if you have an Icd2061a clockchip.
110
111       Ramdac chipname
112              if your Ramdac is not detected properly.
113
114       Dacspeed speed
115              if the default choosen is not right (probably too restrictive).
116
117       The remaining options are really only to be used in  case  of  problems
118       which you'll not generally encounter.
119
120   If you use the VESA chipset driver
121       VesaText
122              forces  the  driver  to set 80x25 text mode, before any standard
123              vga mode setting. Fixes text mode restoring with many cards,  as
124              well as standard VGA modes.
125
126       VesaSave
127              selects  the  bitmap  to save and restore, using VESA functions.
128              see VESA documentation for bits' meanings. The default  is  1110
129              (=14) which is good for most cards, but some give better results
130              with other numbers.
131
132

GENERAL OPTIONS (HANDLED BY THE MAIN MODULE)

134   Mouse configuration
135       mouse mousetype
136              where mousetype is one of:  Microsoft,  MouseSystems,  MMSeries,
137              Logitech,  Busmouse, PS2, MouseMan, gpm, Spaceball, none, Intel‐
138              liMouse, or IMPS2.  mousetype can also be a number (0 -  9)  for
139              the keywords Microsoft - none.
140
141              gpm allows for (hopefully) peaceful interaction with gpm, Space‐
142              ball enables support for the  6-axes  Spacetec  Spaceball  mouse
143              (well,  probably  more like a trackball), IntelliMouse and IMPS2
144              refer to the Microsoft IntelliMouse or Logitech MouseMan+, where
145              IntelliMouse  is  for  serial port and IMPS2 for such a mouse on
146              the PS/2 port.
147
148              Note that it is not possible to  specify  the  Microsoft  Intel‐
149              liMouse  or  Logitech MouseMan+ by a number. This is due to his‐
150              torical and compatibility reasons.
151
152
153       mouse_override
154              This command is only available if ALLOW_MOUSE_OVERRIDE  was  set
155              in   Makefile.cfg  when  svgalib  was  compiled  (which  is  the
156              default).
157
158              If given, svgalib ignores any mouse type the  program  specifies
159              but uses the type configured with the mouse command.
160
161              For  example,  DOOM does not recognize MouseMan as a valid mouse
162              type and defaults the mouse type to MouseSystems.  This  command
163              allows  to  make  svgalib ignore whatever DOOM specifies and use
164              MouseMan anyway.
165
166
167       mdev mousedevice
168              Usually /dev/mouse (the default) will be a  link  to  the  mouse
169              device.   However, esp. with the Spacetec Spaceball you may want
170              to specify a different device for svgalib(7) to use:
171
172              mdev /dev/ttyS0 # mouse is at /dev/ttyS0
173
174
175       Some multiprotocol mice use the state of RTS and DTR to find out  which
176       protocol to enable:
177
178
179       setRTS set the RTS wire.
180
181       clearRTS
182              clear the RTS wire.
183
184       leaveRTS
185              leave the RTS wire alone (default) (Wire is usually set)
186
187       setDTR set the DTR wire.
188
189       clearDTR
190              clear the DTR wire.
191
192       leaveDTR
193              leave the DTR wire alone (default) (Wire is usually set)
194
195
196       For  example my mouse can emulate Microsoft and MouseSystems.  It needs
197       a low RTS to go into MouseSystems mode. Thus I use:
198
199       mouse MouseSystems clearRTS
200
201       Still I could just use mouse Microsoft and use the mouse with that pro‐
202       tocol..  But then only 2 buttons instead of 3 are supported (not that I
203       know many svgalib programs that uses more than 2 buttons.)
204
205       Other mice might need clearDTR as well or one set and clear. Try  your‐
206       self.
207
208       Note:  Having  crtscts  handshake enabled on the mouse tty may interfer
209       with this options. Do not do that.
210
211       Finally, a special goodie for wheel mice:
212
213
214       mouse_fake_kbd_event upscancode downscancode
215              sends a fake keyboard event to the program when the wheel  on  a
216              Microsoft  IntelliMouse,  Logitech  MouseMan+,  or similar wheel
217              mouse is turned.
218
219              The up and down scancodes are the scancodes of the keys to simu‐
220              late when the wheel is turned up and down, respectively.
221
222              The following can be specified for the scancodes: letters (A-Z),
223              numbers (0-9), function keys (F1-F12), or any of the following -
224              ESCAPE,    MINUS,    EQUAL,    BACKSPACE,   TAB,   BRACKET_LEFT,
225              BRACKET_RIGHT, ENTER, LEFTCONTROL, SEMICOLON, APOSTROPHE, GRAVE,
226              LEFTSHIFT,  BACKSLASH, COMMA, PERIOD, SLASH, RIGHTSHIFT, KEYPAD‐
227              MULTIPLY, LEFTALT, SPACE, CAPSLOCK,  NUMLOCK,  SCROLLLOCK,  KEY‐
228              PAD7,  CURSORUPLEFT,  KEYPAD8, CURSORUP, KEYPAD9, CURSORUPRIGHT,
229              KEYPADMINUS, KEYPAD4, CURSORLEFT, KEYPAD5, KEYPAD6, CURSORRIGHT,
230              KEYPADPLUS,  KEYPAD1,  CURSORDOWNLEFT, KEYPAD2, CURSORDOWN, KEY‐
231              PAD3,  CURSORDOWNRIGHT,  KEYPAD0,  KEYPADPERIOD,   KEYPADCENTER,
232              RIGHTCONTROL,   CONTROL,  KEYPADDIVIDE,  PRINTSCREEN,  RIGHTALT,
233              BREAK, BREAK_ALTERNATIVE, HOME, CURSORBLOCKUP,  PAGEUP,  CURSOR‐
234              BLOCKLEFT,  CURSORBLOCKRIGHT,  END,  CURSORBLOCKDOWN,  PAGEDOWN,
235              INSERT.
236
237              Note that this option has no effect unless the  IntelliMouse  or
238              IMPS2  mouse  type is used (see above). Also note that the simu‐
239              lated keypresses are instantaneous, so they cannot be  used  for
240              functions  that  require  a  key  to  be held down for a certain
241              length of time.
242
243              This example simulates a press of the left bracket ([) when  the
244              wheel is turned up and a press of the right bracket (]) when the
245              wheel is turned down (good for selecting items in Quake II):
246
247              mouse_fake_kbd_event BRACKET_LEFT BRACKET_RIGHT
248
249
250   Mouse acceleration
251       Svgalib versions 1.3.0 and later use the following commands to  control
252       the logarithmic mouse acceleration:
253
254              mouse_force
255                     If given, force use of input parameters even if they seem
256                     strange.
257
258              mouse_maxdelta <integer>
259                     Set max delta BEFORE acceleration.
260
261              mouse_accel_maxdelta <integer>
262                     Set max delta AFTER acceleration.
263
264              mouse_accel_thresh <integer>
265                     Set acceleration threshold.
266
267              mouse_accel_power <float>
268                     Set input variable for power mode.
269
270              mouse_accel_mult <float>
271                     Set acceleration factor.
272
273              mouse_accel_type {0|off|normal|power|linear}
274                     Set the type of acceleration. The following  strings  are
275                     valid values:
276
277                     0 or off
278                            No acceleration.
279
280                     normal No   acceleration   while   delta   is  less  than
281                            mouse_accel_thresh     but      multiplied      by
282                            mouse_accel_mult if more.
283                            Originally   done   by  Mike  Chapman  <mike@para‐
284                            noia.com>.
285
286                     power  The acceleration factor is  a  power  function  of
287                            delta until it reaches mouse_accel_mult After that
288                            it's a simple multiplication. Basically it's  like
289                            the  normal mode but the acceleration factor grows
290                            as you move your mouse faster and faster, not just
291                            turns  in  and  out.  If  the  acceleration factor
292                            reaches mouse_accel_mult it  turns  into  a  plain
293                            multiplication.
294
295                            Threshold  has the same meaning as in normal mode.
296                            The one I use for *uaking... :)
297
298                            It is calculated like this:
299
300                            if (abs(dx) > 1) /* to prevent  losing  resolution
301                            */
302                              dx = (abs(dx) >=
303                                     mouse_accel_thresh ) ?
304                                   (float)dx *
305                                    mouse_accel_mult :
306                                   (float)dx *
307                                    m_accel_powertable[abs(dx)];
308
309                     linear The  acceleration  factor  grows  linear  with the
310                            delta until it reaches mouse_accel_thresh.   After
311                            that  it  is a simple mutiplication.  (I know that
312                            it can be done with setting  mouse_accel_power  to
313                            1,  but it was one minute to implement... and uses
314                            no memory... and...)
315
316                            It is calculated like this:
317
318                            if (abs(dx) > 1)
319                              dx = (abs(dx) >=
320                                     mouse_accel_thresh ) ?
321                                   (float)dx *
322                                    mouse_accel_mult :
323                                   (float)dx * abs(dx) *
324                                    mouse_accel_mult /
325                                    mouse_accel_thresh ;
326
327              The enhanced acceleration  was  done  by  101  (Attila  Lendvai)
328              <101@kempelen.inf.bme.hu>
329
330
331   Joystick configuration
332       As  of now, svgalib supports up to four joystick devices. You must have
333       joystick support in your kernel to support this.
334
335
336       joystick0 device
337              sets the device name to use for joystick 0.  The  commands  joy‐
338              stick1,  joystick2  and joystick3 configure the other joysticks.
339              By default the names /dev/js0, /dev/js1, /dev/js2  and  /dev/js3
340              are used.
341
342
343   Keyboard configuration
344       kbd_fake_mouse_event scancode [flag(s)] command [argument]
345              , as it says, sends a fake mouse event to the program.  Scancode
346              is a raw scancode as you  can  find  them  in  <keyboard/vgakey‐
347              board.h>.
348
349
350              Supported flag(s) are:
351
352              down   trigger event when the key is pressed (default).
353
354              up     the opposite.
355
356              both   trigger in both case, if pressed or released.
357
358              repeat repeat  events  if  the  key  is  kept  pressed  (off  by
359                     default).
360
361
362              Supported commands are:
363
364              delta[xyz]
365                     send a fake delta event as if you have moved your  mouse.
366                     If  the  parameter  is  off or on it will turn off/on the
367                     respective mouse axis (requires a parameter, of course)
368
369              button[123]
370                     send a fake event that the mouse  button  is  pressed  or
371                     released as given by the parameter (pressed or released)
372
373
374              Here are some examples:
375
376              This  is  one  I use in *uake: it turns around, looks down a bit
377              and when the key is released it does the opposite,  so  it  gets
378              back  to  the  starting  state.  With this one and the help of a
379              rocket you can fly though the  whole  map  :)  (Scancode  28  is
380              <Enter>):
381
382                  kbd_fake_mouse_event 28 both deltax 8182
383                                          down deltay -1500
384                                          up deltay 1500
385
386              This  one  will switch off the y axis of the mouse while the key
387              <Right Ctrl> is kept pressed.
388
389                  kbd_fake_mouse_event 97 down deltay off
390                                          up deltay on
391
392              This one is the same as if you were pressing the left mouse but‐
393              ton.  (But  if  you  move  your mouse then the button state will
394              reset even if you keep <Right Ctrl> down...)
395
396                  kbd_fake_mouse_event 97 down button1 pressed
397                                          up button1 released
398
399              NOTE: This does only work when the keyboard is in  raw  keyboard
400              mode!
401
402              Yet  another  feature  brought  to  you  by 101 (Attila Lendvai)
403              <101@kempelen.inf.bme.hu>
404
405
406       nosigint
407              This command disables generation of a SIGINT signal when  <Ctrl-
408              C> is pressed.
409
410              This  works  regardless of ordinary or raw keyboard mode (albeit
411              the hot key might be different from <Ctrl-C> in the first case).
412
413              Note that this is a very dangerous option. Disabling SIGINT will
414              lock  you  in programs which can only by quit by <Ctrl-C>!  How‐
415              ever, there were request for it for Quake playing.
416
417       sigint (default)
418              Enables generation of SIGINT.
419
420
421   Monitor configuration
422       HorizSync min_kHz max_kHz
423       VertRefresh min_Hz max_Hz
424              specifies the range of frequencies acceptable to  your  monitor.
425              They  obsolete the monitor settings below, and this shouldn't be
426              used if HorizSync and VertRefresh are defined. Examples:
427
428              HorizSync 31.5 35.5
429              VertRefresh 50 70
430
431
432       monitor monitor_class
433              where monitor_class is a digit 0 - 6 or the  maximal  horizontal
434              frequency in kHz. Examples:
435
436              monitor 0 # Max horizontal sync is 31.5 kHz
437              monitor 1 # Max horizontal sync is 35.1 kHz
438              monitor 2 # Max horizontal sync is 35.5 kHz
439              monitor 3 # Max horizontal sync is 37.9 kHz
440              monitor 4 # Max horizontal sync is 48.3 kHz
441              monitor 5 # Max horizontal sync is 56.0 kHz
442              monitor 6 # No restrictions.
443
444              For  your  convenience  you  may specify the max horizontal sync
445              explicitly. The correct class will the be chosen.  You  may  use
446              floats consisting of digits and a decimal point for this too:
447
448              monitor 40.0 # equivalent to monitor 3
449
450              This command is privileged.
451
452
453   Mode timings
454       It  is  now possible to define modetimings for some cards (see the info
455       on your card in svgalib(7)).  The syntax is:
456
457
458       modeline label pxcl HDsp HSS HSE HTot VDsp VSS VSE VTot flags
459
460              label  string
461                     (ignored by svgalib) mainly there to be  compatible  with
462                     XF86Config.    I   use  the  format  "Width  x  Height  @
463                     Vert.Refresh", but that's just personal taste...
464
465              pxcl   float
466                     the pixel clock in MHz
467
468              HDsp
469              VDsp   integer
470                     size of the visible area (horizontal/vertical)
471
472              HSS
473              VSS    integer
474                     Sync start (horizontal/vertical)
475
476              HSE
477              VSE    integer
478                     Sync end (horizontal/vertical)
479
480              HTot
481              VTot   integer
482                     Total width/height (end of back porch)
483
484
485              flags  +hsync -hsync +vsync -vsync interlace interlaced
486                     doublescan Sync polarity, interlace mode
487
488       Everything should be on one line.  The values for the  horizontal  tim‐
489       ings must be multiples of eight.
490
491       These are prefered over the default timings (if monitor and chipset can
492       handle them).  The format is identical to the one used by XFree86,  but
493       the label following the modeline keyword is ignored by vgalib.
494
495       Here some examples:
496
497       modeline 640x480@100 43 640 664 824 848 480 483 490 504
498       modeline 800x600@73 50 800 856 976 1024 600 637 643 666
499       modeline 1024x768@75 85 1024 1048 1376 1400 768 771 780 806
500
501       IMPORTANT!   Not  all drivers, that is SVGA cards, use the values. Only
502       drivers using timing.c. As of this writing, drivers using this  feature
503       are: Ark, Cirrus, Chips & Technologies, Et6000, S3.
504
505       The  Mach32  driver  provides a similar feature separately, you have to
506       use the define command described below.
507
508       ET4000 (and to some extent EGA) allow one to use a binary file  created
509       by  some  utility. All other chipset driver use predefined timings that
510       are   hardcoded   in   register   dumps   within   the   drivers.   See
511       svgalib.et4000(7) for more information.
512
513
514   Chipset detection
515       Usually  svgalib  does a good job autodetecting your hardware. However,
516       if auto detection fails (or you want to fall back to a simpler  driver,
517       say VGA, as a bug work around), you may force detection of your chipset
518       with
519
520
521       chipset type
522              where type is (currently) one of:  VGA,  ET4000,  Cirrus,  TVGA,
523              Oak,  EGA,  S3, ET3000, Mach32, GVGA6400, ARK, ATI, ALI, Mach64,
524              C&T, APM, NV3, ET6000, VESA, MX, PARADISE, and RAGE.
525
526              You can also specify a number in range 1  -  22 to  specify  the
527              type-th chipset type or 0 to enforce autodetection.
528
529              Warning, incorrect settings may damage your hardware.  This com‐
530              mand is privileged.
531
532
533       chipset type param1 param2
534              use this form if the size of memory or an additional  configura‐
535              tion option is misdetected. For example:
536
537              chipset Mach32 0 2048
538
539              Note  that  always  two  integers  have to be specified. Usually
540              (Mach32) the second parameter is the memory amount. Look at  the
541              *_init  function of the specific device driver sources or infor‐
542              mation on that type of cards in svgalib(7).
543
544              Note that there is a more  convenient  command  setuplinear  for
545              enforcing specific memory-aperture configurations for Mach32
546
547              This command is privileged.
548
549
550   Specific options required for the EGA-driver.
551       monotext
552              Card is in monochrome emulation mode
553
554       colortext
555              Card is in color emulation mode
556
557              This command is privileged.
558
559
560   RAMDAC configuration
561       Some chipsets (e.g. S3 and ARK) allow specifying a RAMDAC type. If your
562       RAMDAC is not autodetected, you can try specifying it:
563
564       Ramdac Sierra32K
565       Ramdac SC15025
566       Ramdac SDAC
567              S3 SDAC
568       Ramdac GenDAC
569              S3 GenDAC
570       Ramdac ATT20C490
571              AT&T 20C490, 491, 492 (and compatibles)
572       Ramdac ATT20C498
573              AT&T 20C498
574       Ramdac IBMRGB52x
575              IBM RGB524, 526, 528 (and compatibles)
576
577       BEWARE!  The Mach32 driver features an own  ramdac  command  (which  is
578       usually not required). If you have a Mach32, see svgalib.mach32(7).
579
580
581       Dacspeed speed
582              speed  is a floating point number in MHz (like in Dacspeed40.0")
583              specifying the maximal allowable pixel clock of  the  Ramdac  in
584              use.  Currently  this option is only supported by the S3 driver.
585              The Mach32 driver supports  maxclock8,  maxclock16,  maxclock24,
586              and  maxclock32  commands which have a similar effect. Neverthe‐
587              less, the Mach32 has a very good idea on the capabilities of the
588              Ramdac in use. The settings are more intended to specify the VGA
589              memory bandwidth.
590
591
592   Pixel clocks
593       Clocks list of clock values as floats or ints
594
595              Some chipsets need a list of dot clocks for  optimum  operation.
596              Some  includes  or  supports  a programmable clock chip.  You'll
597              need to specify them here.
598
599              Fixed clocks example: (The following is just an example, get the
600              values for your card from you X setup)
601
602              Clocks  25.175  28.3 40 70 50 75 36 44.9 0 118 77 31.5 110 65 72
603              93.5
604
605              BEWARE!  The Clocks command for the Mach32 features only integer
606              clocks.  Please  round your clocks to the next integer data. The
607              Mach32 only uses these values to check monitor requirements  and
608              to  compare  the quality of modes. The rounding errors are of no
609              importance there as the difference in the resulting monitor tim‐
610              ings is barely measurable. See the Mach32 section below.
611
612       Clockchip ICD2061A
613              Configure  for  a  programmable clockchip.  ICD2061A is the only
614              one supported right now.
615
616
617   Miscanellous options
618       security revoke-all-privs
619              Make  sure  it  is  impossible  to  regain  root  access   after
620              vga_init(3) was called. (default)
621
622       security compat
623              For  compatibility  to  pre 1.2.11, do not close a security hole
624              using saved uids.
625
626       verbose
627              Mach32: show messages while processing all info to  build  up  a
628              mode table.
629
630       quiet  Turn verbose messages off (default).
631
632       nolinear
633              Inhibit use of a linear mmaped frame buffer.
634
635       linear Allow (not enforce!) use of a linear mmaped frame buffer.
636
637       overrideenable
638              Allow privileged commands outside the main configuration file.
639
640
641   Common options currently used by Mach32 only
642       Options that may be useful for all drivers, but currently are only sup‐
643       ported by Mach32 (Please read svgalib.mach32(7) if you use one):
644
645
646       maxclock16 maxclk
647              The maximum pixel clock to use for 16bpp modes. This is used  by
648              Mach32  to  find out which settings may be used for 16bpp modes.
649              the Mach32 default for this is  2000,  thus  it  is  effectively
650              switched off.  maxclk must be an integer.
651
652
653       maxclock24 maxclk
654              The maximum clock to use for 24bpp modes. (see above) Experience
655              showed that the Mach32 default 49 is good for my 2MB VRAM card.
656
657
658       maxclock32 maxclk
659              The same for 32bpp modes (24bpp with one fill  byte  for  faster
660              memory  access  (not  fully  implemented (esp. for Mach32) yet).
661              Mach32 default (good for my VRAM card) is 39.
662
663
664       maxclock8 maxclk
665              Just for completeness the same for 8bpp modes  (I  doubt  anyone
666              needs it), default is 2000 to disable this feature.
667
668
669       The maxclock commands are privileged.
670
671
672       clocks list of clocks
673              Sets  the  frequencies  of  the  clocks  the chips can generate.
674              Exactly 16 values have to be specified for  mach32.   Use  0  to
675              disable a specific clock.
676
677              Note  that  the  mach32  can  divide clocks by 2. Thus there are
678              actually 32 clocks And you can also use the divided clocks in  a
679              define  command.   On  contrary to Xfree96 or the clocks command
680              above only integers are allowed for Mach32. Simply round them to
681              the nearest integer.
682
683              This line is mandatory for Mach32. If it is not there it will be
684              auto detected and added at the beginning of the config file. The
685              program  will  then  exit and when you start it next, everything
686              should be ok.
687
688              Common clock values for Mach32:
689
690              Clock chip 18811-0:
691                     clocks 43 49 92 36 50 56 0 45
692                            30 32 110 80 40 45 75 65
693
694
695              Clock chip 18811-1:
696                     due to Xfree86 info valid for: Ultra pro ISA,  Ultra  pro
697                     EISA, Ultra pro VLB(68800-3)
698
699                     clocks 100 126 92 36 50 56 0 45
700                            135 32 110 80 40 45 75 65
701
702
703              Clock chip 1881 (ICS2494):
704                     due to Xfree86 info valid for: Ultra pro VLB (6880006)
705
706                     clocks 18 22 25 28 36 44 50 56
707                            30 32 37 39 40 0 75 65
708
709              In  my  own  correspondence with ATI they say every Mach32 would
710              have a 18811-1, so it  should  be  possible  just  to  take  the
711              18811-1  line.   However I have now reports of third party cards
712              and motherboards with on board Mach32 chips, so be careful.
713
714              Please read svgalib.mach32(7) for additional info on clocks.
715
716              The clocks command is privileged.
717
718
719       variablelinelength
720              Sometimes a mode cannot be realized with the logical  linelength
721              = pixels in a row * bytes per pixel. (definitely true for Mach32
722              800x600). The default behavior of Mach32  is  to  adjust  xbytes
723              (see vga_getmodeinfo(3)) in the info table appropriately.
724
725              This  command enforces this default operation and adjusts xbytes
726              appropriately, thus overriding the standard svgalib  mode.  This
727              may  yield  to  problems with ..umm.. not well designed applica‐
728              tions.
729
730
731       duplicatelinelength
732              Don't touch the standard  mode  but  create  an  exact  copy,  a
733              dynamic  mode,  with the adjusted xbytes value.  Expect noise at
734              some pixels in 800x600 for more than 256 colors on  Mach32  when
735              not using the dynamic mode.
736
737
738       strictlinelength
739              Same as above but delete the standard mode thus creating the non
740              conforming xbytes modes only as dynamic modes.
741
742
743       To enforce the standard linelength for non-conforming  modes  use  set‐
744       linelength below.
745
746       The linelength commands are not privileged.
747
748       In  the  following  commands a mode is specified with horzXvertXcolors.
749       Valid settings for colors in the mach32 driver are: 256, 32K, 64K, 16M,
750       16M4.   16M4 is for the 16M colors with 32bpp modes. These are expected
751       to support slightly faster drawing.
752
753       Examples: 640x480x256, 1024x768x64K, etc...
754
755
756       inhibit mode1 [mode2 mode3...]
757              Switch the specified SVGA-Modes off. For example:
758
759              inhibit 800x600x32K 800x600x64K 800x600x16M
760
761              disallows the maybe toasted mach32 800x600 modes.
762
763              The inhibit command is not privileged.
764
765
766       setlinelength length mode1 [mode2 mode3...]
767              Force the logical line length (xbytes) in  the  given  modes  to
768              length pixels (not bytes!). See also variablelinelength, strict‐
769              linelength, and duplicatelinelength above. For example:
770
771              setlinelength 800 800x600x32K 800x600x64K 800x600x16M
772
773              sets the linelength, and thus xbytes, for the 800x600  modes  to
774              the  equivalent  of  800 pixels. For Mach32 this will give badly
775              designed applications an 800x600 with which they can cope.  How‐
776              ever, the Mach32 will generate a noisy video signal in some con‐
777              figurations.
778
779              The setlinelength command is not privileged.
780
781
782       define mode1 [mode2 mode3...] clock horz_timing vert_timing flags
783              where clock is a clock in MHz (as an integer! Has to be known by
784              the driver.  (one of the set clocks, or the exact half of one)).
785              Only clocks in a clocks command issued before the define can  be
786              used.
787
788              You  may  use  :n  to  specify  the  n-thclock  (n = 0 .. 31 for
789              mach32).
790
791              horz_timing  is  four  integers:  hdisp  h_sync_strt  h_sync_wid
792              h_total.
793
794              vert_timing has the same format but for vertical.
795
796              You  may  specify  one  or more flags out of: Interlace, +vsync,
797              -vsync, +hsync, or -hsync to select interlace mode and  polarity
798              of sync signals. This format is almost the same Xfree uses, s.t.
799              you may use their mode table and the modegen spreadsheet package
800              for  mode  creation.  You  simple need to round the clock to the
801              next integer, add the resolution instead of the timing name  for
802              Xfree  and  replace the modeline keyword with define.  Here is a
803              1024x768x256 mode as example:
804
805              define 1024x768x256 80 1024 1024 1184 1312
806                     768 768 772 791 +vsync -hsync
807
808              or
809
810              define 1024x768x256 1024x768x32K 1024x768x64K
811                     :11 1024 1024 1184 1312 768 768 772 791
812
813              (yes any whitespace in a command is allowed, even a newline !)
814
815              Both commands define the same timings (if the 11-th clock is 80)
816              but  the first explicitly specifies the polarity of sync signals
817              whereas the second declares that these timings are  also  to  be
818              used for a 32K and 64K mode.
819
820              The define command is privileged.
821
822
823       There is one really dangerous option (except faking clocks). Please use
824       it only if you are sure what you are doing. Wrong setup  will  lead  to
825       multiple  components  accessing  your  bus at once and thus to probable
826       hardware damage:
827
828
829       setuplinear address size
830              Sets up a linear frame buffer at address of size size (both  are
831              given  in  MB).  If  the  values make sense (for example address
832              <16MB for ISA cards) the linear aperture  is  setup.  Since  the
833              Mach32-driver auto detects configured address itself, I strongly
834              discourage use of this command. However I was asked  for  it  as
835              some  PCI  mach32-cards  didn't  setup  the linear aperture cor‐
836              rectly.
837
838              Please ensure that the address range from address to  address  +
839              size  (exclusively) is not used in your system. Obey that due to
840              memory remapping for  example  16MB  Ram  may  exceed  the  16MB
841              address limit.
842
843              Valid Mach32 values for size are 1 and 4 (only 4 in PCI configu‐
844              rations), address + size have to be below 16MB for ISA, 4GB  for
845              multiplexed PCI, and 128MB else. Example: (my setup)
846
847              setuplinear 64 4
848
849              for a 4MB linear frame buffer at address 0x4000000.
850
851              It is also valid to specify setuplinear 0 0.  This will actually
852              disable/de-configure any linear frame buffer. Useful to  disable
853              mach32 aperture even if it is enabled in the EEPROM.
854
855              The setuplinear command is privileged.
856
857
858       blit subcommand1 subcommand2 ...
859              This  is  a  command  to control the Mach32 support for oldstyle
860              accelerator functions.
861
862              Valid subcommands are bit, fill,  image,  and  hlinelist.   They
863              enable  support  for  the  corresponding blit functions. Preceed
864              them with no to turn them off (no space after no  allowed).  Use
865              memimage  to  emulate  the image blit using a linearframebuffer,
866              which is usually much faster  for  Mach32.   Use  nomemimage  to
867              never  use  this  emulation. On the Mach32 this emulation can be
868              used in more resolutions than the actual  imageblit  accelerator
869              function.  Again order is vital! (esp. for the *image commands).
870
871              As  the Mach32 now has also new style vga_accel(3) support there
872              are now also the subcommands: settrans, setrop, fillbox, screen‐
873              copy,  drawline, putimage, drawhlinelist, putbitmap, screencopy‐
874              mono, setmode, polyline, polyhline, and polyfillmode.  Which are
875              also supported with a leading no.  They allow to control support
876              for the subfunctions of  vga_accel(3).   In  addition,  memimage
877              emulation applies to putimage as well.
878
879              Some examples:
880
881
882              blit image nomemimage
883                     Use IO-style imageblt where possible. Don't emulate it in
884                     any resolution.
885
886              blit image memimage
887                     Use emulated imageblt where possible.
888
889              blit memimage image
890                     Use IO-style imageblt where possible, and  the  emulation
891                     where possible in the remaining modes.
892
893              blit noimage
894                     Disable support for imageblt.
895
896              Mach32 default is:
897
898              blit bit fill image hlinelist settrans setrop
899                   fillbox screencopy drawline putimage
900                   drawhlinelist putbitmap screencopymono
901                   setmode polyline polyhline polyfillmode
902                   memimage
903
904              The blit command is not privileged.
905
906
907       The Mach32 has also a few intermediate debug options for low level tim‐
908       ing adjust.  They are:
909
910       vfifo8 number
911       vfifo16 number
912       vfifo24 number
913       vfifo32 number
914       blank number
915       latch number
916
917       There also options which are useful to support broken Mach32  cards  or
918       third  party  hardware  based  on  Mach32 which does not follow the ATI
919       specifications completely. For example:
920
921       vendor ati
922       misc_ctl keep-off
923       svgaclocks 9
924       ramdac auto
925
926       For details about these options see svgalib.mach32(7).  All of them are
927       privileged.
928
929

OBSOLETE COMMANDS

931       Very  old  svgalib  versions used a different style configuration file.
932       For compatibility, svgalib can still parse these old options. Generally
933       the  options  consist  of  one character (case sensitive) followed by a
934       number. Whitespace characters (space, tab, newline) can be  used  after
935       the characters m and M and the number.
936
937       The  old  svgalib  versions  actually allowed a new option character to
938       follow a number immediately.  The current parser requires  white  space
939       after the numbers.
940
941       Of course, you should not use these cryptic forms anymore. The obsolete
942       commands are:
943
944
945       mnumber
946              Specify the mouse type like mouse number does.
947
948       Mclass Specify the monitor class like monitor class does.
949
950       Cnumber
951              Force usage of the number-th chipset driver  from  the  list  of
952              supported drivers VGA(1), ET4000(2), Cirrus(3), TVGA(4), Oak(5),
953              EGA(6),  S3(7),  ET3000(8),  Mach32(9),  GVGA6400(10),  ARK(11),
954              ATI(12),   ALI(13),   Mach64(14),   C&T(15),  APM(16),  NV3(17),
955              ET6000(18), VESA(19), MX(20), PARADISE(21), and RAGE(22).
956
957              C0 reenables auto detection of the chipset (default).
958
959
960       cflag  When using the EGA chipset driver, the  card  is  in  monochrome
961              emulation mode for flag = 0 and in color emulation mode for flag
962              = 1.
963

FILES

965       /etc/vga/libvga.config
966       /etc/vga/libvga.et4000
967
968

SEE ALSO

970       svgalib(7), svgalib.et4000(7), svgalib.chips(7), svgalib.mach32(7),
971
972

AUTHOR

974       The newstyle configuration file was first implemented and documented by
975       Michael  Weller  <eowmob@exp-math.uni-essen.de>.  However, other people
976       added new features.
977
978       Finally this page was edited by  Michael  Weller  <eowmob@exp-math.uni-
979       essen.de>.
980
981
982
983Svgalib 1.3.1                  19 December 1998               libvga.config(5)
Impressum