1libvga.config(5) Svgalib User Manual libvga.config(5)
2
3
4
6 libvga.config, svgalibrc - the svgalib configuration file
7
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
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
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
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
965 /etc/vga/libvga.config
966 /etc/vga/libvga.et4000
967
968
970 svgalib(7), svgalib.et4000(7), svgalib.chips(7), svgalib.mach32(7),
971
972
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)