diff options
author | marha <marha@users.sourceforge.net> | 2009-06-28 22:07:26 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-06-28 22:07:26 +0000 |
commit | 3562e78743202e43aec8727005182a2558117eca (patch) | |
tree | 8f9113a77d12470c5c851a2a8e4cb02e89df7d43 /xorg-server/hw/xfree86/utils/xorgconfig | |
download | vcxsrv-3562e78743202e43aec8727005182a2558117eca.tar.gz vcxsrv-3562e78743202e43aec8727005182a2558117eca.tar.bz2 vcxsrv-3562e78743202e43aec8727005182a2558117eca.zip |
Checked in the following released items:
xkeyboard-config-1.4.tar.gz
ttf-bitstream-vera-1.10.tar.gz
font-alias-1.0.1.tar.gz
font-sun-misc-1.0.0.tar.gz
font-sun-misc-1.0.0.tar.gz
font-sony-misc-1.0.0.tar.gz
font-schumacher-misc-1.0.0.tar.gz
font-mutt-misc-1.0.0.tar.gz
font-misc-misc-1.0.0.tar.gz
font-misc-meltho-1.0.0.tar.gz
font-micro-misc-1.0.0.tar.gz
font-jis-misc-1.0.0.tar.gz
font-isas-misc-1.0.0.tar.gz
font-dec-misc-1.0.0.tar.gz
font-daewoo-misc-1.0.0.tar.gz
font-cursor-misc-1.0.0.tar.gz
font-arabic-misc-1.0.0.tar.gz
font-winitzki-cyrillic-1.0.0.tar.gz
font-misc-cyrillic-1.0.0.tar.gz
font-cronyx-cyrillic-1.0.0.tar.gz
font-screen-cyrillic-1.0.1.tar.gz
font-xfree86-type1-1.0.1.tar.gz
font-adobe-utopia-type1-1.0.1.tar.gz
font-ibm-type1-1.0.0.tar.gz
font-bitstream-type1-1.0.0.tar.gz
font-bitstream-speedo-1.0.0.tar.gz
font-bh-ttf-1.0.0.tar.gz
font-bh-type1-1.0.0.tar.gz
font-bitstream-100dpi-1.0.0.tar.gz
font-bh-lucidatypewriter-100dpi-1.0.0.tar.gz
font-bh-100dpi-1.0.0.tar.gz
font-adobe-utopia-100dpi-1.0.1.tar.gz
font-adobe-100dpi-1.0.0.tar.gz
font-util-1.0.1.tar.gz
font-bitstream-75dpi-1.0.0.tar.gz
font-bh-lucidatypewriter-75dpi-1.0.0.tar.gz
font-adobe-utopia-75dpi-1.0.1.tar.gz
font-bh-75dpi-1.0.0.tar.gz
bdftopcf-1.0.1.tar.gz
font-adobe-75dpi-1.0.0.tar.gz
mkfontscale-1.0.6.tar.gz
openssl-0.9.8k.tar.gz
bigreqsproto-1.0.2.tar.gz
xtrans-1.2.2.tar.gz
resourceproto-1.0.2.tar.gz
inputproto-1.4.4.tar.gz
compositeproto-0.4.tar.gz
damageproto-1.1.0.tar.gz
zlib-1.2.3.tar.gz
xkbcomp-1.0.5.tar.gz
freetype-2.3.9.tar.gz
pthreads-w32-2-8-0-release.tar.gz
pixman-0.12.0.tar.gz
kbproto-1.0.3.tar.gz
evieext-1.0.2.tar.gz
fixesproto-4.0.tar.gz
recordproto-1.13.2.tar.gz
randrproto-1.2.2.tar.gz
scrnsaverproto-1.1.0.tar.gz
renderproto-0.9.3.tar.gz
xcmiscproto-1.1.2.tar.gz
fontsproto-2.0.2.tar.gz
xextproto-7.0.3.tar.gz
xproto-7.0.14.tar.gz
libXdmcp-1.0.2.tar.gz
libxkbfile-1.0.5.tar.gz
libfontenc-1.0.4.tar.gz
libXfont-1.3.4.tar.gz
libX11-1.1.5.tar.gz
libXau-1.0.4.tar.gz
libxcb-1.1.tar.gz
xorg-server-1.5.3.tar.gz
Diffstat (limited to 'xorg-server/hw/xfree86/utils/xorgconfig')
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/Cards | 3135 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/Cards98 | 647 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/Makefile.am | 70 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/Makefile.in | 857 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/cards.c | 278 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/cards.h | 30 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.c | 2890 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.man.pre | 22 |
8 files changed, 7929 insertions, 0 deletions
diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/Cards b/xorg-server/hw/xfree86/utils/xorgconfig/Cards new file mode 100644 index 000000000..b95928c37 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/Cards @@ -0,0 +1,3135 @@ +# $XConsortium: Cards /main/27 1996/10/28 05:43:53 kaleb $ +# This is the database of card definitions used by xf86config. +# Each definition should have a NAME entry, CHIPSET (descriptive) and +# SERVER (one of Mono, VGA16, SVGA, S3, 8514, Mach8, Mach32, Mach64, AGX, +# P9000, W32, I128). +# A reference to another definition is made with SEE (already defined +# entries are not overridden). +# Optional entries are RAMDAC (identifier), CLOCKCHIP (identifier), +# DACSPEED, NOCLOCKPROBE (advises never to probe clocks), UNSUPPORTED +# (indicates card that is not yet properly supported by a dedicated +# server). A LINE entry adds a line of text to be included in the +# Device section (can include options or comments). +# There's no CLOCKS option (although a Clocks line can be included +# with LINE), as it is very undesirable to have a Clocks line that +# is incorrect. The idea is that the Clocks are probed for to be +# sure (a commented suggested Clocks line can be included). +# +# The majority of entries are just a binding of a model name to a +# chipset/server and untested. +# +# $XFree86: xc/programs/Xserver/hw/xfree86/xf86config/Cards,v 3.79 2002/10/16 01:31:05 dawes Exp $ + +# VGA + +NAME * Generic VGA compatible +SERVER VGA16 +DRIVER vga + +NAME * Generic VESA compatible +SERVER VGA16 +DRIVER vesa + +NAME * Unsupported VGA compatible +SERVER VGA16 +DRIVER vga +UNSUPPORTED + + +# # +# generic # +# # + +NAME ** Alliance Pro Motion (generic) [apm] +#CHIPSET apm +SERVER SVGA +DRIVER apm +LINE #Option "no_accel" + +NAME ** Ark Logic (generic) [ark] +#CHIPSET ark +SERVER SVGA +DRIVER ark + +NAME ** ASPEED Technology (generic) [ast] +#CHIPSET ast +SERVER SVGA +DRIVER ast + +NAME ** ATI (generic) [ati] +#CHIPSET ati +SERVER SVGA +DRIVER ati + +NAME ** ATI Rage 128 based (generic) [r128] +#CHIPSET r128 +SERVER SVGA +DRIVER r128 + +NAME ** ATI Radeon (generic) [radeon] +#CHIPSET radeon +SERVER SVGA +DRIVER radeon + +NAME ** Chips and Technologies (generic) [chips] +#CHIPSET chips +SERVER SVGA +DRIVER chips +LINE # Option "suspend_hack" +LINE # Option "STN" +LINE # Option "no_stretch" +LINE # Option "no_center" +LINE # Option "use_modeline" +LINE # Option "fix_panel_size" +LINE # videoram 512 +LINE # Option "noaccel" +LINE # Option "no_bitblt" +LINE # Option "xaa_no_color_exp" +LINE # Option "xaa_benchmark" +LINE # Option "hw_cursor" +LINE # Option "nolinear" +LINE # MemBase 0x03b00000 +LINE # Option "hw_clocks" +LINE # Textclockfreq 25.175 + +NAME ** Cirrus Logic (generic) [cirrus] +#CHIPSET cirrus +SERVER SVGA +DRIVER cirrus +LINE # MemBase 0x00e00000 # ISA card that maps to 14Mb +LINE # MemBase 0x04000000 # VLB card that maps to 64Mb +LINE # MemBase 0x80000000 # VLB card that maps to 2048Mb +LINE # MemBase 0x02000000 # VLB card that maps to 32Mb +LINE # Option "linear" +LINE # Option "fifo_conservative" + +NAME ** Cyrix MediaGX (generic) [cyrix] +#CHIPSET cyrix +SERVER SVGA +DRIVER cyrix + +NAME ** Linux framebuffer (generic) [fbdev] +#CHIPSET fbdev +SERVER SVGA +DRIVER fbdev + +NAME ** 3DLabs, TI (generic) [glint] +#CHIPSET glint +SERVER SVGA +DRIVER glint +LINE #Option "no_accel" + +NAME ** Number Nine I128 (generic) [i128] +#CHIPSET i128 +SERVER SVGA +DRIVER i128 + +NAME ** Intel i740 (generic) [i740] +#CHIPSET i740 +SERVER SVGA +DRIVER i740 + +NAME ** Intel i810 (generic) [i810] +#CHIPSET i810 +SERVER SVGA +DRIVER i810 + +NAME ** Matrox Graphics (generic) [mga] +#CHIPSET mga +SERVER SVGA +DRIVER mga +LINE # Option "mga_sdram" + +NAME ** NeoMagic (generic) [neomagic] +#CHIPSET neomagic +SERVER SVGA +DRIVER neomagic +LINE # Chipset "NM2160" +LINE # IOBase 0xfea00000 +LINE # MemBase 0xfd000000 +LINE # VideoRam 2048 +LINE # DacSpeed 90 +LINE # Option "linear" +LINE # Option "nolinear" +LINE # Option "sw_cursor" +LINE # Option "hw_cursor" +LINE # Option "no_accel" +LINE # Option "intern_disp" +LINE # Option "extern_disp" +LINE # Option "mmio" +LINE # Option "no_mmio" +LINE # Option "lcd_center" +LINE # Option "no_stretch" + +NAME ** NVIDIA (generic) [nv] +#CHIPSET nv +SERVER SVGA +DRIVER nv + +NAME ** Rendition (generic) [rendition] +#CHIPSET rendition +SERVER SVGA +DRIVER rendition +LINE # Option "sw_cursor" + +NAME ** S3 (not ViRGE or Savage) (generic) [s3] +#CHIPSET s3 +SERVER SVGA +DRIVER s3 + +NAME ** S3 ViRGE (generic) [s3virge] +#CHIPSET s3virge +SERVER SVGA +DRIVER s3virge +LINE # Option "xaa_benchmark" +LINE # Option "fifo_moderate" +LINE # Option "pci_burst_on" +LINE # Option "pci_retry" +LINE # Option "lcd_center" +LINE # Set_LCDClk <pixel_clock_for_LCD> + +NAME ** S3 Savage (generic) [savage] +#CHIPSET savage +SERVER SVGA +DRIVER savage + +NAME ** Silicon Motion (generic) [siliconmotion] +#CHIPSET siliconmotion +SERVER SVGA +DRIVER siliconmotion + +NAME ** SiS (generic) [sis] +#CHIPSET sis +SERVER SVGA +DRIVER sis +LINE # Option "no_accel" +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +LINE # Option "no_BitBlt" +LINE # Option "fast_vram" +LINE # Option "pci_burst_on" +LINE # Option "xaa_benchmark" +LINE # Option "ext_eng_queue" + +NAME ** 3Dfx (generic) [tdfx] +#CHIPSET tdfx +SERVER SVGA +DRIVER tdfx + +NAME ** DEC TGA (generic) [tga] +#CHIPSET tga +SERVER SVGA +DRIVER tga + +NAME ** Trident (generic) [trident] +#CHIPSET trident +SERVER SVGA +DRIVER trident + +NAME ** Tseng Labs (generic) [tseng] +#CHIPSET tseng +SERVER SVGA +DRIVER tseng +LINE # Option "linear" +LINE # Option "noaccel" +LINE # Option "power_saver" +LINE # Option "fast_dram" +LINE # Option "pci_retry" +LINE # Option "hibit_high" +LINE # Option "hibit_low" +LINE # MemBase 0x3C00000 + +NAME ** VMWare guest OS (generic) [vmware] +#CHIPSET vmware +SERVER SVGA +DRIVER vmware + + +#Chips & Technologies + +#untested +NAME Chips & Technologies CT65520 +CHIPSET ct65520 +SERVER SVGA +DRIVER chips +LINE # Device section for C&T cards. +LINE # Option "suspend_hack" +LINE # Option "STN" +LINE # Option "no_stretch" +LINE # Option "no_center" +LINE # Option "use_modeline" +LINE # Option "fix_panel_size" +LINE # videoram 512 + +NAME Chips & Technologies CT65525 +CHIPSET ct65525 +LINE # Option "nolinear" +LINE # MemBase 0x03b00000 +SEE Chips & Technologies CT65520 + +NAME Chips & Technologies CT65530 +CHIPSET ct65530 +SEE Chips & Technologies CT65525 + +NAME Chips & Technologies CT65535 +CHIPSET ct65535 +NOCLOCKPROBE +LINE # Option "hw_clocks" +LINE # Textclockfreq 25.175 +SEE Chips & Technologies CT65530 + +NAME Chips & Technologies CT65540 +CHIPSET ct65540 +NOCLOCKPROBE +LINE # Option "use_18bit_bus" +SEE Chips & Technologies CT65535 + +NAME Chips & Technologies CT65545 +CHIPSET ct65545 +NOCLOCKPROBE +LINE # Option "noaccel" +LINE # Option "no_bitblt" +LINE # Option "xaa_no_color_exp" +LINE # Option "xaa_benchmark" +LINE # Option "hw_cursor" +LINE # Option "mmio" +SEE Chips & Technologies CT65540 + +NAME Chips & Technologies CT65546 +CHIPSET ct65546 +SEE Chips & Technologies CT65545 + +NAME Chips & Technologies CT65548 +CHIPSET ct65548 +SEE Chips & Technologies CT65545 + +NAME Chips & Technologies CT65550 +CHIPSET ct65550 +NOCLOCKPROBE +LINE # Option "noaccel" +LINE # Option "no_bitblt" +LINE # Option "xaa_no_color_exp" +LINE # Option "xaa_benchmark" +LINE # Option "hw_cursor" +LINE # Option "sync_on_green" +LINE # Option "fast_dram" +LINE # Option "use_vclk1" +LINE # Textclockfreq 25.175 +SEE Chips & Technologies CT65530 + +NAME Chips & Technologies CT65554 +CHIPSET ct65554 +SEE Chips & Technologies CT65550 + +NAME Chips & Technologies CT65555 +CHIPSET ct65555 +SEE Chips & Technologies CT65550 + +NAME Chips & Technologies CT68554 +CHIPSET ct68554 +SEE Chips & Technologies CT65550 + +NAME Chips & Technologies CT69000 +CHIPSET ct69000 +SEE Chips & Technologies CT65550 + +NAME Chips & Technologies CT69030 +CHIPSET ct69030 +SEE Chips & Technologies CT65550 + +NAME Chips & Technologies CT64200 +CHIPSET ct64200 +SERVER SVGA +DRIVER chips +LINE # Device section for C&T cards. +LINE # videoram 1024 + +NAME Chips & Technologies CT64300 +CHIPSET ct64300 +SERVER SVGA +DRIVER chips +LINE # Option "noaccel" +LINE # Option "no_bitblt" +LINE # Option "xaa_no_color_exp" +LINE # Option "xaa_benchmark" +LINE # Option "hw_cursor" +LINE # Option "nolinear" +LINE # MemBase 0x03b00000 +LINE # Option "hw_clocks" +LINE # Textclockfreq 25.175 +SEE Chips & Technologies CT64200 + +# Cirrus Logic + +#tested +NAME Cirrus Logic GD542x +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE +LINE # Device section for Cirrus Logic GD5420/2/4/6/8/9-based cards. +LINE #MemBase 0x00e00000 +LINE #MemBase 0x04e00000 +LINE #Option "linear" + +#tested +NAME Cirrus Logic GD543x +CHIPSET CL-GD5430/5434/5436 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE +LINE # Device section for Cirrus Logic GD5430/34-based cards. +LINE #MemBase 0x00e00000 # ISA card that maps to 14Mb +LINE #MemBase 0x04000000 # VLB card that maps to 64Mb +LINE #MemBase 0x80000000 # VLB card that maps to 2048Mb +LINE #MemBase 0x02000000 # VLB card that maps to 32Mb +LINE #Option "linear" + +NAME Cirrus Logic GD544x +CHIPSET CL-GD544x +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE + +NAME Creative Labs Graphics Blaster MA201 +SEE Cirrus Logic GD544x + +NAME Creative Labs Graphics Blaster MA202 +SEE Cirrus Logic GD544x + +#tested +NAME Cirrus Logic GD5462 +CHIPSET CL-GD5462 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE +LINE #Option "fifo_conservative" + +#tested +NAME Cirrus Logic GD5464 +CHIPSET CL-GD5464 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE +LINE #Option "fifo_conservative" + +#tested +NAME Cirrus Logic GD5465 +CHIPSET CL-GD5465 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE +LINE #Option "fifo_conservative" + +NAME Creative Labs Graphics Blaster MA302 +CHIPSET CL-GD5462 +SEE Cirrus Logic GD5462 + +NAME Creative Labs Graphics Blaster MA334 +CHIPSET CL-GD5464 +SEE Cirrus Logic GD5464 + +NAME Creative Labs Graphics Blaster 3D +CHIPSET CL-GD5464 +SEE Cirrus Logic GD5464 + +#tested +NAME Cirrus Logic GD5480 +CHIPSET CL-GD5480 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE + +#tested +NAME Diamond SpeedStar 64 +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +NAME Diamond SpeedStar64 Graphics 2000/2200 +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +NAME Diamond SpeedStar Pro SE (CL-GD5430/5434) +SEE Cirrus Logic GD543x + +NAME Diamond SpeedStar Pro 1100 +SEE Cirrus Logic GD542x + +NAME Orchid Kelvin 64 VLB Rev A +CHIPSET CL-GD5434 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE +LINE # Device section for Orchid Kelvin 64 VLB Rev A +LINE # Linear framebuffer maps at 2048Mb. Some motherboards make linear addressing +LINE # impossible. Some cards map at 32Mb. +LINE #MemBase 0x02000000 # VLB card that maps to 32Mb +LINE #MemBase 0x04000000 # VLB card that maps to 64Mb +LINE MemBase 0x80000000 # VLB card that maps to 2048Mb +LINE #Option "linear" + +NAME Orchid Kelvin 64 VLB Rev B +CHIPSET CL-GD5434 +SERVER SVGA +DRIVER cirrus +NOCLOCKPROBE +LINE # Device section for Orchid Kelvin 64 VLB Rev B +LINE # Linear framebuffer maps at 32Mb. Some motherboards make linear addressing +LINE # impossible. Some cards map at 2048Mb. +LINE MemBase 0x02000000 # VLB card that maps to 32Mb +LINE #MemBase 0x04000000 # VLB card that maps to 64Mb +LINE #MemBase 0x80000000 # VLB card that maps to 2048Mb +LINE #Option "linear" + +NAME Orchid Kelvin 64 +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +NAME Intel 5430 +CHIPSET CL-GD5430 +SEE Cirrus Logic GD543x + +NAME STB Nitro (64) +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +NAME STB Nitro 64 Video +CHIPSET CL-GD5446 +SEE Cirrus Logic GD544x + +NAME STB Horizon +CHIPSET CL-GD5426/28 +SEE Cirrus Logic GD542x + +NAME STB Horizon Video +CHIPSET CL-GD5440 +SEE Cirrus Logic GD544x + +NAME Genoa 8500VL(-28) +CHIPSET CL-GD5426/28 +SEE Cirrus Logic GD542x + +NAME Diamond SpeedStar Pro (not SE) +CHIPSET CL-GD5426/28 +SEE Cirrus Logic GD542x + +NAME ALG-5434(E) +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +NAME Actix ProStar +CHIPSET CL-GD5426/5428 +SEE Cirrus Logic GD542x + +NAME Actix ProStar 64 +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +#tested +NAME Acumos AVGA3 +SEE Cirrus Logic GD542x + +NAME DFI-WG1000 +SEE Cirrus Logic GD542x + +NAME Spider VLB Plus +CHIPSET CL-GD5428 +SEE Cirrus Logic GD542x + +NAME VI720 +CHIPSET CL-GD5434 +SEE Cirrus Logic GD543x + +NAME Cirrus Logic GD62xx (laptop) +CHIPSET CL-GD6205/15/25/35 +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME Cirrus Logic GD64xx (laptop) +CHIPSET CL-GD6420/6440 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Cirrus Logic GD754x (laptop) +CHIPSET CL-GD7541/42/43/48 +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME Techworks Ultimate 3D +CHIPSET CL-GD5464 +SEE Cirrus Logic GD5464 + +NAME VideoLogic GrafixStar 550 +CHIPSET CL-GD5464 +SEE Cirrus Logic GD5464 + +NAME Jaton Video-70P +CHIPSET CL-GD5464 +SEE Cirrus Logic GD5464 + +NAME PixelView Combo TV Pro (Prolink) +CHIPSET CL-GD5480, 4MB +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE # COMMENT on card TV Tuner +NOCLOCKPROBE + +NAME PixelView Combo TV 3D AGP (Prolink) +CHIPSET CL-GD5465, 4MB +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE # COMMENT on card TV+FM Tuner +NOCLOCKPROBE + +NAME Creative Labs Graphics Blaster Eclipse (OEM Model CT6510) +SEE Cirrus Logic GD5465 + +NAME VideoLogic GrafixStar 560 (PCI/AGP) +SEE Cirrus Logic GD5465 + +NAME Cirrus Logic GD5446 (noname card) +CHIPSET CL-GD5446, 1MB (upgradable to 2MB). +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME Octek VL-VGA-26 +CHIPSET CL-GD5426 +SEE Cirrus Logic GD542x + +NAME Octek VL-VGA-28 +CHIPSET CL-GD5428 +SEE Cirrus Logic GD542x + +NAME Octek Combo-26 +CHIPSET CL-GD5426 +SEE Cirrus Logic GD542x + +NAME Octek Combo-28 +CHIPSET CL-GD5428 +SEE Cirrus Logic GD542x + +NAME Octek AVGA-20 +SEE Cirrus Logic GD542x + +# S3 801/805 + +NAME S3 801/805 (generic) +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED + +NAME S3 86C801 (generic) +SEE S3 801/805 (generic) + +NAME S3 86C805 (generic) +SEE S3 801/805 (generic) + +#tested +NAME S3 801/805 with ATT20c490 RAMDAC +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 +LINE #Option "dac_8_bit" # Not supported by some 20c490 clones + +NAME S3 801/805 with SC1148{2,3,4} RAMDAC +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC sc11482 + +NAME S3 801/805 with SC1148{5,7,9} RAMDAC +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC sc11485 + +NAME S3 801/805 with S3 GenDAC +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC s3gendac +CLOCKCHIP s3gendac + +NAME S3 801/805 with ATT20c490 RAMDAC and ICD2061A +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 +CLOCKCHIP icd2061a +LINE #Option "dac_8_bit" # Not supported by some 20c490 clones + +NAME S3 801/805 with Chrontel 8391 +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 +CLOCKCHIP ch8391 +LINE Option "dac_8_bit" + +#tested +NAME Actix GE32+ 2MB +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 +LINE #Option "dac_8_bit" + +NAME Actix GE32i +CHIPSET S3 805i +SERVER S3 +DRIVER vga +UNSUPPORTED + +NAME Orchid Fahrenheit VA +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 + +NAME Orchid Fahrenheit 1280 +CHIPSET S3 801 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Probable clocks: +LINE #Clocks 25.20 28.32 32.50 0.00 40.00 44.90 50.40 65.00 +LINE #Clocks 78.00 56.70 63.10 75.10 80.00 89.90 100.90 31.50 + +NAME Orchid Fahrenheit-1280+ +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20C490 +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE #Option "nolinear" # VLB card may require this +LINE #Probable clocks: +LINE #Clocks 25.20 28.32 40.0 0.0 50.10 77.0 36.10 45.0 +LINE #Clocks 130.0 120.20 80.0 31.50 110.30 65.0 75.0 94.60 + +NAME Diamond Stealth 24 +CHIPSET S3 801/805 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a +LINE #Option "nolinear" +LINE #Ramdac "att20c490" # The Diamond RAMDAC is reportedly compatible for 15bpp + +NAME Miro Crystal 8S +SEE S3 801/805 (generic) + +NAME Miro Crystal 10SD with GenDAC +SEE S3 801/805 with S3 GenDAC + +NAME Dell S3 805 +SEE S3 801/805 (generic) + +NAME STB Powergraph X-24 +SEE S3 801/805 with ATT20c490 RAMDAC and ICD2061A + +NAME JAX 8241 +SEE S3 801/805 with Chrontel 8391 + +NAME VL-41 +SEE S3 801/805 with Chrontel 8391 + +NAME SPEA Mirage +SEE S3 801/805 with Chrontel 8391 + +# S3 864/Trio64/Trio32/868 + +NAME S3 864 (generic) +SERVER S3 +DRIVER vga +UNSUPPORTED + +NAME S3 86C864 (generic) +SEE S3 864 (generic) + +NAME S3 Vision864 (generic) +SEE S3 864 (generic) + +NAME S3 864 with SDAC (86C716) +CHIPSET S3 864 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC s3_sdac +CLOCKCHIP s3_sdac +NOCLOCKPROBE + +NAME S3 864 with ATT 20C498 or 21C498 +CHIPSET S3 864 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c498 + +NAME S3 864 with STG1703 +CHIPSET S3 864 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC stg1703 +NOCLOCKPROBE + +NAME S3 868 (generic) +CHIPSET S3 868 +SERVER S3 +DRIVER vga +UNSUPPORTED + +NAME S3 86C868 (generic) +SEE S3 868 (generic) + +NAME S3 Vision868 (generic) +SEE S3 868 (generic) + +NAME S3 868 with SDAC (86C716) +CHIPSET S3 868 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME S3 868 with ATT 20C498 or 21C498 +CHIPSET S3 868 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c498 + +NAME S3 868 with ATT 20C409 +CHIPSET S3 868 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c409 +NOCLOCKPROBE + +NAME Number Nine FX Motion 531 +CLOCKCHIP icd2061a +SEE S3 868 with ATT 20C498 or 21C498 + +NAME S3 Trio64 (generic) +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME S3 86C764 (generic) +SEE S3 Trio64 (generic) + +NAME S3 Trio64V+ (generic) +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME S3 86C765 (generic) +SEE S3 Trio64V+ (generic) + +NAME S3 Trio32 (generic) +CHIPSET S3 Trio32 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME Genoa Phantom 64i with S3 SDAC +DACSPEED 135 +SEE S3 864 with SDAC (86C716) + +NAME Number Nine GXE64 +CHIPSET S3 864 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a +LINE Option "number_nine" + +NAME Number Nine GXE64 with S3 Trio64 +SEE S3 Trio64 (generic) + +NAME Diamond Stealth 64 DRAM with S3 SDAC +DACSPEED 135 +SEE S3 864 with SDAC (86C716) + +NAME Diamond Stealth64 Graphics 2xx0 series (864 + SDAC) +DACSPEED 135 +SEE S3 864 with SDAC (86C716) + +NAME Diamond Stealth 64 DRAM with S3 Trio64 +SEE S3 Trio64 (generic) + +NAME Diamond Stealth64 Graphics 2xx0 series (Trio64) +SEE S3 Trio64 (generic) + +NAME Diamond Stealth 64 DRAM SE +SEE S3 Trio32 (generic) + +NAME Diamond Stealth64 Video 2001 series (2121/2201) +SEE S3 Trio64V+ (generic) + +NAME Actix GE64 +CLOCKCHIP icd2061a +SEE S3 864 (generic) + +NAME ELSA Winner 1000PRO with S3 SDAC +SEE S3 864 with SDAC (86C716) + +NAME ELSA Winner 1000PRO with STG1700 or AT&T RAMDAC +CHIPSET S3 864 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a + +NAME ELSA Winner 1000PRO/X +SEE S3 868 with SDAC (86C716) + +NAME ELSA Winner 1000ISA +CHIPSET S3 805i +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a +LINE Option "dac_8_bit" +LINE # the following settings should be detected and set automatically by XF86_S3 +LINE # if the serial number of the ELSA card is printed correctly: +LINE #ClockChip "icd2061a" + +NAME Cardex Trio64 +SEE S3 Trio64 (generic) + +NAME Cardex Trio64Pro +SEE S3 Trio64 (generic) + +NAME Miro Crystal 12SD +SEE S3 Trio32 (generic) + +NAME Miro Crystal 22SD +SEE S3 Trio64 (generic) + +NAME Miro Crystal 20SD with ICS2494 (BIOS 1.xx) +SEE S3 864 with ATT 20C498 or 21C498 + +NAME Miro Crystal 20SD with ICD2061A (BIOS 2.xx) +CLOCKCHIP icd2061a +SEE S3 864 with ATT 20C498 or 21C498 + +NAME Miro Crystal 20SD VLB with S3 SDAC (BIOS 3.xx) +SEE S3 864 with SDAC (86C716) + +NAME Miro Crystal 20SD PCI with S3 SDAC +SEE S3 868 with SDAC (86C716) + +NAME ELSA Winner 1000AVI (SDAC version) +SEE S3 868 with SDAC (86C716) + +NAME ELSA Winner 1000AVI (AT&T 20C409 version) +SEE S3 868 with ATT 20C409 + +NAME Diamond Stealth Video DRAM +SEE S3 868 with SDAC (86C716) + +NAME Diamond Stealth64 Video 2120/2200 +SEE S3 868 with SDAC (86C716) + +NAME SPEA/V7 Mirage P64 +CLOCKCHIP ics2595 +SEE S3 864 (generic) + +NAME SPEA/V7 Mirage P64 with S3 Trio64 +SEE S3 Trio64 (generic) + +NAME Number Nine FX Vision 330 +SEE S3 Trio64 (generic) + +NAME Number Nine FX Motion 331 +SEE S3 Trio64V+ (generic) + +NAME ASUS Video Magic PCI V864 +SEE S3 864 (generic) + +NAME ASUS Video Magic PCI VT64 +SEE S3 Trio64 (generic) + +NAME VidTech FastMax P20 +SEE S3 864 (generic) + +NAME VideoLogic GrafixStar 500 +SEE S3 868 with SDAC (86C716) + +NAME VideoLogic GrafixStar 400 +SEE S3 Trio64V+ (generic) + +NAME VideoLogic GrafixStar 300 +SEE S3 Trio64 (generic) + +NAME 2 the Max MAXColor S3 Trio64V+ +SEE S3 Trio64V+ (generic) + +NAME DataExpert DSV3365 +SEE S3 Trio64V+ (generic) + +NAME ExpertColor DSV3365 +SEE S3 Trio64V+ (generic) + +NAME DSV3326 +SEE S3 Trio64V+ (generic) + +# S3 Trio64V2 + +NAME S3 Trio64V2 (generic) +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME S3 Trio64V2/DX (generic) +SEE S3 Trio64V2 (generic) + +NAME S3 Trio64V2/GX (generic) +SEE S3 Trio64V2 (generic) + +NAME S3 86C775 (generic) +SEE S3 Trio64V2/DX (generic) + +NAME S3 86C785 (generic) +SEE S3 Trio64V2/GX (generic) + +NAME ELSA WINNER 1000/T2D +SEE S3 Trio64V2/DX (generic) + + +# S3 Aurora64V+ + +NAME S3 Aurora64V+ (generic) +CHIPSET S3 Aurora64V+ +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE +LINE # Option "lcd_center" +LINE # Set_LCDClk <pixel_clock_for_LCD> + +NAME S3 86CM65 +SEE S3 Aurora64V+ (generic) + +NAME SHARP 9080 +SEE S3 Aurora64V+ (generic) + +NAME SHARP 9090 +SEE S3 Aurora64V+ (generic) + +NAME COMPAQ Armada 7730MT +SEE S3 Aurora64V+ (generic) + +NAME COMPAQ Armada 7380DMT +SEE S3 Aurora64V+ (generic) + + +# S3 964/968 + +NAME S3 964 (generic) +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME S3 86C964 (generic) +SEE S3 964 (generic) + +NAME S3 Vision964 (generic) +SEE S3 964 (generic) + +NAME S3 968 (generic) +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME S3 86C968 (generic) +SEE S3 968 (generic) + +NAME S3 Vision968 (generic) +SEE S3 968 (generic) + +NAME Number Nine GXE64 Pro +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC ti3025 +LINE Option "number_nine" + +NAME Diamond Stealth 64 VRAM +CLOCKCHIP icd2061a +LINE #Option "slow_vram" +SEE S3 964 (generic) + +NAME Diamond Stealth64 Video 3200 +CHIPSET S3 968 +LINE #Option "slow_vram" +SEE S3 968 (generic) + +NAME Diamond Stealth 64 Video VRAM (TI RAMDAC) +CHIPSET S3 968 +LINE #Option "slow_vram" +LINE #DacSpeed 220 +SEE S3 968 (generic) + +NAME Diamond Stealth64 Video 3240/3400 (TI RAMDAC) +CHIPSET S3 968 +LINE #Option "slow_vram" +LINE #DacSpeed 220 +SEE S3 968 (generic) + +NAME Diamond Stealth64 Video 3240/3400 (IBM RAMDAC) +CHIPSET S3 968 +LINE #Option "slow_vram" +RAMDAC ibm_rgb526 +LINE DacSpeed 220 +SEE S3 968 (generic) + +NAME Genoa VideoBlitz III AV +CHIPSET S3 968 +LINE #s3RefClk 50 +LINE #DACspeed 170 +SEE S3 968 (generic) + +NAME STB Velocity 64 Video +CHIPSET S3 968 +LINE #s3RefClk 24 +LINE #DACspeed 220 +SEE S3 968 (generic) + +NAME STB Powergraph 64 Video +SEE S3 Trio64V+ (generic) + +NAME STB Powergraph 64 +SEE S3 Trio64 (generic) + +NAME ELSA Winner 1000TRIO +SEE S3 Trio64 (generic) + +NAME ELSA Winner 1000TRIO/V +SEE S3 Trio64V+ (generic) + +NAME Hercules Graphite Terminator 64 +LINE Option "slow_vram" +LINE #s3RefClk 50 +LINE #DACspeed 170 +SEE S3 964 (generic) + +NAME Hercules Terminator 64/Video +SEE S3 Trio64V+ (generic) + +NAME Hercules Graphite Terminator 64/DRAM +SEE S3 Trio64 (generic) + +NAME Hercules Graphite Terminator Pro 64 +LINE #s3RefClk 16 +LINE #DACspeed 220 +SEE S3 968 (generic) + +NAME Number Nine FX Motion 771 +LINE #s3RefClk 16 +SEE S3 968 (generic) + +NAME Spider Tarantula 64 +SEE S3 964 (generic) + +NAME Miro Crystal 20SV +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a + +NAME Miro Crystal 40SV +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP ti3025 + +NAME Miro Crystal 80SV +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME Miro Video 20SV +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c505 +LINE #DacSpeed 150 +CLOCKCHIP ics9161a + +NAME SPEA Mercury 64 +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP ics9161a +LINE #Option "spea_mercury" + +NAME ELSA Winner 2000PRO-2 +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "ELSA_w2000pro" +NOCLOCKPROBE + +NAME ELSA Winner 2000PRO-4 +CHIPSET S3 964 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "ELSA_w2000pro" +NOCLOCKPROBE + +NAME ELSA Winner 2000PRO/X-2 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "sync_on_green" +NOCLOCKPROBE + +NAME ELSA Winner 2000PRO/X-4 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "sync_on_green" +NOCLOCKPROBE + +NAME ELSA Winner 2000PRO/X-8 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "sync_on_green" +NOCLOCKPROBE + +NAME ELSA Winner 2000AVI +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "sync_on_green" +NOCLOCKPROBE + +NAME ELSA Gloria-4 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "sync_on_green" +NOCLOCKPROBE + +NAME ELSA Gloria-8 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Option "sync_on_green" +NOCLOCKPROBE + +NAME VideoLogic GrafixStar 700 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME LeadTek WinFast S430 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME WinFast S430 +SEE LeadTek WinFast S430 + +NAME LeadTek WinFast S510 +CHIPSET S3 968 +SERVER S3 +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME WinFast S510 +SEE LeadTek WinFast S510 + +# S3 928 + +NAME S3 928 (generic) +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED + +NAME S3 86C928 (generic) +SEE S3 928 (generic) + +NAME Actix Ultra +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 +LINE #Option "dac_8_bit" + +NAME Diamond Stealth Pro +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a +LINE #Ramdac "att20c490" # The Diamond RAMDAC is reportedly compatible for 15bpp +LINE #Option "no_linear" # Some VLB machines may require this + +NAME ELSA Winner 1000VL +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE # the following settings should be detected and set automatically by XF86_S3 +LINE # if the serial number of the ELSA card is printed correctly: +LINE #ClockChip "icd2061a" +LINE #Membase 0xf8000000 + +NAME ELSA Winner 1000TwinBus +SEE ELSA Winner 1000VL + +NAME ELSA Winner 2000 +SEE S3 928 (generic) + +NAME Miro Crystal 16S +SEE S3 928 (generic) + +NAME SPEA/V7 Mercury +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP sc11412 +LINE Option "spea_mercury" + +NAME STB Pegasus +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +RAMDAC bt485 +CLOCKCHIP icd2061a +LINE Option "stb_pegasus" +LINE #Option "sync_on_green" + +NAME Number Nine GXE Level 14/16 +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +DACSPEED 200 +CLOCKCHIP icd2061a +LINE Option "number_nine" +LINE #Option "nolinear" +LINE #Option "nomemaccess" + +NAME Number Nine GXE Level 10/11/12 +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a +LINE Option "number_nine" + +NAME 928Movie +CHIPSET S3 928 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2595 +RAMDAC bt485 +LINE # pixel multiplexing not supported + +# S3 911/924 + +NAME S3 911/924 (generic) +CHIPSET S3 911/924 +SERVER S3 +DRIVER vga +UNSUPPORTED + +NAME S3 86C911 (generic) +SEE S3 911/924 (generic) + +NAME S3 86C924 (generic) +SEE S3 911/924 (generic) + +NAME Diamond Stealth VRAM +CHIPSET S3 911/924 +SERVER S3 +DRIVER vga +UNSUPPORTED +CLOCKCHIP icd2061a + +#NAME Orchid Fahrenheit 1280 +#SEE S3 911/924 (generic) + +NAME S3 924 with SC1148 DAC +CHIPSET S3 924 +SERVER S3 +DRIVER vga +UNSUPPORTED +LINE #Probable clocks: +LINE #Clocks 25.2 28.3 39.7 1.7 49.9 76.7 35.7 44 +LINE #Clocks 130.2 119.5 79.4 31.2 110.0 65.2 74.9 71.3 + +# S3 ViRGE,/DX,/GX and ViRGE/VX + +NAME S3 ViRGE (old S3V server) +CHIPSET S3 ViRGE +SERVER S3V +DRIVER s3virge +NOCLOCKPROBE + +NAME S3 ViRGE (generic) +CHIPSET S3 ViRGE +SERVER SVGA +DRIVER s3virge +NOCLOCKPROBE +LINE #Option "xaa_benchmark" +LINE #Option "fifo_moderate" +LINE #Option "pci_burst_on" +LINE #Option "pci_retry" + +NAME S3 ViRGE/DX (generic) +CHIPSET S3 ViRGE/DX +SERVER SVGA +DRIVER s3virge +NOCLOCKPROBE +LINE #Option "xaa_benchmark" +LINE #Option "fifo_moderate" +LINE #Option "pci_burst_on" +LINE #Option "pci_retry" + +NAME S3 ViRGE/GX (generic) +CHIPSET S3 ViRGE/GX +SERVER SVGA +DRIVER s3virge +NOCLOCKPROBE +LINE #Option "xaa_benchmark" +LINE #Option "fifo_moderate" +LINE #Option "pci_burst_on" +LINE #Option "pci_retry" + + +NAME S3 ViRGE/GX2 (generic) +CHIPSET S3 ViRGE/GX2 +SERVER SVGA +DRIVER s3virge +NOCLOCKPROBE +LINE #Option "xaa_benchmark" +LINE #Option "fifo_moderate" +LINE #Option "pci_burst_on" +LINE #Option "pci_retry" + +NAME S3 ViRGE/MX (generic) +CHIPSET S3 ViRGE/MX +SERVER SVGA +DRIVER s3virge +NOCLOCKPROBE +LINE #Option "lcd_center" +LINE #Set_LCDClk <pixel_clock_for_LCD> +LINE #Option "xaa_benchmark" +LINE #Option "fifo_moderate" +LINE #Option "pci_burst_on" +LINE #Option "pci_retry" + +NAME S3 ViRGE/MX+ (generic) +SEE S3 ViRGE/MX (generic) + + + + +NAME S3 86C325 (generic) +SEE S3 ViRGE (generic) + +NAME S3 86C375 (generic) +SEE S3 ViRGE/DX (generic) + +NAME S3 86C385 (generic) +SEE S3 ViRGE/GX (generic) + +NAME S3 86C357 (generic) +SEE S3 ViRGE/GX2 (generic) + +NAME S3 86C260 (generic) +SEE S3 ViRGE/MX (generic) + +NAME S3 86C280 (generic) +SEE S3 ViRGE/MX+ (generic) + + +NAME ELSA Victory 3D +SEE S3 ViRGE (generic) + +NAME ELSA Victory 3DX +SEE S3 ViRGE/DX (generic) + +NAME ELSA Winner 3000-S +SEE S3 ViRGE (generic) + +NAME Number Nine Visual 9FX Reality 332 +SEE S3 ViRGE (generic) + +NAME Number Nine FX Motion 332 +SEE S3 ViRGE (generic) + +NAME Diamond Stealth 3D 2000 +SEE S3 ViRGE (generic) + +NAME Diamond Stealth 3D 2000 PRO +SEE S3 ViRGE/DX (generic) + +NAME Diamond Multimedia Stealth 3D 2000 +SEE S3 ViRGE (generic) + +NAME Diamond Multimedia Stealth 3D 2000 PRO +SEE S3 ViRGE/DX (generic) + +NAME Canopus Co. Power Window 3DV +SEE S3 ViRGE (generic) + +NAME DataExpert DSV3325 +SEE S3 ViRGE (generic) + +NAME ExpertColor DSV3325 +SEE S3 ViRGE (generic) + +NAME DSV3325 +SEE S3 ViRGE (generic) + +NAME Hercules Terminator 64/3D +SEE S3 ViRGE (generic) + +NAME Hercules Terminator 3D/DX +SEE S3 ViRGE/DX (generic) + +NAME LeadTek WinFast 3D S600 +SEE S3 ViRGE (generic) + +NAME WinFast 3D S600 +SEE LeadTek WinFast 3D S600 + +NAME LeadTek WinFast 3D S680 +SEE S3 ViRGE/GX2 (generic) + +NAME Miro MiroMedia 3D +SEE S3 ViRGE (generic) + +NAME Orchid Technology Fahrenheit Video 3D +SEE S3 ViRGE (generic) + +NAME STB Systems Powergraph 3D +SEE S3 ViRGE (generic) + +NAME STB Nitro 3D +CHIPSET S3 ViRGE/GX +SEE S3 ViRGE/GX (generic) + +NAME MELCO WGP-VG4S +LINE #DACSpeed 191 162 111 83 +LINE #SetMClck 75 +SEE S3 ViRGE (generic) + + + +NAME S3 ViRGE/VX (generic) +CHIPSET S3 ViRGE/VX +SERVER SVGA +DRIVER s3virge +NOCLOCKPROBE +LINE #Option "xaa_benchmark" +LINE #Option "fifo_moderate" +LINE #Option "pci_burst_on" +LINE #Option "pci_retry" + + +NAME S3 86C988 (generic) +SEE S3 ViRGE/VX (generic) + +NAME ELSA Winner 3000 +SEE S3 ViRGE/VX (generic) + +NAME ELSA Winner 3000-M-22 +SEE S3 ViRGE/VX (generic) + +NAME ELSA Winner 3000-L-42 +SEE S3 ViRGE/VX (generic) + +NAME ELSA Winner 2000AVI/3D +SEE S3 ViRGE/VX (generic) + +NAME Diamond Stealth 3D 3000 +SEE S3 ViRGE/VX (generic) + +NAME STB Systems Velocity 3D +SEE S3 ViRGE/VX (generic) + +NAME MELCO WGP-VX8 +SEE S3 ViRGE/VX (generic) + +NAME Diamond Stealth 3D 4000 +SEE S3 ViRGE/GX2 (generic) + +NAME Toshiba Tecra 750CDT +SEE S3 ViRGE/MX (generic) + +NAME Toshiba Tecra 750DVD +SEE S3 ViRGE/MX (generic) + +NAME Toshiba Tecra 540CDT +SEE S3 ViRGE/MX (generic) + +NAME Toshiba Tecra 550CDT +SEE S3 ViRGE/MX (generic) + +# currently unsupported S3 + +NAME S3 86C365 (Trio3D) +SEE * Unsupported VGA compatible + +NAME S3 86C391 (Savage3D) +SEE * Unsupported VGA compatible + +NAME S3 Trio3D +SEE * Unsupported VGA compatible + +NAME S3 Savage3D +SEE * Unsupported VGA compatible + +NAME S3 Savage4 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +# ET4000/ET6000 + +NAME ET3000 (generic) +CHIPSET ET3000 +SERVER SVGA +DRIVER tseng + +NAME Genoa 5400 +SEE ET3000 (generic) + +NAME ET4000 (generic) +CHIPSET ET4000 +SERVER SVGA +DRIVER tseng + +NAME ET4000/W32 (generic) +CHIPSET ET4000/W32 +SERVER W32 +DRIVER tseng + +NAME ET4000 W32i, W32p (generic) +CHIPSET ET4000/W32(i/p) +SERVER SVGA +DRIVER tseng +LINE #Option "linear" # for linear mode at 8bpp +LINE #Option "noaccel" # when problems with accelerator +LINE #Option "power_saver" # enable VESA DPMS +LINE #Option "fast_dram" +LINE #Option "pci_retry" # faster, but problematic for ISA DMA +LINE #Option "hibit_high" # see README.tseng -- most cards need this +LINE #Option "hibit_low" # see README.tseng -- mostly for older ET4000 cards +LINE #MemBase 0x3C00000 # when automatic MemBase detection doesn't work +LINE # -- see README.tseng for more (important) information on MemBase + +NAME ET6000 (generic) +CHIPSET ET6000 +SERVER SVGA +DRIVER tseng +NOCLOCKPROBE +LINE #videoram 2304 # 2.25 MB, when memory probe is incorrect +LINE #Option "linear" # for linear mode at 8bpp +LINE #Option "noaccel" # when problems with accelerator +LINE #Option "power_saver" # enable VESA DPMS +LINE #Option "pci_retry" # faster, but problematic for ISA DMA +LINE #Option "hw_cursor" # Use hardware cursor (see docs for limitations) +LINE #Option "xaa_no_color_exp" # When text (or bitmap) is not rendered correctly + +NAME ET6100 (generic) +CHIPSET ET6100 +SEE ET6000 (generic) + +NAME Diamond Stealth 32 +CLOCKCHIP icd2061a +NOCLOCKPROBE +SEE ET4000 W32i, W32p (generic) + +NAME Cardex Cobra +SEE ET4000 W32i, W32p (generic) + +NAME Cardex Challenger (Pro) +SEE ET4000 W32i, W32p (generic) + +NAME Colorgraphic Dual Lightning +SEE ET4000 W32i, W32p (generic) + +NAME Dell onboard ET4000 +SEE ET4000 (generic) + +NAME DFI-WG5000 +SEE ET4000 W32i, W32p (generic) + +NAME Diamond SpeedStar (Plus) +SEE ET4000 (generic) + +NAME Diamond SpeedStar 24 +SEE ET4000 (generic) + +NAME Diamond SpeedStar HiColor +SEE ET4000 (generic) + +NAME Genoa 8900 Phantom 32i +SEE ET4000 W32i, W32p (generic) + +NAME Hercules Dynamite +SEE ET4000/W32 (generic) + +NAME Hercules Dynamite Power +SEE ET4000 W32i, W32p (generic) + +NAME Hercules Dynamite Pro +SEE ET4000 W32i, W32p (generic) + +NAME Integral FlashPoint +SEE ET4000 W32i, W32p (generic) + +NAME LeadTek WinFast S200 +SEE ET4000 W32i, W32p (generic) + +NAME Matrox Comet +SEE ET4000 W32i, W32p (generic) + +NAME Matrox Marvel II +SEE ET4000 W32i, W32p (generic) + +NAME Miro MiroVideo 20TD +SEE ET4000 W32i, W32p (generic) + +NAME WinFast S200 +SEE LeadTek WinFast S200 + +NAME Sigma Concorde +SEE ET4000/W32 (generic) + +NAME Sigma Legend +SEE ET4000 (generic) + +NAME SPEA/V7 ShowTime Plus +SEE ET4000 W32i, W32p (generic) + +NAME STB LightSpeed +SEE ET4000 W32i, W32p (generic) + +NAME STB MVP-2 +SEE ET4000 (generic) + +NAME STB MVP-2 PCI +SEE ET4000 W32i, W32p (generic) + +NAME STB MVP-2X +SEE ET4000 W32i, W32p (generic) + +NAME STB MVP-4 PCI +SEE ET4000 W32i, W32p (generic) + +NAME STB MVP-4X +SEE ET4000 W32i, W32p (generic) + +NAME TechWorks Thunderbolt +SEE ET4000/W32 (generic) + +NAME ViewTop PCI +SEE ET4000 W32i, W32p (generic) + +NAME SNI PC5H W32 +CLOCKCHIP stg1703 +NOCLOCKPROBE +SEE ET4000 W32i, W32p (generic) + +NAME SNI Scenic W32 +CLOCKCHIP stg1703 +NOCLOCKPROBE +SEE ET4000 W32i, W32p (generic) + +NAME Hercules Dynamite 128/Video +SEE ET6000 (generic) + +NAME STB LightSpeed 128 +SEE ET6000 (generic) + +NAME VideoLogic GrafixStar 600 +SEE ET6000 (generic) + +NAME Jazz Multimedia G-Force 128 +SEE ET6000 (generic) + +NAME Mirage Z-128 +SEE ET6000 (generic) + +NAME California Graphics SunTracer 6000 +SEE ET6000 (generic) + +NAME Binar Graphics AnyView +SEE ET6000 (generic) + +NAME MediaVision Proaxcel 128 +SEE ET6000 (generic) + +NAME ATrend ATC-2165A +SEE ET6000 (generic) + +NAME Interay PMC Viper +SEE ET6000 (generic) + +NAME 2-the-Max MAXColor 6000 +SEE ET6000 (generic) + +NAME Gainward Challenger EV +SEE ET6000 (generic) + +NAME MachSpeed VGA ET6000 +SEE ET6000 (generic) + +NAME KouTech KeyVision 128 EV +SEE ET6000 (generic) + +NAME Jaton Video-58P +SEE ET6000 (generic) + +# ATI + +NAME ATI Rage 128 +CHIPSET ati +SERVER SVGA +DRIVER ati + +NAME ATI 8514 Ultra (no VGA) +CHIPSET ati +SERVER Mach8 +DRIVER vga +UNSUPPORTED + +NAME ATI Graphics Ultra +CHIPSET ati +SERVER Mach8 +DRIVER ati + +NAME ATI Graphics Ultra Pro +CHIPSET ati +SERVER Mach32 +DRIVER ati + +NAME ATI Wonder SVGA +CHIPSET ati +SERVER SVGA +DRIVER ati + +NAME ATI Ultra Plus +CHIPSET ati +SERVER Mach32 +DRIVER ati + +NAME ATI Mach32 +CHIPSET ati +SERVER Mach32 +DRIVER ati + +NAME ATI Mach64 +CHIPSET ati +SERVER Mach64 +DRIVER ati +NOCLOCKPROBE + +NAME ATI Mach64 CT (264CT) +SEE ATI Mach64 + +NAME ATI Mach64 VT (264VT) +SEE ATI Mach64 + +NAME ATI Mach64 GT (264GT), aka 3D RAGE +SEE ATI Mach64 + +NAME ATI Mach64 3D RAGE II +SEE ATI Mach64 + +NAME ATI Mach64 3D RAGE II+DVD +SEE ATI Mach64 + +NAME ATI Mach64 3D Rage IIC +SEE ATI Mach64 + +NAME ATI Mach64 3D Rage Pro +SEE ATI Mach64 + +NAME ATI 3D Pro Turbo +SEE ATI Mach64 + +NAME ATI 3D Pro Turbo PC2TV +SEE ATI Mach64 + +NAME ATI 3D Xpression +SEE ATI Mach64 + +NAME ATI 3D Xpression+ +SEE ATI Mach64 + +NAME ATI 3D Xpression+ PC2TV +SEE ATI Mach64 + +NAME ATI All-in-Wonder +SEE ATI Mach64 + +NAME ATI All-in-Wonder Pro +SEE ATI Mach64 + +NAME ATI Graphics Pro Turbo +SEE ATI Mach64 + +NAME ATI Graphics Pro Turbo 1600 +SEE ATI Mach64 + +NAME ATI Graphics Xpression +SEE ATI Mach64 + +NAME ATI Video Boost +SEE ATI Mach64 + +NAME ATI Video Charger +SEE ATI Mach64 + +NAME ATI Video Xpression +SEE ATI Mach64 + +NAME ATI Video Xpression+ +SEE ATI Mach64 + +NAME ATI WinBoost +SEE ATI Mach64 + +NAME ATI WinCharger +SEE ATI Mach64 + +NAME ATI WinTurbo +SEE ATI Mach64 + +NAME ATI Xpert 98 +SEE ATI Mach64 + +NAME ATI Xpert XL +SEE ATI Mach64 + +NAME ATI Xpert@Play +SEE ATI Mach64 + +NAME ATI Xpert@Play 98 +SEE ATI Mach64 + +NAME ATI Xpert@Work +SEE ATI Mach64 + +NAME ATI integrated on Intel Maui MU440EX motherboard +SEE ATI Mach64 + +NAME ASUS PCI-V264CT +SEE ATI Mach64 + +NAME ASUS PCI-AV264CT +SEE ATI Mach64 + +# AGX + +NAME AGX (generic) +CHIPSET AGX-014/15/16 +SERVER AGX +DRIVER vga +UNSUPPORTED + +NAME Boca Vortex (Sierra RAMDAC) +CHIPSET AGX-015 +SERVER AGX +DRIVER vga +UNSUPPORTED +RAMDAC sc15025 +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels + +NAME EIZO (VRAM) +SEE AGX (generic) + +NAME Orchid Celsius (AT&T RAMDAC) +CHIPSET AGX-015 +SERVER AGX +DRIVER vga +UNSUPPORTED +RAMDAC att20c490 +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels + +NAME Orchid Celsius (Sierra RAMDAC) +CHIPSET AGX-015 +SERVER AGX +DRIVER vga +UNSUPPORTED +RAMDAC sc15025 +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels + + +NAME Spider Black Widow +CHIPSET AGX-015 +SERVER AGX +DRIVER vga +UNSUPPORTED +RAMDAC sc15025 +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels + + +NAME Spider Black Widow Plus +CHIPSET AGX-016 +SERVER AGX +DRIVER vga +UNSUPPORTED +RAMDAC sc15025 +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels +LINE #Option "fifo_aggressive" # 3x bus bw - may result in random pixels +LINE #Probable clocks: +LINE #Clocks 25.2 28.3 39.9 72.2 50.0 76.9 36.1 44.8 +LINE #Clocks 89.0 119.8 79.9 31.5 110.0 64.9 74.9 94.9 + +NAME Hercules Graphite HG210 +CHIPSET AGX-014 +SERVER AGX +DRIVER vga +UNSUPPORTED +RAMDAC bt482 +DACSPEED 85 +LINE Chipset "AGX-014" +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Probable clocks: +LINE #Clocks 25.0 28.0 32.0 36.0 40.0 45.0 50.0 65.0 +LINE #Clocks 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 + +NAME Hercules Graphite Pro +CHIPSET AGX-015 +SERVER AGX +DRIVER vga +UNSUPPORTED +# Card specific DAC, doesn't appear in ramdac menu +LINE Ramdac "herc_dual_dac" +LINE Chipset "AGX-015" +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels +LINE #Probable clocks: +LINE #Clocks 25.0 28.0 32.0 36.0 40.0 45.0 50.0 65.0 +LINE #Clocks 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 + +NAME Hercules Graphite Power +CHIPSET AGX-016 +SERVER AGX +DRIVER vga +UNSUPPORTED +# Card specific DAC, doesn't appear in ramdac menu +# The glue logic state machine for RAMDAC switching doesn't work as +# documented, for now we're stuck with the small RAMDAC +LINE Ramdac "herc_small_dac" +LINE Chipset "AGX-016" +LINE Option "dac_8_bit" +LINE Option "no_wait_state" +LINE #Option "fifo_moderate" # 2x bus bw - may result in random pixels +LINE #Option "fifo_aggressive" # 3x bus bw - may result in random pixels +LINE #Probable clocks: +LINE #Clocks 25.0 28.0 32.0 36.0 40.0 45.0 50.0 65.0 +LINE #Clocks 70.0 75.0 80.0 85.0 90.0 95.0 100.0 110.0 + +NAME XGA-2 (ISA bus) +CHIPSET XGA-2 +SERVER AGX +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE +LINE #Instance 7 # XGA instance 0-7 +LINE #COPbase 0xC8F00 # XGA memory-mapped register address +LINE #POSbase 0 # Disable probing if above are specified + +NAME XGA-1 (ISA bus) +CHIPSET XGA-1 +SERVER AGX +DRIVER vga +UNSUPPORTED +LINE #Instance 7 # XGA instance 0-7 +LINE #COPbase 0xC8F00 # XGA memory-mapped register address +LINE #POSbase 0 # Disable probing if above are specified + +# WD + +NAME Paradise/WD 90CXX +CHIPSET WD90CXX +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME DFI-WG6000 +CHIPSET WD90C33 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Diamond SpeedStar 24X (not fully supported) +CHIPSET WD90C31 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME WD 90C24 (laptop) +CHIPSET WD90C24 +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE #Chipset "wd90c24" +LINE #Option "noaccel" # Use this if acceleration is causing problems +LINE #Clocks 25.175 28.322 65 36 # These are not programmable +LINE #Clocks 29.979 77.408 62.195 59.957 # These are programmable +LINE #Clocks 31.5 35.501 75.166 50.114 # These are not programmable +LINE #Clocks 39.822 72.038 44.744 80.092 # These are programmable +LINE #Clocks 44.297 # Must match Mclk + + +NAME WD 90C24A or 90C24A2 (laptop) +CHIPSET WD90C24A +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE #Chipset "wd90c24" +LINE #Clocks 25.175 28.322 65 36 # These are not programmable +LINE #Clocks 29.979 77.408 62.195 59.957 # These are programmable +LINE #Clocks 31.5 35.501 75.166 50.114 # These are not programmable +LINE #Clocks 39.822 72.038 44.744 80.092 # These are programmable +LINE #Clocks 44.297 # Must match Mclk + +# Avance Logic + +NAME Avance Logic 2101 +CHIPSET Avance Logic +LINE #chipset "al2101" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Avance Logic 2228 +CHIPSET Avance Logic +LINE #chipset "ali2228" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Avance Logic 2301 +CHIPSET Avance Logic +LINE #chipset "ali2301" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Avance Logic 2302 +CHIPSET Avance Logic +LINE #chipset "ali2302" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Avance Logic 2308 +CHIPSET Avance Logic +LINE #chipset "ali2308" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Avance Logic 2401 +CHIPSET Avance Logic +LINE #chipset "ali2401" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Hercules Stingray +CHIPSET ALG-2228/2301/2302 +LINE #chipset "ali2228" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME SPEA/V7 Mirage VEGA Plus +CHIPSET ALG-2228 +LINE #chipset "ali2228" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +# ARK Logic + +NAME Ark Logic ARK1000PV (generic) +CHIPSET ARK1000PV +SERVER SVGA +DRIVER vga +UNSUPPORTED + +# For now, treat the VL as a PV. This may be changed later +NAME Ark Logic ARK1000VL (generic) +CHIPSET ARK1000VL +LINE Chipset "ark1000pv" +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Ark Logic ARK2000PV (generic) +CHIPSET ARK1000PV +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Ark Logic ARK2000MT (generic) +CHIPSET ARK1000MT +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Hercules Stingray Pro +SEE Ark Logic ARK1000PV (generic) + +NAME Hercules Stingray Pro/V +SEE Ark Logic ARK1000PV (generic) + +NAME Ocean (octek) VL-VGA-1000 +RAMDAC att20c490 +SEE Ark Logic ARK1000VL (generic) + +NAME Hercules Stingray 64/V with ZoomDAC +SEE Ark Logic ARK2000PV (generic) + +NAME Hercules Stingray 64/V with ICS5342 +CHIPSET ARK2000MT +RAMDAC ics5342 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Diamond Stealth64 Graphics 2001 series +CHIPSET ARK2000PV +RAMDAC ics5342 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +# Oak + +NAME Oak ISA Card (generic) +CHIPSET Oak OTI-067/77 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Oak 87 VLB (generic) +CHIPSET Oak OTI-087 +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE Option "fifo_aggressive" # Comment this if you experience streaks. +LINE Option "no_wait" # Comment this if you find problems. +LINE #Option "enable_bitblt" # You may enable this and see if it works (see README.Oak file) + +NAME Oak 87 ISA (generic) +CHIPSET Oak OTI-087 +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE Option "noaccel" # ISA cards seem to have Color Expansion support broken +LINE #Option "enable_bitblt" # This should work on ISA, but lets not make it default just in case. + +NAME Paradise Accelerator Value +SEE Oak 87 ISA (generic) + +# P9000 + +NAME Diamond Viper VLB 2Mb +CHIPSET Weitek 9000 +SERVER P9000 +DRIVER vga +UNSUPPORTED +LINE #Clocks must match the mode clocks (XFree86 3.1 P9000 server) +LINE #Versions later than 3.1 do not require a clocks line +LINE Chipset "vipervlb" # Required for some cards which autodetect as PCI +LINE Videoram 2048 # Required +LINE Membase 0x80000000 # Optional (0x80000000 is default) +NOCLOCKPROBE + +NAME Diamond Viper PCI 2Mb +CHIPSET Weitek 9000 +SERVER P9000 +DRIVER vga +UNSUPPORTED +LINE #Clocks must match the mode clocks (XFree86 3.1 P9000 server) +LINE #Versions later than 3.1 do not require a clocks line +LINE Videoram 2048 # Required +LINE #Membase 0x80000000 # Use scanpci to get the correct Membase +NOCLOCKPROBE + +NAME Orchid P9000 VLB +CHIPSET Weitek 9000 +SERVER P9000 +DRIVER vga +UNSUPPORTED +LINE Chipset "orchid_p9000" +LINE Membase 0xE0000000 +NOCLOCKPROBE + +# P9100 + +NAME Weitek P9100 (generic) +CHIPSET Weitek P9100 +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME Diamond Viper Pro Video +SEE Weitek P9100 (generic) + +# Trident + +NAME Trident 8900/9000 (generic) +CHIPSET TVGA8900/9000 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Trident 8900D (generic) +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Trident TVGA9200CXr (generic) +CHIPSET TVGA9200CXr +SERVER SVGA +DRIVER vga +UNSUPPORTED + +NAME Trident TGUI9400CXi (generic) +CHIPSET TGUI9400CXi +SERVER SVGA +DRIVER trident + +NAME Trident TGUI9420DGi (generic) +CHIPSET TGUI9420DGi +SERVER SVGA +DRIVER trident + +NAME Trident TGUI9430DGi (generic) +CHIPSET TGUI9430DGi +SERVER SVGA +DRIVER trident + +NAME Trident TGUI9420 (generic) +CHIPSET TGUI9420 +DRIVER trident +NOCLOCKPROBE + +NAME Trident TGUI9440 (generic) +CHIPSET TGUI9440 +DRIVER trident +NOCLOCKPROBE + +NAME Trident TGUI9660 (generic) +CHIPSET TGUI9660 +DRIVER trident +NOCLOCKPROBE + +NAME Trident TGUI9680 (generic) +CHIPSET TGUI9680 +DRIVER trident +NOCLOCKPROBE + +NAME Trident TGUI9682 (generic) +CHIPSET TGUI9682 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident TGUI9685 (generic) +CHIPSET TGUI9685 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 9320 (generic) +CHIPSET Cyber9320 +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 9382 (generic) +CHIPSET Cyber9382 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 9385 (generic) +CHIPSET Cyber9385 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 9388 (generic) +CHIPSET Cyber9388 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 939a (generic) +CHIPSET Cyber939a +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 9397 (generic) +CHIPSET Cyber9397 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Cyber 9520 (generic) +CHIPSET Cyber9520 +DRIVER trident +NOCLOCKPROBE + +NAME Trident 3DImage975 (generic) +CHIPSET 3dimage975 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident 3DImage975 AGP (generic) +CHIPSET 3dimage975 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident 3DImage985 (generic) +CHIPSET 3dimage985 +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Providia 9682 (generic) +CHIPSET Providia9682 +DRIVER trident +NOCLOCKPROBE + +NAME Trident Providia 9685 (generic) +CHIPSET Providia9685 +DRIVER trident +NOCLOCKPROBE + +NAME Trident TVGA 8800BR +SEE * Generic VGA compatible + +NAME Trident TVGA 8800CS +SEE * Generic VGA compatible + +NAME Trident CyberBlade (generic) +CHIPSET CyberBlade +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +NAME Trident Blade3D (generic) +CHIPSET Blade3D +SERVER SVGA +DRIVER trident +NOCLOCKPROBE + +# SiS + +NAME SiS 530 +CHIPSET SIS530 +SERVER SVGA +DRIVER sis + +NAME SiS 620 +CHIPSET SIS620 +SERVER SVGA +DRIVER sis + +NAME SiS SG86C201 +CHIPSET SIS86C201 +SERVER SVGA +DRIVER sis + +NAME SiS SG86C205 +CHIPSET SIS86C205 +SERVER SVGA +DRIVER sis +LINE # Option "no_accel" # Use this if acceleration is causing problems +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +NOCLOCKPROBE + +NAME SiS SG86C215 +CHIPSET SIS86C215 +SERVER SVGA +DRIVER sis +LINE # This is a cheap version of 86c205. I am not sure if acceleration works +LINE # Option "no_accel" # Use this if acceleration is causing problems +LINE # Option "no_BitBlt" # Use this if acceleration is causing problems +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +NOCLOCKPROBE + +NAME SiS SG86C225 +CHIPSET SIS86C225 +SERVER SVGA +DRIVER sis +LINE # Option "no_accel" # Use this if acceleration is causing problems +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +NOCLOCKPROBE + +NAME SiS 5597 +CHIPSET SiS5597 +SERVER SVGA +DRIVER sis +LINE # Option "no_accel" # Use this if acceleration is causing problems +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +LINE # Option "fast_vram" +LINE # Option "pci_burst_on" +LINE # Option "xaa_benchmark" # DON'T use with "ext_eng_queue" !!! +LINE # Option "ext_eng_queue" # Turbo-queue. This can cause drawing +LINE # errors, but gives some accel +NOCLOCKPROBE + +NAME SiS 5598 +CHIPSET SIS5598 +SERVER SVGA +DRIVER sis +LINE # Option "no_accel" # Use this if acceleration is causing problems +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +LINE # Option "fast_vram" +LINE # Option "pci_burst_on" +LINE # Option "xaa_benchmark" # DON'T use with "ext_eng_queue" !!! +LINE # Option "ext_eng_queue" # Turbo-queue. This can cause drawing +LINE # errors, but gives some accel +NOCLOCKPROBE + +NAME SiS 6326 +CHIPSET SiS6326 +SERVER SVGA +DRIVER sis +LINE # Option "no_accel" # Use this if acceleration is causing problems +LINE # Option "fifo_moderate" +LINE # Option "fifo_conserv" +LINE # Option "fifo_aggressive" +LINE # Option "fast_vram" +LINE # Option "pci_burst_on" +LINE # Option "xaa_benchmark" # DON'T use with "ext_eng_queue" !!! +LINE # Option "ext_eng_queue" # Turbo-queue. This can cause drawing +LINE # errors, but gives some accel +NOCLOCKPROBE + +NAME MSI MS-4417 +SEE SiS 6326 + +NAME SiS 3D PRO AGP +SEE SiS 6326 + +NAME Miro Crystal DVD +SEE SiS 6326 + +NAME PC-Chips M567 Mainboard +SEE SiS 5597 + +NAME Diamond SpeedStar A50 +SEE SiS 6326 + +# Cyrix + +NAME MediaGX +CHIPSET mediagx +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +# Alliance ProMotion + +NAME Alliance ProMotion 6422 +CHIPSET AP6422 +SERVER SVGA +DRIVER vga +UNSUPPORTED + +# Number 9 I128 + +NAME Number Nine Imagine I-128 +CHIPSET I128 +SERVER I128 +DRIVER i128 +NOCLOCKPROBE + +NAME Number Nine Imagine I-128 Series 2 +CHIPSET I128 +SERVER I128 +DRIVER i128 +NOCLOCKPROBE + +NAME Number Nine Revolution 3D (T2R) +CHIPSET I128 +SERVER I128 +DRIVER i128 +NOCLOCKPROBE + +NAME Number Nine Imagine-128 Revolution IV (T2R4) +CHIPSET I128 +SERVER I128 +DRIVER i128 +NOCLOCKPROBE + +# Matrox + +NAME Matrox Millennium 2MB +CHIPSET mga2064w +SERVER SVGA +DRIVER mga +LINE VideoRam 2048 +NOCLOCKPROBE + +NAME Matrox Millennium 4MB +CHIPSET mga2064w +SERVER SVGA +DRIVER mga +LINE VideoRam 4096 +NOCLOCKPROBE + +NAME Matrox Millennium 8MB +CHIPSET mga2064w +SERVER SVGA +DRIVER mga +LINE VideoRam 8192 +NOCLOCKPROBE + +NAME Matrox Millennium II 4MB +CHIPSET mga2164w +SERVER SVGA +DRIVER mga +LINE VideoRam 4096 +NOCLOCKPROBE + +NAME Matrox Millennium II 8MB +CHIPSET mga2164w +SERVER SVGA +DRIVER mga +LINE VideoRam 8192 +NOCLOCKPROBE + +NAME Matrox Millennium II 16MB +CHIPSET mga2164w +SERVER SVGA +DRIVER mga +LINE VideoRam 16384 +NOCLOCKPROBE + +NAME Matrox Millennium G200 4MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 4096 +NOCLOCKPROBE + +NAME Matrox Millennium G200 8MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 8192 +NOCLOCKPROBE + +NAME Matrox Millennium G200 16MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 16384 +NOCLOCKPROBE + +NAME Matrox Millennium G200 SD 4MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 4096 +LINE # Option "mga_sdram" +NOCLOCKPROBE + +NAME Matrox Millennium G200 SD 8MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 8192 +LINE # Option "mga_sdram" +NOCLOCKPROBE + +NAME Matrox Millennium G200 SD 16MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 16384 +LINE # Option "mga_sdram" +NOCLOCKPROBE + +NAME Matrox Mystique +CHIPSET mga1064sg +SERVER SVGA +DRIVER mga +NOCLOCKPROBE + +NAME Matrox Mystique G200 4MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 4096 +NOCLOCKPROBE + +NAME Matrox Mystique G200 8MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 8192 +NOCLOCKPROBE + +NAME Matrox Millennium G400 +CHIPSET mgag400 +SERVER SVGA +DRIVER mga +NOCLOCKPROBE + +NAME Matrox Mystique G200 16MB +CHIPSET mgag200 +SERVER SVGA +DRIVER mga +LINE VideoRam 16384 +NOCLOCKPROBE + +NAME Matrox Productiva G100 4MB +CHIPSET mgag100 +SERVER SVGA +DRIVER mga +LINE VideoRam 4096 +NOCLOCKPROBE + +NAME Matrox Productiva G100 8MB +CHIPSET mgag100 +SERVER SVGA +DRIVER mga +LINE VideoRam 8192 +NOCLOCKPROBE + +# NVIDIA + +NAME Diamond Edge 3D +CHIPSET nv1 +SERVER SVGA +DRIVER vga +UNSUPPORTED +NOCLOCKPROBE + +NAME RIVA128 +CHIPSET RIVA128 +SERVER SVGA +DRIVER nv +NOCLOCKPROBE + +NAME RIVA TNT +CHIPSET RIVATNT +SERVER SVGA +DRIVER nv +NOCLOCKPROBE + +NAME RIVA TNT2 +CHIPSET RIVATNT2 +SERVER SVGA +DRIVER nv +NOCLOCKPROBE + +NAME NVIDIA GeForce +CHIPSET GeForce +SERVER SVGA +DRIVER nv +NOCLOCKPROBE + +NAME ELSA VICTORY ERAZOR +SEE RIVA128 + +NAME ELSA Winner 1000 R3D +SEE RIVA128 + +NAME ELSA ERAZOR II +SEE RIVA TNT + +NAME Diamond Viper 330 +SEE RIVA128 + +NAME Diamond Viper 550 +SEE RIVA TNT + +NAME Diamond Viper 770 +SEE RIVA TNT2 + +NAME STB Velocity 128 +SEE RIVA128 + +NAME STB nvidia 128 +SEE RIVA128 + +NAME STB Velocity 4400 +SEE RIVA TNT + +NAME ASUS 3Dexplorer +SEE RIVA128 + +NAME Guillemot Maxi Gamer Xentor +SEE RIVA TNT2 + +NAME Guillemot Maxi Gamer Xentor 32 +SEE RIVA TNT2 + +NAME Creative Graphics Blaster TNT +SEE RIVA TNT + +NAME Creative Graphics Blaster TNT2 +SEE RIVA TNT2 + +# 3Dfx +NAME Voodoo Banshee (generic) +SERVER SVGA +CHIPSET 3dfx Banshee +DRIVER tdfx + +NAME Voodoo3 (generic) +SERVER SVGA +CHIPSET 3dfx Voodoo3 +DRIVER tdfx + +NAME Elsa Victory II +SEE Voodoo Banshee (generic) + +NAME Diamond Monster Fusion +SEE Voodoo Banshee (generic) + +NAME AOpen PA2010 +SEE Voodoo Banshee (generic) + +NAME Chaintech Desperado 3F10 +SEE Voodoo Banshee (generic) + +# 3DLabs + +NAME ELSA GLoria-L/MX +CHIPSET GLINT MX +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME ELSA GLoria-L +CHIPSET GLINT 500TX +SERVER 3DLabs +DRIVER glint +NOCLOCKPROBE + +NAME ELSA GLoria-XL +CHIPSET GLINT MX +SERVER 3DLabs +DRIVER glint +NOCLOCKPROBE + +NAME Diamond Fire GL 3000 +CHIPSET GLINT 500TX +SERVER 3DLabs +DRIVER glint +LINE Option "firegl_3000" +NOCLOCKPROBE + +NAME ELSA GLoria-S +CHIPSET PERMEDIA +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +LINE #VideoRam 8192 +NOCLOCKPROBE + +NAME Diamond Fire GL 1000 +CHIPSET PERMEDIA +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +LINE #VideoRam 8192 +NOCLOCKPROBE + +NAME ELSA GLoria Synergy +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME ELSA Winner 2000/Office +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME Diamond Fire GL 1000 PRO +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME Creative Blaster Exxtreme +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME AccelStar Permedia II AGP +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME Leadtek WinFast 2300 +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +NOCLOCKPROBE + +NAME 3DLabs Oxygen GMX +CHIPSET PERMEDIA 2 +SERVER 3DLabs +DRIVER glint +LINE #Option "no_accel" +NOCLOCKPROBE + +NAME Appian Jeronimo 2000 +CHIPSET PERMEDIA 3 +SERVER 3DLabs +DRIVER glint +NOCLOCKPROBE + +# Alliance Semiconductor + +NAME Diamond Stealth Video 2500 +CHIPSET Alliance AT24 +SERVER SVGA +DRIVER apm +NOCLOCKPROBE + +NAME AT3D +CHIPSET Alliance AT3D +SERVER SVGA +DRIVER apm +NOCLOCKPROBE +LINE #Option "no_accel" + +NAME AT25 +SEE AT3D + +NAME Hercules Stingray 128 3D +SEE AT3D + +# NeoMagic + +NAME NeoMagic (laptop/notebook) +CHIPSET MagicGraph 128 series +SERVER SVGA +DRIVER neomagic +LINE # Chipset "NM2160" +LINE # IOBase 0xfea00000 +LINE # MemBase 0xfd000000 +LINE # VideoRam 2048 +LINE # DacSpeed 90 +LINE # Option "linear" +LINE # Option "nolinear" +LINE # Option "sw_cursor" +LINE # Option "hw_cursor" +LINE # Option "no_accel" +LINE # Option "intern_disp" +LINE # Option "extern_disp" +LINE # Option "mmio" +LINE # Option "no_mmio" +LINE # Option "lcd_center" +LINE # Option "no_stretch" + +# Epson SPC8110 + +NAME EPSON SPC8110 (CardPC) +CHIPSET SPC8110 +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE # Chipset "spc8110" +LINE # MemBase 0x03e00000 +LINE # VideoRam 1024 +LINE # Option "nolinear" +LINE # Option "sw_cursor" +LINE # Option "noaccel" +LINE # Option "fifo_moderate" +LINE # Option "fifo_conservative" + +# Silicon Motion, Inc. + +NAME Silicon Motion Lynx family +CHIPSET Lynx +SERVER SVGA +DRIVER siliconmotion +NOCLOCKPROBE + +# Rendition + +NAME Rendition Verite 1000 +CHIPSET Verite 1000 +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE # Option "sw_cursor" + +NAME Rendition Verite 2x00 +CHIPSET Verite 2x00 +SERVER SVGA +DRIVER vga +UNSUPPORTED +LINE # Option "sw_cursor" + +NAME Creative Labs 3D Blaster PCI (Verite 1000) +SEE Rendition Verite 1000 + +NAME Canopus Total-3D +SEE Rendition Verite 1000 + +NAME Sierra Screaming 3D +SEE Rendition Verite 1000 + +NAME Miro CRYSTAL VRX +SEE Rendition Verite 1000 + +NAME Diamond Stealth II S220 +CHIPSET Verite 2100 +SEE Rendition Verite 2x00 + +NAME Hercules Thriller3D +CHIPSET Verite 2200 +SEE Rendition Verite 2x00 + +# Digital + +NAME Digital 8-plane TGA (UDB/Multia) +CHIPSET TGA +SERVER TGA +DRIVER tga +RAMDAC Bt485 + +NAME Digital 8-plane TGA (ZLXp-E1) +CHIPSET TGA +SERVER TGA +DRIVER tga +RAMDAC Bt485 + +NAME Digital 24-plane TGA (ZLXp-E2) +CHIPSET TGA +SERVER TGA +DRIVER tga +RAMDAC Bt463 + +NAME Digital 24-plane+3D TGA (ZLXp-E3) +CHIPSET TGA +SERVER TGA +DRIVER tga +RAMDAC Bt463 + +# i810 + +NAME Intel 810 +SERVER SVGA +DRIVER i810 + +# i740 + +NAME Intel 740 (generic) +SERVER SVGA +DRIVER i740 + +# Misc + +END diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/Cards98 b/xorg-server/hw/xfree86/utils/xorgconfig/Cards98 new file mode 100644 index 000000000..ef14a0345 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/Cards98 @@ -0,0 +1,647 @@ +# $XFree86: xc/programs/Xserver/hw/xfree98/xf86config/Cards98,v 1.7 1998/06/04 16:43:45 hohndel Exp $ +# +# +# +# $XConsortium: Cards /main/27 1996/10/28 05:43:53 kaleb $ +# This is the database of card definitions used by xf86config. +# Each definition should have a NAME entry, CHIPSET (descriptive) and +# SERVER (one of EGC, GANBWAP, PEGC, NKVNEC, WABS, WABEP, WSNA, TGUI, +# MGA, SVGA, NECS3, PWSKB, PWLB, GA968). +# A reference to another definition is made with SEE (already defined +# entries are not overridden). +# Optional entries are RAMDAC (identifier), CLOCKCHIP (identifier), +# DACSPEED, NOCLOCKPROBE (advises never to probe clocks), UNSUPPORTED +# (indicates card that is not yet properly supported by a dedicated +# server). A LINE entry adds a line of text to be included in the +# Device section (can include options or comments). +# There's no CLOCKS option (although a Clocks line can be included +# with LINE), as it is very undesirable to have a Clocks line that +# is incorrect. The idea is that the Clocks are probed for to be +# sure (a commented suggested Clocks line can be included). +# +# The majority of entries are just a binding of a model name to a +# chipset/server and untested. +# + +# EGC + +NAME EGC16 +CHIPSET EGC +SERVER EGC +LINE Chipset "vga" + +# PEGC + +NAME PEGC +CHIPSET PEGC +SERVER PEGC +LINE VideoRam 512 +LINE Clocks 31.5 +LINE # Virtual resolution for 640x400 +LINE # Clocks 28.322 + +# GANBWAP + +NAME GA-98NBI +CHIPSET CL-GD5434 +SERVER GANBWAP +LINE ClockChip "cirrus" +LINE Option "ga98nb1" +LINE Option "no_mmio" +LINE # Option "sw_cursor" + +NAME GA-98NBII +CHIPSET CL-GD5434 +SERVER GANBWAP +LINE ClockChip "cirrus" +LINE Option "ga98nb2" +LINE Option "no_mmio" +LINE # Option "sw_cursor" + +NAME GA-98NBIV +CHIPSET CL-GD5434 +SERVER GANBWAP +LINE ClockChip "cirrus" +LINE Option "ga98nb4" +LINE Option "no_mmio" +LINE # Option "sw_cursor" + +NAME WAP-2000/4000 +CHIPSET CL-GD5434 +SERVER GANBWAP +LINE Option "wap" +LINE Option "no_mmio" +LINE # Option "epsonmemwin" + +# NKVNEC + +NAME PCNKV/PCNKV2/NEC_CIRRUS +CHIPSET CL-GD5428/5429/5430 +SERVER NKVNEC +LINE # Option "fast_dram" +LINE VideoRam 1024 + +NAME PC9821Bf/U8W +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Bp/U8W/U7W +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Bs/U7W +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Be/U7W +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821BA3/U2/W +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821BX3/U2/W +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821BX4/U2 +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Cb +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Ce +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Cf +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Ce2 +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Cs +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Cs2 +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Cx +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Cx2 +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Es +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Nd +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Ne2 +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Nf +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Np +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Ns +LINE Option "nec_cirrus" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V7/C +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V10/C,S +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V12/S +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V13/S +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V16/S +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V16/S5V,P +LINE Chipset "clgd5446" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821V20/S7 +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xb10 +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xc13/S5 +LINE Chipset "clgd5446" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xc16/M,S +LINE Chipset "clgd5446" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xc200/M,S +LINE Chipset "clgd5446" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xa7e +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xe +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC9821Xe10 +LINE Chipset "clgd5430" +LINE Option "nec_cirrus" +LINE Option "no_mmio" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC486MR +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC486MS +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC486MU +LINE Chipset "clgd5429" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC486MV +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC586MV +SEE PCNKV/PCNKV2/NEC_CIRRUS + +NAME PC586RV +LINE Chipset "clgd5429" +SEE PCNKV/PCNKV2/NEC_CIRRUS + +# WABS + +NAME WAB-S +CHIPSET CL-GD5426/5428 +SERVER WABS +LINE VideoRam 1024 +LINE # VideoRam 2048 + +NAME WAB-1000/2000 +CHIPSET CL-GD5428 +SERVER WABS +LINE VideoRam 1024 +LINE # VideoRam 2048 + +NAME WSR-E/G +SEE WAB-1000/2000 + +# WABEP + +NAME WAB-EP +CHIPSET CL-GD5428 +SERVER WABEP +LINE Option "med_dram" + +# WSNA + +NAME WSN-A2F +CHIPSET CL-GD5434 +SERVER WSNA +LINE Option "no_mmio" +LINE Option "med_dram" + +# TGUI + +NAME NEC Trident +CHIPSET TGUI9680/9682 +SERVER TGUI +LINE Option "xaa_no_color_exp" +LINE # Option "noaccel" +LINE # Option "Linear" +LINE # Option "med_dram" +LINE # Option "hw_cursor" + +NAME PC9821Ra20/N +SEE NEC Trident + +NAME PC9821RaII23/N,W +SEE NEC Trident + +NAME PC9821Ra266/N,W +SEE NEC Trident + +NAME PC9821Rs20/B20 +SEE NEC Trident + +NAME PC9821RsII26/B40 +SEE NEC Trident + +NAME PC9821V13/M7 +SEE NEC Trident + +NAME PC9821V16/M7 +SEE NEC Trident + +NAME PC9821V20/M7 +SEE NEC Trident + +NAME PC9821Xa7/C,K +SEE NEC Trident + +NAME PC9821Xa9/C,K +SEE NEC Trident + +NAME PC9821Xa10/C,K +SEE NEC Trident + +NAME PC9821Xa12/C,K +SEE NEC Trident + +NAME PC9821Xa13/C,K,W +SEE NEC Trident + +NAME PC9821Xa16/R,W +SEE NEC Trident + +NAME PC9821Xa20/W +SEE NEC Trident + +NAME PC9821Xc13/M,S +SEE NEC Trident + +NAME PC9821Xv13/R +SEE NEC Trident + +NAME GA-DRV/98 +CHIPSET TGUI9680 +SERVER TGUI +LINE Option "noaccel" +LINE # Option "med_dram" +LINE # Option "hw_cursor" + +# MGA + +NAME MGA Millennium +CHIPSET MGA2064W +SERVER MGA + +NAME PC9821Xt13 +SEE MGA Millennium + +NAME PC9821Xt16 +SEE MGA Millennium + +NAME PC9821Xv13/W +SEE MGA Millennium + +NAME PC9821Xv20/W +SEE MGA Millennium + +NAME PC9821St15 +SEE MGA Millennium + +NAME PC9821St20 +SEE MGA Millennium + +NAME PC9821RvII26/N20 +SEE MGA Millennium + +NAME NEC FC-WAB-X2 +SEE MGA Millennium + +NAME MGA Mystique +CHIPSET MGA1064SG +SERVER MGA + +NAME PC9821V166/S +LINE VideoRam 2048 +SEE MGA Mystique + +NAME PC9821V200/S +LINE VideoRam 2048 +SEE MGA Mystique + +NAME PC9821V200/M +LINE VideoRam 4096 +SEE MGA Mystique + +NAME PC9821V233/M7 +LINE VideoRam 2048 +SEE MGA Mystique + +NAME PC9821V233/M7V +LINE VideoRam 4096 +SEE MGA Mystique + +# SVGA + +NAME NEC Cirrus 755x +CHIPSET CL-GD7555 +LINE Chipset "clgd7555" +LINE # VideoRam 2048 +LINE # Option "no_bitblt" +LINE # Option "fast_dram" +LINE Option "linear" +LINE Option "noaccel" +SERVER SVGA + +NAME PC9821Nr12 +SEE NEC Cirrus 755x + +NAME PC9821Nr13 +SEE NEC Cirrus 755x + +NAME PC9821La13 +SEE NEC Cirrus 755x + +NAME PC9821Ls12 +SEE NEC Cirrus 755x + +NAME PC9821Ls13 +SEE NEC Cirrus 755x + +NAME PC9821Ls150 +SEE NEC Cirrus 755x + +# NECS3 + +NAME NEC WAB-A/B +CHIPSET S3 928 +SERVER NECS3 +LINE Chipset "s3_generic" +LINE Dacspeed 110 +LINE Ramdac "sc15025" +LINE Option "dac_8_bit" +LINE # Option "necwab" +LINE # Option "nomemaccess" +LINE Clocks 25.0 28.0 40.0 0.0 50.0 77.0 36.0 45.0 +LINE Clocks 130.0 120.0 80.0 31.0 110.0 65.0 75.0 94.0 + +NAME NEC FC-WAB-A/B +CHIPSET S3 928 +SERVER NECS3 +LINE Chipset "s3_generic" +LINE Dacspeed 110 +LINE Ramdac "bt485" +LINE Option "necwab" +LINE Option "nomemaccess" +LINE Option "noinit" +LINE Option "nolinear" +LINE Clocks 25.0 28.0 40.0 0.0 50.0 77.0 36.0 45.0 +LINE Clocks 130.0 120.0 80.0 31.0 110.0 65.0 75.0 94.0 + +NAME PC9821Af/U9W E09? +SEE NEC WAB-A/B + +NAME PC9821An/U8W +SEE NEC WAB-A/B + +NAME PC9821Ap2/U8W/C9W +SEE NEC WAB-A/B + +NAME PC9821As2/U7W/U8W +SEE NEC WAB-A/B + +NAME NEC 864 +CHIPSET S3 864 +SERVER NECS3 +LINE Chipset "s3_generic" +LINE Option "necwab" +LINE Ramdac "s3_sdac" +LINE ClockChip "s3_sdac" + +NAME PC9821Ap3 +SEE NEC 864 + +NAME PC9821As3 +SEE NEC 864 + +NAME PC9821Xp +SEE NEC 864 + +NAME PC9821Xs +SEE NEC 864 + +# PWSKB + +NAME PowerWindow 928/801 +CHIPSET S3 928 +SERVER PWSKB +LINE Chipset "s3_generic" +LINE # Chipset "mmio_928" +LINE Ramdac "sc15025" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE # Option "epsonmemwin" +LINE # Option "nomemaccess" +LINE ClockChip "icd2061a" + +NAME PowerWindow 928II +CHIPSET S3 928 +SERVER PWSKB +LINE Chipset "s3_generic" +LINE # Chipset "mmio_928" +LINE Ramdac "att20c505" +LINE # Ramdac "bt485" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE # Option "pw_mux" +LINE Option "bt485_curs" +LINE # Option "epsonmemwin" +LINE # Option "nomemaccess" +LINE ClockChip "icd2061a" + +NAME PowerWindow 805i +CHIPSET S3 805 +SERVER PWSKB +LINE Chipset "s3_generic" +LINE Ramdac "s3gendac" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE # Option "pw805i" +LINE # Option "epsonmemwin" +LINE # Option "nomemaccess" +LINE ClockChip "s3_sdac" + +NAME PowerWindow 928G +CHIPSET S3 928 +SERVER PWSKB +LINE Chipset "s3_generic" +LINE # Chipset "mmio_928" +LINE Ramdac "sc15025" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE # Option "nomemaccess" +LINE # Option "nolinear" +LINE ClockChip "icd2061a" + +NAME PCSKB/PCSKB2 +CHIPSET S3 911/924 +SERVER PWSKB +LINE Chipset "s3_generic" +LINE Ramdac "sc15025" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE # Option "nomemaccess" +LINE Option "pcskb" +LINE Clocks 25.0 28.0 40.0 0.0 50.0 77.0 36.0 45.0 +LINE Clocks 130.0 120.0 80.0 31.0 110.0 65.0 75.0 94.0 + +NAME PCSKB3/PCSKB4/PCPKB4 +CHIPSET S3 928 +SERVER PWSKB +LINE Chipset "s3_generic" +LINE Ramdac "sc15025" +LINE # Ramdac "att20c498" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE Option "nomemaccess" +LINE Option "pcskb4" +LINE Clocks 25.0 28.0 40.0 0.0 50.0 77.0 36.0 45.0 +LINE Clocks 130.0 120.0 80.0 31.0 110.0 65.0 75.0 94.0 + +# PWLB + +NAME PowerWindow 928GLB +CHIPSET S3 928 +SERVER PWLB +LINE Chipset "s3_generic" +LINE # Chipset "mmio_928" +LINE Ramdac "sc15025" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE # Option "pw_localbus" +LINE # Option "nomemaccess" +LINE # Option "nolinear" +LINE ClockChip "icd2061a" + +NAME PowerWindow 928IILB +CHIPSET S3 928 +SERVER PWLB +LINE Chipset "s3_generic" +LINE # Chipset "mmio_928" +LINE Ramdac "att20c505" +LINE # Ramdac "bt485" +LINE Dacspeed 110 +LINE Option "dac_8_bit" +LINE Option "bt485_curs" +LINE Option "pw_localbus" +LINE # Option "pw_mux" +LINE # Option "nomemaccess" +LINE # Option "nolinear" +LINE ClockChip "icd2061a" + +NAME PowerWindow 964LB +CHIPSET S3 964 +SERVER PWLB +LINE Chipset "s3_generic" +LINE Option "pw_localbus" +LINE Option "number_nine" +LINE Ramdac "ti3025" +LINE ClockChip "ti3025" +LINE VideoRam 4096 + +# GA968 + +NAME GA-968V4/PCI +CHIPSET S3 968 +SERVER GA968 +LINE Chipset "s3_generic" +LINE # Chipset "mmio_928" +LINE VideoRam 4096 diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/Makefile.am b/xorg-server/hw/xfree86/utils/xorgconfig/Makefile.am new file mode 100644 index 000000000..dabfc3214 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/Makefile.am @@ -0,0 +1,70 @@ +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, and/or sell copies of the Software, and to permit persons +# to whom the Software is furnished to do so, provided that the above +# copyright notice(s) and this permission notice appear in all copies of +# the Software and that both the above copyright notice(s) and this +# permission notice appear in supporting documentation. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# Except as contained in this notice, the name of a copyright holder +# shall not be used in advertising or otherwise to promote the sale, use +# or other dealings in this Software without prior written authorization +# of the copyright holder. +# + +bin_PROGRAMS = xorgconfig + +X11dir = $(libdir)/X11 +dist_X11_DATA = Cards + +xorgconfig_CFLAGS = @XORGCONFIG_DEP_CFLAGS@ \ + -DCARD_DATABASE_FILE='"$(X11dir)/Cards"' \ + -DPROJECTROOT='"$(PROJECTROOT)"' \ + -DFILEMANSUFFIX='"$(FILE_MAN_SUFFIX)"' \ + -DXVERSIONSTRING='"$(PACKAGE_STRING)"' + +xorgconfig_LDADD = @XORGCONFIG_DEP_LIBS@ + +xorgconfig_SOURCES = \ + cards.c \ + cards.h \ + xorgconfig.c + +# Man page +include $(top_srcdir)/cpprules.in + +appmandir = $(APP_MAN_DIR) + +appman_PRE = xorgconfig.man +appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) + +EXTRAMANDEFS = \ + -D__XCONFIGFILE__=$(__XCONFIGFILE__) \ + -D__XSERVERNAME__=$(XSERVERNAME) + +BUILT_SOURCES = $(appman_PRE) +CLEANFILES = $(appman_PRE) $(appman_DATA) + +SUFFIXES += .$(APP_MAN_SUFFIX) .man + +.man.$(APP_MAN_SUFFIX): + -rm -f $@ + $(LN_S) $< $@ + +EXTRA_DIST = \ + Cards98 \ + xorgconfig.man.pre diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/Makefile.in b/xorg-server/hw/xfree86/utils/xorgconfig/Makefile.in new file mode 100644 index 000000000..4e54d04a1 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/Makefile.in @@ -0,0 +1,857 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright 2005 Sun Microsystems, Inc. All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, and/or sell copies of the Software, and to permit persons +# to whom the Software is furnished to do so, provided that the above +# copyright notice(s) and this permission notice appear in all copies of +# the Software and that both the above copyright notice(s) and this +# permission notice appear in supporting documentation. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# Except as contained in this notice, the name of a copyright holder +# shall not be used in advertising or otherwise to promote the sale, use +# or other dealings in this Software without prior written authorization +# of the copyright holder. +# + +# -*- Makefile -*- +# Rules for generating files using the C pre-processor +# (Replaces CppFileTarget from Imake) + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = xorgconfig$(EXEEXT) +DIST_COMMON = $(dist_X11_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/cpprules.in +subdir = hw/xfree86/utils/xorgconfig +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/do-not-use-config.h \ + $(top_builddir)/include/xorg-server.h \ + $(top_builddir)/include/dix-config.h \ + $(top_builddir)/include/xgl-config.h \ + $(top_builddir)/include/xorg-config.h \ + $(top_builddir)/include/xkb-config.h \ + $(top_builddir)/include/xwin-config.h \ + $(top_builddir)/include/kdrive-config.h +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appmandir)" \ + "$(DESTDIR)$(X11dir)" +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +PROGRAMS = $(bin_PROGRAMS) +am_xorgconfig_OBJECTS = xorgconfig-cards.$(OBJEXT) \ + xorgconfig-xorgconfig.$(OBJEXT) +xorgconfig_OBJECTS = $(am_xorgconfig_OBJECTS) +xorgconfig_DEPENDENCIES = +xorgconfig_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(xorgconfig_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(xorgconfig_SOURCES) +DIST_SOURCES = $(xorgconfig_SOURCES) +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +appmanDATA_INSTALL = $(INSTALL_DATA) +dist_X11DATA_INSTALL = $(INSTALL_DATA) +DATA = $(appman_DATA) $(dist_X11_DATA) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ +ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ +ALLOCA = @ALLOCA@ +AMTAR = @AMTAR@ +APPDEFAULTDIR = @APPDEFAULTDIR@ +APPLE_APPLICATIONS_DIR = @APPLE_APPLICATIONS_DIR@ +APP_MAN_DIR = @APP_MAN_DIR@ +APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BASE_FONT_PATH = @BASE_FONT_PATH@ +BUILD_DATE = @BUILD_DATE@ +BUILD_TIME = @BUILD_TIME@ +CC = @CC@ +CCAS = @CCAS@ +CCASDEPMODE = @CCASDEPMODE@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +COMPILEDDEFAULTFONTPATH = @COMPILEDDEFAULTFONTPATH@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DARWIN_LIBS = @DARWIN_LIBS@ +DBUS_CFLAGS = @DBUS_CFLAGS@ +DBUS_LIBS = @DBUS_LIBS@ +DEFAULT_LIBRARY_PATH = @DEFAULT_LIBRARY_PATH@ +DEFAULT_LOGPREFIX = @DEFAULT_LOGPREFIX@ +DEFAULT_MODULE_PATH = @DEFAULT_MODULE_PATH@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DGA_CFLAGS = @DGA_CFLAGS@ +DGA_LIBS = @DGA_LIBS@ +DIX_CFLAGS = @DIX_CFLAGS@ +DLLTOOL = @DLLTOOL@ +DMXEXAMPLES_DEP_CFLAGS = @DMXEXAMPLES_DEP_CFLAGS@ +DMXEXAMPLES_DEP_LIBS = @DMXEXAMPLES_DEP_LIBS@ +DMXMODULES_CFLAGS = @DMXMODULES_CFLAGS@ +DMXMODULES_LIBS = @DMXMODULES_LIBS@ +DMXXIEXAMPLES_DEP_CFLAGS = @DMXXIEXAMPLES_DEP_CFLAGS@ +DMXXIEXAMPLES_DEP_LIBS = @DMXXIEXAMPLES_DEP_LIBS@ +DMXXMUEXAMPLES_DEP_CFLAGS = @DMXXMUEXAMPLES_DEP_CFLAGS@ +DMXXMUEXAMPLES_DEP_LIBS = @DMXXMUEXAMPLES_DEP_LIBS@ +DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ +DRI2PROTO_LIBS = @DRI2PROTO_LIBS@ +DRIPROTO_CFLAGS = @DRIPROTO_CFLAGS@ +DRIPROTO_LIBS = @DRIPROTO_LIBS@ +DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ +DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ +DRI_DRIVER_PATH = @DRI_DRIVER_PATH@ +DSYMUTIL = @DSYMUTIL@ +DTRACE = @DTRACE@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FILE_MAN_DIR = @FILE_MAN_DIR@ +FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ +FREETYPE_LIBS = @FREETYPE_LIBS@ +GLX_ARCH_DEFINES = @GLX_ARCH_DEFINES@ +GLX_DEFINES = @GLX_DEFINES@ +GL_CFLAGS = @GL_CFLAGS@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +HAL_CFLAGS = @HAL_CFLAGS@ +HAL_LIBS = @HAL_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KDRIVE_CFLAGS = @KDRIVE_CFLAGS@ +KDRIVE_INCS = @KDRIVE_INCS@ +KDRIVE_LIBS = @KDRIVE_LIBS@ +KDRIVE_LOCAL_LIBS = @KDRIVE_LOCAL_LIBS@ +KDRIVE_PURE_INCS = @KDRIVE_PURE_INCS@ +KDRIVE_PURE_LIBS = @KDRIVE_PURE_LIBS@ +LAUNCHD = @LAUNCHD@ +LDFLAGS = @LDFLAGS@ +LD_EXPORT_SYMBOLS_FLAG = @LD_EXPORT_SYMBOLS_FLAG@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ +LIBDRM_LIBS = @LIBDRM_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_MAN_DIR = @LIB_MAN_DIR@ +LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@ +LINUXDOC = @LINUXDOC@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MAKE_HTML = @MAKE_HTML@ +MAKE_PDF = @MAKE_PDF@ +MAKE_PS = @MAKE_PS@ +MAKE_TEXT = @MAKE_TEXT@ +MESA_SOURCE = @MESA_SOURCE@ +MISC_MAN_DIR = @MISC_MAN_DIR@ +MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ +MKDIR_P = @MKDIR_P@ +MKFONTDIR = @MKFONTDIR@ +MKFONTSCALE = @MKFONTSCALE@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCCLD = @OBJCCLD@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJCFLAGS = @OBJCFLAGS@ +OBJCLINK = @OBJCLINK@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ +OPENSSL_LIBS = @OPENSSL_LIBS@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@ +PCIACCESS_LIBS = @PCIACCESS_LIBS@ +PCI_TXT_IDS_PATH = @PCI_TXT_IDS_PATH@ +PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ +PROJECTROOT = @PROJECTROOT@ +PS2PDF = @PS2PDF@ +RANLIB = @RANLIB@ +RAWCPP = @RAWCPP@ +RAWCPPFLAGS = @RAWCPPFLAGS@ +SED = sed +SERVER_MISC_CONFIG_PATH = @SERVER_MISC_CONFIG_PATH@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SOLARIS_ASM_CFLAGS = @SOLARIS_ASM_CFLAGS@ +SOLARIS_INOUT_ARCH = @SOLARIS_INOUT_ARCH@ +STRIP = @STRIP@ +TSLIB_CFLAGS = @TSLIB_CFLAGS@ +TSLIB_LIBS = @TSLIB_LIBS@ +UTILS_SYS_LIBS = @UTILS_SYS_LIBS@ +VENDOR_MAN_VERSION = @VENDOR_MAN_VERSION@ +VENDOR_NAME = @VENDOR_NAME@ +VENDOR_NAME_SHORT = @VENDOR_NAME_SHORT@ +VENDOR_RELEASE = @VENDOR_RELEASE@ +VERSION = @VERSION@ +X11APP_ARCHS = @X11APP_ARCHS@ +X11EXAMPLES_DEP_CFLAGS = @X11EXAMPLES_DEP_CFLAGS@ +X11EXAMPLES_DEP_LIBS = @X11EXAMPLES_DEP_LIBS@ +XDMCP_CFLAGS = @XDMCP_CFLAGS@ +XDMCP_LIBS = @XDMCP_LIBS@ +XDMXCONFIG_DEP_CFLAGS = @XDMXCONFIG_DEP_CFLAGS@ +XDMXCONFIG_DEP_LIBS = @XDMXCONFIG_DEP_LIBS@ +XDMX_CFLAGS = @XDMX_CFLAGS@ +XDMX_LIBS = @XDMX_LIBS@ +XDMX_SYS_LIBS = @XDMX_SYS_LIBS@ +XEGLMODULES_CFLAGS = @XEGLMODULES_CFLAGS@ +XEGL_LIBS = @XEGL_LIBS@ +XEGL_SYS_LIBS = @XEGL_SYS_LIBS@ +XEPHYR_CFLAGS = @XEPHYR_CFLAGS@ +XEPHYR_DRI_LIBS = @XEPHYR_DRI_LIBS@ +XEPHYR_INCS = @XEPHYR_INCS@ +XEPHYR_LIBS = @XEPHYR_LIBS@ +XF86CONFIGFILE = @XF86CONFIGFILE@ +XF86MISC_CFLAGS = @XF86MISC_CFLAGS@ +XF86MISC_LIBS = @XF86MISC_LIBS@ +XF86VIDMODE_CFLAGS = @XF86VIDMODE_CFLAGS@ +XF86VIDMODE_LIBS = @XF86VIDMODE_LIBS@ +XGLMODULES_CFLAGS = @XGLMODULES_CFLAGS@ +XGLMODULES_LIBS = @XGLMODULES_LIBS@ +XGLXMODULES_CFLAGS = @XGLXMODULES_CFLAGS@ +XGLXMODULES_LIBS = @XGLXMODULES_LIBS@ +XGLX_LIBS = @XGLX_LIBS@ +XGLX_SYS_LIBS = @XGLX_SYS_LIBS@ +XGL_LIBS = @XGL_LIBS@ +XGL_MODULE_PATH = @XGL_MODULE_PATH@ +XGL_SYS_LIBS = @XGL_SYS_LIBS@ +XKB_BASE_DIRECTORY = @XKB_BASE_DIRECTORY@ +XKB_BIN_DIRECTORY = @XKB_BIN_DIRECTORY@ +XKB_COMPILED_DIR = @XKB_COMPILED_DIR@ +XKM_OUTPUT_DIR = @XKM_OUTPUT_DIR@ +XLIB_CFLAGS = @XLIB_CFLAGS@ +XLIB_LIBS = @XLIB_LIBS@ +XNESTMODULES_CFLAGS = @XNESTMODULES_CFLAGS@ +XNESTMODULES_LIBS = @XNESTMODULES_LIBS@ +XNEST_LIBS = @XNEST_LIBS@ +XNEST_SYS_LIBS = @XNEST_SYS_LIBS@ +XORGCFG_DEP_CFLAGS = @XORGCFG_DEP_CFLAGS@ +XORGCFG_DEP_LIBS = @XORGCFG_DEP_LIBS@ +XORGCONFIG_DEP_CFLAGS = @XORGCONFIG_DEP_CFLAGS@ +XORGCONFIG_DEP_LIBS = @XORGCONFIG_DEP_LIBS@ +XORG_CFLAGS = @XORG_CFLAGS@ +XORG_INCS = @XORG_INCS@ +XORG_LIBS = @XORG_LIBS@ +XORG_MODULES_CFLAGS = @XORG_MODULES_CFLAGS@ +XORG_MODULES_LIBS = @XORG_MODULES_LIBS@ +XORG_OS = @XORG_OS@ +XORG_OS_SUBDIR = @XORG_OS_SUBDIR@ +XORG_SYS_LIBS = @XORG_SYS_LIBS@ +XPRINTMODULES_CFLAGS = @XPRINTMODULES_CFLAGS@ +XPRINTMODULES_LIBS = @XPRINTMODULES_LIBS@ +XPRINTPROTO_CFLAGS = @XPRINTPROTO_CFLAGS@ +XPRINTPROTO_LIBS = @XPRINTPROTO_LIBS@ +XPRINT_CFLAGS = @XPRINT_CFLAGS@ +XPRINT_LIBS = @XPRINT_LIBS@ +XPRINT_SYS_LIBS = @XPRINT_SYS_LIBS@ +XRESEXAMPLES_DEP_CFLAGS = @XRESEXAMPLES_DEP_CFLAGS@ +XRESEXAMPLES_DEP_LIBS = @XRESEXAMPLES_DEP_LIBS@ +XSDL_INCS = @XSDL_INCS@ +XSDL_LIBS = @XSDL_LIBS@ +XSERVERCFLAGS_CFLAGS = @XSERVERCFLAGS_CFLAGS@ +XSERVERCFLAGS_LIBS = @XSERVERCFLAGS_LIBS@ +XSERVERLIBS_CFLAGS = @XSERVERLIBS_CFLAGS@ +XSERVERLIBS_LIBS = @XSERVERLIBS_LIBS@ +XSERVER_LIBS = @XSERVER_LIBS@ +XSERVER_SYS_LIBS = @XSERVER_SYS_LIBS@ +XTSTEXAMPLES_DEP_CFLAGS = @XTSTEXAMPLES_DEP_CFLAGS@ +XTSTEXAMPLES_DEP_LIBS = @XTSTEXAMPLES_DEP_LIBS@ +XVFB_LIBS = @XVFB_LIBS@ +XVFB_SYS_LIBS = @XVFB_SYS_LIBS@ +XWINMODULES_CFLAGS = @XWINMODULES_CFLAGS@ +XWINMODULES_LIBS = @XWINMODULES_LIBS@ +XWIN_LIBS = @XWIN_LIBS@ +XWIN_SERVER_NAME = @XWIN_SERVER_NAME@ +XWIN_SYS_LIBS = @XWIN_SYS_LIBS@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +__XCONFIGFILE__ = @__XCONFIGFILE__@ +abi_ansic = @abi_ansic@ +abi_extension = @abi_extension@ +abi_font = @abi_font@ +abi_videodrv = @abi_videodrv@ +abi_xinput = @abi_xinput@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +driverdir = @driverdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +extdir = @extdir@ +ft_config = @ft_config@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +launchagentsdir = @launchagentsdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +logdir = @logdir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +moduledir = @moduledir@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sdkdir = @sdkdir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xglmoduledir = @xglmoduledir@ +xpconfigdir = @xpconfigdir@ +X11dir = $(libdir)/X11 +dist_X11_DATA = Cards +xorgconfig_CFLAGS = @XORGCONFIG_DEP_CFLAGS@ \ + -DCARD_DATABASE_FILE='"$(X11dir)/Cards"' \ + -DPROJECTROOT='"$(PROJECTROOT)"' \ + -DFILEMANSUFFIX='"$(FILE_MAN_SUFFIX)"' \ + -DXVERSIONSTRING='"$(PACKAGE_STRING)"' + +xorgconfig_LDADD = @XORGCONFIG_DEP_LIBS@ +xorgconfig_SOURCES = \ + cards.c \ + cards.h \ + xorgconfig.c + +SUFFIXES = .pre .man .man.pre .$(APP_MAN_SUFFIX) .man + +# Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM +# to cpp, because that trick does not work on all ANSI C preprocessors. +# Delete line numbers from the cpp output (-P is not portable, I guess). +# Allow XCOMM to be preceded by whitespace and provide a means of generating +# output lines with trailing backslashes. +# Allow XHASH to always be substituted, even in cases where XCOMM isn't. +CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \ + -e '/^\#line *[0-9][0-9]* *.*$$/d' \ + -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \ + -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \ + -e '/^[ ]*XHASH/s/XHASH/\#/' \ + -e '/\@\@$$/s/\@\@$$/\\/' + + +# Strings to replace in man pages +XORGRELSTRING = @PACKAGE_STRING@ +XORGMANNAME = X Version 11 +XSERVERNAME = Xorg +MANDEFS = \ + -D__vendorversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \ + -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \ + -D__appmansuffix__=$(APP_MAN_SUFFIX) \ + -D__filemansuffix__=$(FILE_MAN_SUFFIX) \ + -D__libmansuffix__=$(LIB_MAN_SUFFIX) \ + -D__miscmansuffix__=$(MISC_MAN_SUFFIX) \ + -D__drivermansuffix__=$(DRIVER_MAN_SUFFIX) \ + -D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \ + -D__mandir__=$(mandir) \ + -D__projectroot__=$(prefix) \ + -D__xconfigfile__=$(__XCONFIGFILE__) -D__xconfigdir__=$(XCONFIGDIR) \ + -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) + + +# Man page +appmandir = $(APP_MAN_DIR) +appman_PRE = xorgconfig.man +appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) +EXTRAMANDEFS = \ + -D__XCONFIGFILE__=$(__XCONFIGFILE__) \ + -D__XSERVERNAME__=$(XSERVERNAME) + +BUILT_SOURCES = $(appman_PRE) +CLEANFILES = $(appman_PRE) $(appman_DATA) +EXTRA_DIST = \ + Cards98 \ + xorgconfig.man.pre + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .pre .man .man.pre .$(APP_MAN_SUFFIX) .man .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/cpprules.in $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign hw/xfree86/utils/xorgconfig/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign hw/xfree86/utils/xorgconfig/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + if test -f $$p \ + || test -f $$p1 \ + ; then \ + f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ + else :; fi; \ + done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ + rm -f "$(DESTDIR)$(bindir)/$$f"; \ + done + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done +xorgconfig$(EXEEXT): $(xorgconfig_OBJECTS) $(xorgconfig_DEPENDENCIES) + @rm -f xorgconfig$(EXEEXT) + $(xorgconfig_LINK) $(xorgconfig_OBJECTS) $(xorgconfig_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xorgconfig-cards.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xorgconfig-xorgconfig.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +xorgconfig-cards.o: cards.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -MT xorgconfig-cards.o -MD -MP -MF $(DEPDIR)/xorgconfig-cards.Tpo -c -o xorgconfig-cards.o `test -f 'cards.c' || echo '$(srcdir)/'`cards.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xorgconfig-cards.Tpo $(DEPDIR)/xorgconfig-cards.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cards.c' object='xorgconfig-cards.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -c -o xorgconfig-cards.o `test -f 'cards.c' || echo '$(srcdir)/'`cards.c + +xorgconfig-cards.obj: cards.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -MT xorgconfig-cards.obj -MD -MP -MF $(DEPDIR)/xorgconfig-cards.Tpo -c -o xorgconfig-cards.obj `if test -f 'cards.c'; then $(CYGPATH_W) 'cards.c'; else $(CYGPATH_W) '$(srcdir)/cards.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xorgconfig-cards.Tpo $(DEPDIR)/xorgconfig-cards.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cards.c' object='xorgconfig-cards.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -c -o xorgconfig-cards.obj `if test -f 'cards.c'; then $(CYGPATH_W) 'cards.c'; else $(CYGPATH_W) '$(srcdir)/cards.c'; fi` + +xorgconfig-xorgconfig.o: xorgconfig.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -MT xorgconfig-xorgconfig.o -MD -MP -MF $(DEPDIR)/xorgconfig-xorgconfig.Tpo -c -o xorgconfig-xorgconfig.o `test -f 'xorgconfig.c' || echo '$(srcdir)/'`xorgconfig.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xorgconfig-xorgconfig.Tpo $(DEPDIR)/xorgconfig-xorgconfig.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xorgconfig.c' object='xorgconfig-xorgconfig.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -c -o xorgconfig-xorgconfig.o `test -f 'xorgconfig.c' || echo '$(srcdir)/'`xorgconfig.c + +xorgconfig-xorgconfig.obj: xorgconfig.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -MT xorgconfig-xorgconfig.obj -MD -MP -MF $(DEPDIR)/xorgconfig-xorgconfig.Tpo -c -o xorgconfig-xorgconfig.obj `if test -f 'xorgconfig.c'; then $(CYGPATH_W) 'xorgconfig.c'; else $(CYGPATH_W) '$(srcdir)/xorgconfig.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/xorgconfig-xorgconfig.Tpo $(DEPDIR)/xorgconfig-xorgconfig.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xorgconfig.c' object='xorgconfig-xorgconfig.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xorgconfig_CFLAGS) $(CFLAGS) -c -o xorgconfig-xorgconfig.obj `if test -f 'xorgconfig.c'; then $(CYGPATH_W) 'xorgconfig.c'; else $(CYGPATH_W) '$(srcdir)/xorgconfig.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-appmanDATA: $(appman_DATA) + @$(NORMAL_INSTALL) + test -z "$(appmandir)" || $(MKDIR_P) "$(DESTDIR)$(appmandir)" + @list='$(appman_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \ + $(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \ + done + +uninstall-appmanDATA: + @$(NORMAL_UNINSTALL) + @list='$(appman_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \ + rm -f "$(DESTDIR)$(appmandir)/$$f"; \ + done +install-dist_X11DATA: $(dist_X11_DATA) + @$(NORMAL_INSTALL) + test -z "$(X11dir)" || $(MKDIR_P) "$(DESTDIR)$(X11dir)" + @list='$(dist_X11_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_X11DATA_INSTALL) '$$d$$p' '$(DESTDIR)$(X11dir)/$$f'"; \ + $(dist_X11DATA_INSTALL) "$$d$$p" "$(DESTDIR)$(X11dir)/$$f"; \ + done + +uninstall-dist_X11DATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_X11_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(X11dir)/$$f'"; \ + rm -f "$(DESTDIR)$(X11dir)/$$f"; \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(PROGRAMS) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appmandir)" "$(DESTDIR)$(X11dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-appmanDATA install-dist_X11DATA + +install-dvi: install-dvi-am + +install-exec-am: install-binPROGRAMS + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-appmanDATA uninstall-binPROGRAMS \ + uninstall-dist_X11DATA + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libtool ctags distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-appmanDATA install-binPROGRAMS install-data \ + install-data-am install-dist_X11DATA install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-appmanDATA uninstall-binPROGRAMS \ + uninstall-dist_X11DATA + + +.pre: + $(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@ + +.man.pre.man: + $(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@ + +.man.$(APP_MAN_SUFFIX): + -rm -f $@ + $(LN_S) $< $@ +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/cards.c b/xorg-server/hw/xfree86/utils/xorgconfig/cards.c new file mode 100644 index 000000000..8116f0a03 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/cards.c @@ -0,0 +1,278 @@ +/* + * Functions to manipulate card database. + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include "cards.h" + +/* Some vars to make path names in texts more flexible. */ +#ifndef PROJECTROOT +# define PROJECTROOT "/usr" +#endif +#define TREEROOT PROJECTROOT +#define TREEROOTLX TREEROOT "/lib/X11" +#define TREEROOTCFG TREEROOT "/etc/X11" +#ifdef XDOCDIR +# define TREEROOTDOC XDOCDIR +#else +# define TREEROOTDOC TREEROOTLX "/doc" +#endif + +/* + * Database format: + * + * NAME <name of card> + * CHIPSET <chipset description> + * SERVER <server name> + * DRIVER <driver name> + * + * Optional keywords: + * RAMDAC <ramdac identifier> + * CLOCKCHIP <clockchip identifier> + * DACSPEED <dacspeed> + * NOCLOCKPROBE + * UNSUPPORTED + * + * SEE <name of card> refers to another card definition; parameters that + * are already defined are not overridden. + * + * <server name> is one of Mono, VGA16, SVGA, S3, Mach32, Mach8, 8514, + * P9000, AGX, W32. + * + * A useful additional keywords may be CLOCKS. + */ + + + +/* Database vars. */ + +int lastcard; + +Card card[MAX_CARDS]; + + +static int +getnextline(FILE *f, char *l) +{ + if (fgets(l, 128, f) == NULL) + return -1; + return 0; +} + +static void +appendstring(char **destp, char *src) +{ + char *newstr; + newstr = malloc(strlen(*destp) + strlen(src) + 1); + strcpy(newstr, *destp); + strcat(newstr, src); + if (strlen(*destp) > 0) + free(*destp); + *destp = newstr; +} + +int +lookupcard(char *name) { + int i; + for (i = 0; i <= lastcard; i++) + if (strcmp(name, card[i].name) == 0) + return i; + return -1; +} + +static char *s3_comment = +"# Use Option \"nolinear\" if the server doesn't start up correctly\n" +"# (this avoids the linear framebuffer probe). If that fails try\n" +"# option \"nomemaccess\".\n" +"#\n" +"# Refer to " TREEROOTDOC "/README.S3, and the XF86_S3 man page.\n"; + +static char *cirrus_comment = +"# Use Option \"no_bitblt\" if you have graphics problems. If that fails\n" +"# try Option \"noaccel\".\n" +"# Refer to " TREEROOTDOC "/README.cirrus.\n" +"# To allow linear addressing, uncomment the Option line and the\n" +"# address that the card maps the framebuffer to.\n"; + +int parse_database() { + FILE *f; + char buf[128]; + int i, lineno; + char filename[128]; + + strcpy(filename, CARD_DATABASE_FILE); + f = fopen(filename, "r"); + if (f == NULL) + return -1; + + lastcard = -1; + lineno = 0; + + for (;;) { + if (getnextline(f, buf)) + break; + lineno++; + if (buf[0] == '#') + /* Comment. */ + continue; + if (strncmp(buf, "END", 3) == 0) + /* End of database. */ + break; + if (strncmp(buf, "LINE", 4) == 0 && lastcard>=0) { + /* Line of Device comment. */ + /* Append to existing lines. */ + appendstring(&card[lastcard].lines, buf + 5); + continue; + } + /* + * The following keywords require the trailing newline + * to be deleted. + */ + i = strlen(buf); + buf[--i] = '\0'; + + /* remove trailing spaces or tabs */ + for(--i; i>=0 && (buf[i] == ' ' || buf[i] == '\011'); i--) ; + if (i>=0) + buf[i+1] = '\0'; + else + continue; /* skip empty lines */ + + if (strncmp(buf, "NAME", 4) == 0) { + /* New entry. */ + lastcard++; + card[lastcard].name = malloc(strlen(buf + 5) + 1); + strcpy(card[lastcard].name, buf + 5); + card[lastcard].chipset = NULL; + card[lastcard].server = NULL; + card[lastcard].driver = NULL; + card[lastcard].ramdac = NULL; + card[lastcard].clockchip = NULL; + card[lastcard].dacspeed = NULL; + card[lastcard].flags = 0; + card[lastcard].lines = ""; + continue; + } + if (lastcard < 0) /* no NAME line found yet */ + continue; + if (strncmp(buf, "SEE", 3) == 0) { + /* Reference to another entry. */ + int i; + i = lookupcard(buf + 4); + if (i == -1) { + printf("Error in database, invalid reference: %s.\n", + buf + 4); + free(card[lastcard].name); + lastcard--; + continue; + } + if (card[lastcard].chipset == NULL) + card[lastcard].chipset = card[i].chipset; + if (card[lastcard].server == NULL) + card[lastcard].server = card[i].server; + if (card[lastcard].driver == NULL) + card[lastcard].driver = card[i].driver; + if (card[lastcard].ramdac == NULL) + card[lastcard].ramdac = card[i].ramdac; + if (card[lastcard].clockchip == NULL) + card[lastcard].clockchip = card[i].clockchip; + if (card[lastcard].dacspeed == NULL) + card[lastcard].dacspeed = card[i].dacspeed; + card[lastcard].flags |= card[i].flags; + appendstring(&card[lastcard].lines, card[i].lines); + continue; + } + if (strncmp(buf, "CHIPSET", 7) == 0) { + /* Chipset description. */ + card[lastcard].chipset = malloc(strlen(buf + 8) + 1); + strcpy(card[lastcard].chipset, buf + 8); + continue; + } + if (strncmp(buf, "SERVER", 6) == 0) { + /* Server identifier. */ + card[lastcard].server = malloc(strlen(buf + 7) + 1); + strcpy(card[lastcard].server, buf + 7); + continue; + } + if (strncmp(buf, "DRIVER", 6) == 0) { + /* Driver identifier. */ + card[lastcard].driver = malloc(strlen(buf + 7) + 1); + strcpy(card[lastcard].driver, buf + 7); + continue; + } + if (strncmp(buf, "RAMDAC", 6) == 0) { + /* Ramdac indentifier. */ + card[lastcard].ramdac = malloc(strlen(buf + 7) + 1); + strcpy(card[lastcard].ramdac, buf + 7); + continue; + } + if (strncmp(buf, "CLOCKCHIP", 9) == 0) { + /* Clockchip indentifier. */ + card[lastcard].clockchip = malloc(strlen(buf + 10) + 1); + strcpy(card[lastcard].clockchip, buf + 10); + card[lastcard].flags |= NOCLOCKPROBE; + continue; + } + if (strncmp(buf, "DACSPEED", 8) == 0) { + /* Clockchip indentifier. */ + card[lastcard].dacspeed = malloc(strlen(buf + 9) + 1); + strcpy(card[lastcard].dacspeed, buf + 9); + continue; + } + if (strncmp(buf, "NOCLOCKPROBE", 12) == 0) { + card[lastcard].flags |= NOCLOCKPROBE; + continue; + } + if (strncmp(buf, "UNSUPPORTED", 12) == 0) { + card[lastcard].flags |= UNSUPPORTED; + continue; + } + /* test for missing required fields */ + if (card[lastcard].driver == NULL) { + fprintf(stderr, "Warning DRIVER specification missing " + "in Card database entry %s (line %d).\n", + card[lastcard].name, lineno); + keypress(); + card[lastcard].driver = "unknown"; + } + if (card[lastcard].chipset == NULL) { + fprintf(stderr, "Warning CHIPSET specification missing " + "in Card database entry %s (line %d).\n", + card[lastcard].name, lineno); + keypress(); + card[lastcard].chipset = "unknown"; + } + } + + fclose(f); + + /* + * Add general comments. + */ + for (i = 0; i <= lastcard; i++) { + if (card[i].server && strcmp(card[i].server, "S3") == 0) + appendstring(&card[i].lines, s3_comment); + if (card[i].chipset && + strncmp(card[i].chipset, "CL-GD", 5) == 0) + appendstring(&card[i].lines, cirrus_comment); + } + + sort_database(); + + return 0; +} + +static int +compare_card(const void *e1, const void *e2) +{ + return strcmp(((Card *)e1)->name, ((Card *)e2)->name); +} + +void +sort_database() { + /* Each element is a bunch of words, but nothing too bad. */ + qsort(card, lastcard + 1, sizeof(Card), compare_card); +} diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/cards.h b/xorg-server/hw/xfree86/utils/xorgconfig/cards.h new file mode 100644 index 000000000..7e1438db8 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/cards.h @@ -0,0 +1,30 @@ +#ifndef CARD_DATABASE_FILE +#define CARD_DATABASE_FILE "Cards" +#endif + +#define MAX_CARDS 1000 + +typedef struct { + char *name; /* Name of the card. */ + char *chipset; /* Chipset (decriptive). */ + char *server; /* Server identifier. */ + char *driver; /* Driver identifier. */ + char *ramdac; /* Ramdac identifier. */ + char *clockchip; /* Clockchip identifier. */ + char *dacspeed; /* DAC speed rating. */ + int flags; + char *lines; /* Additional Device section lines. */ +} Card; + +/* Flags: */ +#define NOCLOCKPROBE 0x1 /* Never probe clocks of the card. */ +#define UNSUPPORTED 0x2 /* Card is not supported (only VGA). */ + +extern int lastcard; + +extern Card card[MAX_CARDS]; + +extern int lookupcard ( char *name ); +extern int parse_database ( void ); +extern void sort_database ( void ); +extern void keypress ( void ); diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.c b/xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.c new file mode 100644 index 000000000..30eb83182 --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.c @@ -0,0 +1,2890 @@ +/* + * This is a configuration program that will create a base XF86Config + * file based on menu choices. Its main feature is that clueless users + * may be less inclined to select crazy sync rates way over monitor spec, + * by presenting a menu with standard monitor types. Also some people + * don't read docs unless an executable that they can run tells them to. + * + * It assumes a 24-line or bigger text console. + * + * Revision history: + * 25Sep94 Initial version. + * 27Sep94 Fix hsync range of monitor types to match with best possible mode. + * Remove 'const'. + * Tweak descriptions. + * 28Sep94 Fixes from J"org Wunsch: + * Don't use gets(). + * Add mouse device prompt. + * Fix lines overrun for 24-line console. + * Increase buffer size for probeonly output. + * 29Sep94 Fix bad bug with old XF86Config preserving during probeonly run. + * Add note about vertical refresh in interlaced modes. + * Name gets() replacement getstring(). + * Add warning about binary paths. + * Fixes from David Dawes: + * Don't use 'ln -sf'. + * Omit man path reference in comment. + * Generate only a generic 320x200 SVGA section for accel cards. + * Only allow writing to /usr/X11R6/lib/X11 if root, and use + * -xf86config for the -probeonly phase (root only). + * Fix bug that forces screen type to accel in some cases. + * 30Sep94 Continue after clocks probe fails. + * Note about programmable clocks. + * Rename to 'xf86config'. Not to be confused with XF86Config + * or the -xf86config option. + * 07Oct94 Correct hsync in standard mode timings comments, and include + * the proper +/-h/vsync flags. + * 11Oct94 Skip 'numclocks:' and 'pixel clocks:' lines when probing for + * clocks. + * 18Oct94 Add check for existence of /usr/X11R6. + * Add note about ctrl-alt-backspace. + * 06Nov94 Add comment above standard mode timings in XF86Config. + * 24Dec94 Add low-resolution modes using doublescan. + * 29Dec94 Add note in horizontal sync range selection. + * Ask about ClearDTR/RTS option for Mouse Systems mice. + * Ask about writing to /etc/XF86Config. + * Allow link to be set in /var/X11R6/bin. + * Note about X -probeonly crashing. + * Add keyboard Alt binding option for non-ASCII characters. + * Add card database selection. + * Write temporary XF86Config for clock probing in /tmp instead + * of /usr/X11R6/lib/X11. + * Add RAMDAC and Clockchip menu. + * 27Mar99 Modified for XFree86 4.0 config file format + * 06Sep02 Write comment block about 'DontVTSwitch'. + * + * Possible enhancements: + * - Add more standard mode timings (also applies to README.Config). Missing + * are 1024x768 @ 72 Hz, 1152x900 modes, and 1280x1024 @ ~70 Hz. + * I suspect there is a VESA standard for 1024x768 @ 72 Hz with 77 MHz dot + * clock, and 1024x768 @ 75 Hz with 78.7 MHz dot clock. New types of + * monitors probably work better with VESA 75 Hz timings. + * - Add option for creation of clear, minimal XF86Config. + * - The card database doesn't include most of the entries in previous + * databases. + * + * Send comments to H.Hanemaayer@inter.nl.net. + * + * Things to keep up-to-date: + * - Accelerated server names. + * - Ramdac and Clockchip settings. + * - The card database. + * + */ +/* Oct2000 + * New 'Configuration of XKB' section. + * Author: Ivan Pascal The XFree86 Project. + */ +/* + * Nov2002 + * Some enhancements: + * - Add new PS/2 mouse protocol. + * "IMPS/2","ExplorerPS/2","ThinkingMousePS/2","MouseManPlusPS/2", + * "GlidePointPS/2","NetMousePS/2" and "NetScrollPS/2". + * - Add mouse-speed setting for PS/2 mouse. + * - Fix seg.fault problem on Solaris. + * - Add modestring "1400x1050"(for ATI Mobile-Rage). + * - Add videomemory 8192, 16384, 32768, 65536, 131072 and 262144. + * - Ready to DRI. + * - Load xtt module instead of freetype module. + * - Add font path "/TrueType/" and "/freefont/". + * Chisato Yamauchi(cyamauch@phyas.aichi-edu.ac.jp) + */ + +#ifdef HAVE_CONFIG_H +# include "xorg-server.h" +# include "xkb-config.h" +#endif + +#include <stdlib.h> +#include <stdio.h> +#include <ctype.h> +#include <string.h> +#include <unistd.h> +#include <errno.h> +#include <sys/types.h> +#include <sys/stat.h> + +#include <X11/Xlib.h> +#include <X11/extensions/XKBstr.h> +#include <X11/extensions/XKBrules.h> +#define MAX_XKBOPTIONS 5 + +#include "cards.h" + + +/* + * Define the following to 310 to remove references to XFree86 features that + * have been added since XFree86 3.1 (e.g. DoubleScan modes). + * or to 311 to remove certain new modelines + */ +#define XFREE86_VERSION 400 + +/* + * Define this to have /etc/X11/XF86Config prompted for as the default + * location to write the XF86Config file to. + */ +#define PREFER_XF86CONFIG_IN_ETC + +/* + * Define this to force the user to go through XKB configuration section. + * + */ +#define FORCE_XKB_DIALOG + +/* + * Configuration variables. + */ + +#define MAX_CLOCKS_LINES 16 + +#define DUMBCONFIG2 "dumbconfig.2" +#define DUMBCONFIG3 "dumbconfig.3" + +/* some more vars to make path names in texts more flexible. OS/2 users + * may be more irritated than Unix users + */ +#ifndef PROJECTROOT +#define PROJECTROOT "/usr" +#endif +#define TREEROOT PROJECTROOT +#define TREEROOTLX TREEROOT "/lib/X11" +#define TREEROOTCFG TREEROOT "/etc/X11" +#define TREEROOTSHARE TREEROOT "/share/X11" +#ifdef XDOCDIR +# define TREEROOTDOC XDOCDIR +#else +# define TREEROOTDOC TREEROOTLX "/doc" +#endif +#ifdef XFONTDIR +# define TREEROOTFONT XFONTDIR +#else +# define TREEROOTFONT TREEROOTLX "/fonts" +#endif +#define MODULEPATH TREEROOT "/lib/modules" + +#define XSERVERNAME_FOR_PROBE "X" + +#ifndef XCONFIGFILE +#define XCONFIGFILE "xorg.conf" +#endif +#define CONFIGNAME XCONFIGFILE + +/* + * This is the filename of the temporary XF86Config file that is written + * when the program is told to probe clocks (which can only happen for + * root). + */ +#define TEMPORARY_XF86CONFIG_DIR_PREFIX "/tmp/."XCONFIGFILE +#define TEMPORARY_XF86CONFIG_FILENAME XCONFIGFILE".tmp" + +#ifndef XF86_VERSION_MAJOR +#ifdef XVERSION +#if XVERSION > 40000000 +#define XF86_VERSION_MAJOR (XVERSION / 10000000) +#else +#define XF86_VERSION_MAJOR (XVERSION / 1000) +#endif +#else +#define XF86_VERSION_MAJOR 4 +#endif +#endif + + +int config_mousetype; /* Mouse. */ +int config_emulate3buttons; +int config_chordmiddle; +int config_cleardtrrts; +char *config_pointerdevice; +int config_altmeta; /* Keyboard. */ +int config_monitortype; /* Monitor. */ +char *config_hsyncrange; +char *config_vsyncrange; +char *config_monitoridentifier; +int config_videomemory; /* Video card. */ +int config_screentype; /* mono, vga16, svga, accel */ +char *config_deviceidentifier; +int config_numberofclockslines; +char *config_clocksline[MAX_CLOCKS_LINES]; +char *config_modesline8bpp; +char *config_modesline16bpp; +char *config_modesline24bpp; +int config_virtual; /* 1 (yes) or 0 (no) */ +int config_virtualx8bpp, config_virtualy8bpp; +int config_virtualx16bpp, config_virtualy16bpp; +int config_virtualx24bpp, config_virtualy24bpp; +char *config_ramdac; +char *config_dacspeed; +char *config_clockchip; +#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT) && !defined(PCVT_SUPPORT) +char *config_keyboard_dev = "/dev/wskbd0"; +#endif +int config_xkbdisable = 0; +char *config_xkbrules; +char *config_xkbmodel = "pc105"; +char *config_xkblayout = "us"; +char *config_xkbvariant = (char *) 0; +char *config_xkboptions = (char *) 0; +char *config_depth; + +char *temp_dir = ""; + +/* + * These are from the selected card definition. Parameters from the + * definition are offered during the questioning about the video card. + */ + +int card_selected; /* Card selected from database. */ + + +static int write_XF86Config(char *filename); + + +/* + * This is the initial intro text that appears when the program is started. + */ + +static char *intro_text = +"\n" +"This program will create a basic " CONFIGNAME " file, based on menu selections\n" +"you make. It will ask for a pathname when it is ready to write the file.\n" +"\n" +"The " CONFIGNAME " file usually resides in /etc/X11 or " TREEROOTCFG ". If\n" +"no " CONFIGNAME " file is present there, " __XSERVERNAME__" will probe the system to\n" +"autoconfigure itself. You can run " __XSERVERNAME__ " -configure to generate a " CONFIGNAME "\n" +"file based on the results of autoconfiguration, or let this program\n" +"produce a base " CONFIGNAME " file for your configuration, and fine-tune it.\n" +"A sample " CONFIGNAME " file is also supplied with "__XSERVERNAME__"; it is configured \n" +"for a standard VGA card and monitor with 640x480 resolution.\n" +"\n" +"There are also many chipset and card-specific options and settings available,\n" +"but this program does not know about these. On some configurations some of\n" +"these settings must be specified. Refer to the X driver man pages and the\n" +"chipset-specific READMEs in " TREEROOTDOC " for further details.\n" +#if 0 +" Refer to " TREEROOTDOC "/README.Config\n" +"for a detailed overview of the configuration process.\n" +"\n" +"(what should we change this section to?)\n" +"For accelerated servers (including accelerated drivers in the SVGA server),\n" +"there are many chipset and card-specific options and settings. This program\n" +"does not know about these. On some configurations some of these settings must\n" +"be specified. Refer to the server man pages and chipset-specific READMEs.\n" +#endif +"\n" +"Before continuing with this program, make sure you know what video card\n" +"you have, and preferably also the chipset it uses and the amount of video\n" +"memory on your video card, as well as the specifications of your monitor.\n" +"\n" +; + +static char *finalcomment_text = +"File has been written. Take a look at it before starting an X server. Note that\n" +"the " CONFIGNAME " file must be in one of the directories searched by the server\n" +"(e.g. /etc/X11) in order to be used. Within the server press\n" +"ctrl, alt and '+' simultaneously to cycle video resolutions. Pressing ctrl,\n" +"alt and backspace simultaneously immediately exits the server (use if\n" +"the monitor doesn't sync for a particular mode).\n" +"\n" +"For further configuration, refer to the " XCONFIGFILE "(" FILEMANSUFFIX ") manual page.\n" +"\n"; + +static void * +Malloc(int i) { + void *p; + + p = malloc(i); + if (p == NULL) { + printf("Fatal malloc error\n"); + exit(-1); + } + return p; +} + +static char * +Strdup(const char *s){ + char *d; + + d = Malloc(strlen(s) + 1); + strcpy(d, s); + return d; +} + +static void +createtmpdir(void) { + /* length of prefix + 20 (digits in 2**64) + 1 (slash) + 1 */ + temp_dir = Malloc(strlen(TEMPORARY_XF86CONFIG_DIR_PREFIX) + 22); + sprintf(temp_dir, "%s%ld", TEMPORARY_XF86CONFIG_DIR_PREFIX, + (long)getpid()); + if (mkdir(temp_dir, 0700) != 0) { + printf("Cannot create directory %s\n", temp_dir); + exit(-1); + } + /* append a slash */ + strcat(temp_dir, "/"); +} + + +void +keypress(void) { + printf("Press enter to continue, or ctrl-c to abort."); + getchar(); + printf("\n"); +} + +static void +emptylines(void) { + int i; + for (i = 0; i < 50; i++) + printf("\n"); +} + +static int +answerisyes(char *s) +{ + if (s[0] == '\'') /* For fools that type the ' literally. */ + return tolower(s[1]) == 'y'; + return tolower(s[0]) == 'y'; +} + +/* + * This is a replacement for gets(). Limit is 80 chars. + * The 386BSD descendants scream about using gets(), for good reason. + */ + +static void +getstring(char *s) +{ + char *cp; + if (fgets(s, 80, stdin) == NULL) + exit(1); + cp = strchr(s, '\n'); + if (cp) + *cp=0; +} + +/* + * Mouse configuration. + */ + +int M_OSMOUSE, M_WSMOUSE, M_AUTO, + M_SYSMOUSE, M_MOUSESYSTEMS, M_PS2, + M_MICROSOFT, M_BUSMOUSE, M_IMPS2, + M_EXPLORER_PS2, M_GLIDEPOINT_PS2, M_MOUSEMANPLUS_PS2, + M_NETMOUSE_PS2, M_NETSCROLL_PS2, M_THINKINGMOUSE_PS2, + M_ACECAD, M_GLIDEPOINT, M_INTELLIMOUSE, + M_LOGITECH, M_MMHITTAB, M_MMSERIES, + M_MOUSEMAN, M_THINKINGMOUSE, M_VUID; + +struct { + char *name; + int *ident; + char *desc; +} mouse_info[] = { +#if defined(QNX4) +#define DEF_PROTO_STRING "OSMOUSE" + {"OSMOUSE", &M_OSMOUSE, + "OSMOUSE" + }, +#endif +#ifdef WSCONS_SUPPORT +#define WS_MOUSE_STRING "wsmouse" +#define DEF_PROTO_STRING WS_MOUSE_STRING + {WS_MOUSE_STRING, &M_WSMOUSE, + "wsmouse protocol" + }, +#endif +#ifndef DEF_PROTO_STRING +#define DEF_PROTO_STRING "Auto" +#endif + {"Auto", &M_AUTO, + "Auto detect" + }, +#ifdef sun + {"VUID", &M_VUID, + "Solaris VUID protocol (SPARC, USB, or virtual mouse)" + }, +#endif + {"SysMouse", &M_SYSMOUSE, + "SysMouse" + }, +#define M_MOUSESYSTEMS_STRING "MouseSystems" + {M_MOUSESYSTEMS_STRING, &M_MOUSESYSTEMS, + "Mouse Systems (3-button protocol)" + }, + {"PS/2", &M_PS2, + "PS/2 Mouse" + }, +#define M_MICROSOFT_STRING "Microsoft" + {M_MICROSOFT_STRING, &M_MICROSOFT, + "Microsoft compatible (2-button protocol)" + }, + {"Busmouse", &M_BUSMOUSE, + "Bus Mouse" + }, +#ifndef __FreeBSD__ + {"IMPS/2", &M_IMPS2, + "IntelliMouse PS/2" + }, + {"ExplorerPS/2", &M_EXPLORER_PS2, + "Explorer PS/2" + }, + {"GlidePointPS/2", &M_GLIDEPOINT_PS2, + "GlidePoint PS/2" + }, + {"MouseManPlusPS/2", &M_MOUSEMANPLUS_PS2, + "MouseManPlus PS/2" + }, + {"NetMousePS/2", &M_NETMOUSE_PS2, + "NetMouse PS/2" + }, + {"NetScrollPS/2", &M_NETSCROLL_PS2, + "NetScroll PS/2" + }, + {"ThinkingMousePS/2", &M_THINKINGMOUSE_PS2, + "ThinkingMouse PS/2" + }, +#endif + {"AceCad", &M_ACECAD, + "AceCad" + }, + {"GlidePoint", &M_GLIDEPOINT, + "GlidePoint" + }, + {"IntelliMouse", &M_INTELLIMOUSE, + "Microsoft IntelliMouse" + }, + {"Logitech", &M_LOGITECH, + "Logitech Mouse (serial, old type, Logitech protocol)" + }, + {"MMHitTab", &M_MMHITTAB, + "MM HitTablet" + }, + {"MMSeries", &M_MMSERIES, + "MM Series" /* XXXX These descriptions should be improved. */ + }, + {"MouseMan", &M_MOUSEMAN, + "Logitech MouseMan (Microsoft compatible)" + }, + {"ThinkingMouse", &M_THINKINGMOUSE, + "ThinkingMouse" + }, +}; + +#ifdef WSCONS_SUPPORT +# define DEF_MOUSEDEV "/dev/wsmouse"; +#elif defined(__FreeBSD__) || defined(__DragonFly__) +# define DEF_MOUSEDEV "/dev/sysmouse"; +#elif defined(__linux__) +# define DEF_MOUSEDEV "/dev/input/mice"; +#else +# define DEF_MOUSEDEV "/dev/mouse"; +#endif + +static char *mouseintro_text = +"First specify a mouse protocol type. Choose one from the following list:\n" +"\n"; + +static char *mousedev_text = +"Now give the full device name that the mouse is connected to, for example\n" +"/dev/tty00. Just pressing enter will use the default, %s.\n" +"\n"; + +static char *mousecomment_text = +"The recommended protocol is " DEF_PROTO_STRING ". If you have a very old mouse\n" +"or don't want OS support or auto detection, and you have a two-button\n" +"or three-button serial mouse, it is most likely of type " M_MICROSOFT_STRING ".\n" +#ifdef WSCONS_SUPPORT +"\n" +"If your system uses the wscons console driver, with a PS/2 type mouse,\n" +"select " WS_MOUSE_STRING ".\n" +#endif +"\n"; + +static char *twobuttonmousecomment_text = +"You have selected a two-button mouse protocol. It is recommended that you\n" +"enable Emulate3Buttons.\n"; + +static char *threebuttonmousecomment_text = +"You have selected a three-button mouse protocol. It is recommended that you\n" +"do not enable Emulate3Buttons, unless the third button doesn't work.\n"; + +static char *unknownbuttonsmousecomment_text = +"If your mouse has only two buttons, it is recommended that you enable\n" +"Emulate3Buttons.\n"; + +static char *microsoftmousecomment_text = +"You have selected a Microsoft protocol mouse. If your mouse was made by\n" +"Logitech, you might want to enable ChordMiddle which could cause the\n" +"third button to work.\n"; + +static char *mousesystemscomment_text = +"You have selected a Mouse Systems protocol mouse. If your mouse is normally\n" +"in Microsoft-compatible mode, enabling the ClearDTR and ClearRTS options\n" +"may cause it to switch to Mouse Systems mode when the server starts.\n"; + +static char *logitechmousecomment_text = +"You have selected a Logitech protocol mouse. This is only valid for old\n" +"Logitech mice.\n"; + +static char *mousemancomment_text = +"You have selected a Logitech MouseMan type mouse. You might want to enable\n" +"ChordMiddle which could cause the third button to work.\n"; + +static void +mouse_configuration(void) { + +#if !defined(QNX4) + int i, j; + char s[80]; + char *def_mousedev = DEF_MOUSEDEV; + +#define MOUSETYPE_COUNT sizeof(mouse_info)/sizeof(mouse_info[0]) + for (i = 0; i < MOUSETYPE_COUNT; i++) + *(mouse_info[i].ident) = i; + + for (i=0;;) { + emptylines(); + printf("%s", mouseintro_text); + for (j = i; j < i + 14 && j < MOUSETYPE_COUNT; j++) + printf("%2d. %s [%s]\n", j + 1, + mouse_info[j].name, mouse_info[j].desc); + printf("\n"); + printf("%s", mousecomment_text); + printf("Enter a protocol number: "); + getstring(s); + if (strlen(s) == 0) { + i += 14; + if (i >= MOUSETYPE_COUNT) + i = 0; + continue; + } + config_mousetype = atoi(s) - 1; + if (config_mousetype >= 0 && config_mousetype < MOUSETYPE_COUNT) + break; + } + printf("\n"); + + if (config_mousetype == M_LOGITECH) { + /* Logitech. */ + printf("%s", logitechmousecomment_text); + printf("\n"); + printf("Please answer the following question with either 'y' or 'n'.\n"); + printf("Are you sure it's really not a Microsoft compatible one? "); + getstring(s); + if (!answerisyes(s)) + config_mousetype = M_MICROSOFT; + printf("\n"); + } + + config_chordmiddle = 0; + if (config_mousetype == M_MICROSOFT || config_mousetype == M_MOUSEMAN) { + /* Microsoft or MouseMan. */ + if (config_mousetype == M_MICROSOFT) + printf("%s", microsoftmousecomment_text); + else + printf("%s", mousemancomment_text); + printf("\n"); + printf("Please answer the following question with either 'y' or 'n'.\n"); + printf("Do you want to enable ChordMiddle? "); + getstring(s); + if (answerisyes(s)) + config_chordmiddle = 1; + printf("\n"); + } + + config_cleardtrrts = 0; + if (config_mousetype == M_MOUSESYSTEMS) { + /* Mouse Systems. */ + printf("%s", mousesystemscomment_text); + printf("\n"); + printf("Please answer the following question with either 'y' or 'n'.\n"); + printf("Do you want to enable ClearDTR and ClearRTS? "); + getstring(s); + if (answerisyes(s)) + config_cleardtrrts = 1; + printf("\n"); + } + + if (config_mousetype == M_MICROSOFT) { + if (config_chordmiddle) + printf("%s", threebuttonmousecomment_text); + else + printf("%s", twobuttonmousecomment_text); + } + else if (config_mousetype == M_MOUSESYSTEMS || + config_mousetype == M_INTELLIMOUSE) { + printf("%s", threebuttonmousecomment_text); + } + else { + printf("%s", unknownbuttonsmousecomment_text); + } + + printf("\n"); + + printf("Please answer the following question with either 'y' or 'n'.\n"); + printf("Do you want to enable Emulate3Buttons? "); + getstring(s); + if (answerisyes(s)) + config_emulate3buttons = 1; + else + config_emulate3buttons = 0; + printf("\n"); + +#if (defined(sun) && (defined(__i386) || defined(__x86))) + /* SPARC & USB mice (VUID or AUTO protocols) default to /dev/mouse, + but PS/2 mice default to /dev/kdmouse */ + if ((config_mousetype != M_AUTO) && (config_mousetype != M_VUID)) { + def_mousedev = "/dev/kdmouse"; + } +#endif + + printf(mousedev_text, def_mousedev); + printf("Mouse device: "); + getstring(s); + if (strlen(s) == 0) { + config_pointerdevice = def_mousedev; + } else { + config_pointerdevice = Malloc(strlen(s) + 1); + strcpy(config_pointerdevice, s); + } + printf("\n"); + +#else + /* set some reasonable defaults for OS/2 */ + config_mousetype = M_OSMOUSE; + config_chordmiddle = 0; + config_cleardtrrts = 0; + config_emulate3buttons = 0; + config_pointerdevice = "QNXMOUSE"; +#endif +} + + +/* + * Keyboard configuration. + */ + +/* + * Configuration of XKB + */ +static char *xkbmodeltext = +"Please select one of the following keyboard types that is the better\n" +"description of your keyboard. If nothing really matches,\n" +"choose \"Generic 104-key PC\"\n\n"; + +static char *xkblayouttext = +"Please select the layout corresponding to your keyboard\n"; + +static char *xkbvarianttext = +"Please enter a variant name for '%s' layout. Or just press enter\n" +"for default variant\n\n"; + +static char *xkboptionstext = +"Please answer the following question with either 'y' or 'n'.\n" +"Do you want to select additional XKB options (group switcher,\n" +"group indicator, etc.)? "; + +#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT) && !defined(PCVT_SUPPORT) +static char *kbdevtext = +"Please enter the device name for your keyboard or just press enter\n" +"for the default of wskbd0\n\n"; +#endif + +static void +keyboard_configuration(void) +{ + int i, j; + char s[80]; + char *rulesfile; + int number, options[MAX_XKBOPTIONS], num_options; + XkbRF_RulesPtr rules; + +#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT) && !defined(PCVT_SUPPORT) + printf(kbdevtext); + getstring(s); + if (strlen(s) != 0) { + config_keyboard_dev = Malloc(strlen(s) + 1); + strcpy(config_keyboard_dev, s); + } +#endif + +#ifndef XKB_RULES_DIR +# define XKB_RULES_DIR XKB_BASE_DIRECTORY "/rules" +#endif + +#ifdef XFREE98_XKB + config_xkbrules = "xfree98"; /* static */ + rulesfile = XKB_RULES_DIR "/xfree98"; +#else + config_xkbrules = __XKBDEFRULES__; /* static */ + rulesfile = XKB_RULES_DIR "/" __XKBDEFRULES__; +#endif + + rules = XkbRF_Load(rulesfile, "", True, False); + emptylines(); + + if (!rules) { + printf("XKB rules file '%s' not found\n", rulesfile); + printf("Keyboard XKB options will be set to default values.\n"); + keypress(); + return; + } + + number = -1; + for (i=0;;) { + emptylines(); + printf(xkbmodeltext); + for (j = i; j < i + 16 && j < rules->models.num_desc; j++) + printf("%3d %-50s\n", j+1, rules->models.desc[j].desc); + printf("\nEnter a number to choose the keyboard.\n\n"); + if (rules->models.num_desc >= 16) + printf("Press enter for the next page\n"); + getstring(s); + if (strlen(s) == 0) { + i += 16; + if (i > rules->models.num_desc) + i = 0; + continue; + } + number = atoi(s) - 1; + if (number >= 0 && number < rules->models.num_desc) + break; + } + + i = strlen(rules->models.desc[number].name) + 1; + config_xkbmodel = Malloc(i); + sprintf(config_xkbmodel,"%s", rules->models.desc[number].name); + + emptylines(); + printf(xkblayouttext); + + number = -1; + for (i=0;;) { + emptylines(); + for (j = i; j < i + 18 && j < rules->layouts.num_desc; j++) + printf("%3d %-50s\n", j+1, + rules->layouts.desc[j].desc); + printf("\n"); + printf("Enter a number to choose the country.\n"); + if (rules->layouts.num_desc >= 18) + printf("Press enter for the next page\n"); + printf("\n"); + getstring(s); + if (strlen(s) == 0) { + i += 18; + if (i > rules->layouts.num_desc) + i = 0; + continue; + } + number = atoi(s) - 1; + if (number >= 0 && number < rules->layouts.num_desc) + break; + } + config_xkblayout = Malloc(strlen(rules->layouts.desc[number].name)+1); + sprintf(config_xkblayout,"%s", rules->layouts.desc[number].name); + + emptylines(); + printf(xkbvarianttext, config_xkblayout); + getstring(s); + if (strlen(s) != 0) { + config_xkbvariant = Malloc(strlen(s) + 1); + strcpy(config_xkbvariant, s); + } + + emptylines(); + printf(xkboptionstext); + getstring(s); + if (!answerisyes(s)) + return; + + num_options = 0; + for (j=0,i=0;;) { + if (!strchr(rules->options.desc[i].name, ':')) { + emptylines(); + printf(" %s\n\n", rules->options.desc[i].desc); + j = i; + } else { + printf("%3d %-50s\n", i - j, rules->options.desc[i].desc); + } + i++; + if ( i == rules->options.num_desc || + !strchr(rules->options.desc[i].name, ':')) { + printf("\nPlease select the option or just press enter if none\n"); + getstring(s); + if (strlen(s) != 0) { + number = atoi(s); + if (number && (num_options < MAX_XKBOPTIONS)) { + options[num_options++] = number + j; + } + } + } + if (i == rules->options.num_desc) + break; + } + + if (!num_options) + return; + + for (j=0,i=0; i<num_options; i++) { + j += strlen(rules->options.desc[options[i]].name); + } + config_xkboptions = Malloc(j + num_options); + for (j=0,i=0; i<num_options; i++) { + j += sprintf(config_xkboptions+j,"%s%s", + i == 0 ? "": "," ,rules->options.desc[options[i]].name); + } + return; +} + + + +/* + * Monitor configuration. + */ + +static char *monitorintro_text = +"Now we want to set the specifications of the monitor. The two critical\n" +"parameters are the vertical refresh rate, which is the rate at which the\n" +"the whole screen is refreshed, and most importantly the horizontal sync rate,\n" +"which is the rate at which scanlines are displayed.\n" +"\n" +"The valid range for horizontal sync and vertical sync should be documented\n" +"in the manual of your monitor.\n" +"\n"; + +static char *hsyncintro_text = +"You must indicate the horizontal sync range of your monitor. You can either\n" +"select one of the predefined ranges below that correspond to industry-\n" +"standard monitor types, or give a specific range.\n" +"\n" +"It is VERY IMPORTANT that you do not specify a monitor type with a horizontal\n" +"sync range that is beyond the capabilities of your monitor. If in doubt,\n" +"choose a conservative setting.\n" +"\n"; + +static char *customhsync_text = +"Please enter the horizontal sync range of your monitor, in the format used\n" +"in the table of monitor types above. You can either specify one or more\n" +"continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync frequencies.\n" +"\n"; + +static char *vsyncintro_text = +"You must indicate the vertical sync range of your monitor. You can either\n" +"select one of the predefined ranges below that correspond to industry-\n" +"standard monitor types, or give a specific range. For interlaced modes,\n" +"the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).\n" +"\n" +" 1 50-70\n" +" 2 50-90\n" +" 3 50-100\n" +" 4 40-150\n" +" 5 Enter your own vertical sync range\n"; + +static char *monitordescintro_text = +"You must now enter a few identification/description strings, namely an\n" +"identifier, a vendor name, and a model name. Just pressing enter will fill\n" +"in default names.\n" +"\n"; + +#define NU_MONITORTYPES 10 + +static char *monitortype_range[NU_MONITORTYPES] = { + "31.5", + "31.5 - 35.1", + "31.5, 35.5", + "31.5, 35.15, 35.5", + "31.5 - 37.9", + "31.5 - 48.5", + "31.5 - 57.0", + "31.5 - 64.3", + "31.5 - 79.0", + "31.5 - 82.0" +}; + +static char *monitortype_name[NU_MONITORTYPES] = { + "Standard VGA, 640x480 @ 60 Hz", + "Super VGA, 800x600 @ 56 Hz", + "8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600)", + "Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz", + "Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz", + "Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz", + "High Frequency SVGA, 1024x768 @ 70 Hz", + "Monitor that can do 1280x1024 @ 60 Hz", + "Monitor that can do 1280x1024 @ 74 Hz", + "Monitor that can do 1280x1024 @ 76 Hz" +}; + +static void +monitor_configuration(void) { + int i; + char s[80]; + printf("%s", monitorintro_text); + + keypress(); + emptylines(); + + printf("%s", hsyncintro_text); + + printf(" hsync in kHz; monitor type with characteristic modes\n"); + for (i = 0; i < NU_MONITORTYPES; i++) + printf("%2d %s; %s\n", i + 1, monitortype_range[i], + monitortype_name[i]); + + printf("%2d Enter your own horizontal sync range\n", + NU_MONITORTYPES + 1); + printf("\n"); + + printf("Enter your choice (1-%d): ", NU_MONITORTYPES + 1); + getstring(s); + config_monitortype = atoi(s) - 1; + if (config_monitortype < 0) + config_monitortype = 0; + + printf("\n"); + + if (config_monitortype < NU_MONITORTYPES) + config_hsyncrange = monitortype_range[config_monitortype]; + else { + /* Custom hsync range option selected. */ + printf("%s", customhsync_text); + printf("Horizontal sync range: "); + getstring(s); + config_hsyncrange = Malloc(strlen(s) + 1); + strcpy(config_hsyncrange, s); + printf("\n"); + } + + printf("%s", vsyncintro_text); + printf("\n"); + + printf("Enter your choice: "); + getstring(s); + printf("\n"); + switch (atoi(s)) { + case 0 : + case 1 : + config_vsyncrange = "50-70"; + break; + case 2 : + config_vsyncrange = "50-90"; + break; + case 3 : + config_vsyncrange = "50-100"; + break; + case 4 : + config_vsyncrange = "40-150"; + break; + case 5 : + /* Custom vsync range option selected. */ + printf("Vertical sync range: "); + getstring(s); + config_vsyncrange = Malloc(strlen(s) + 1); + strcpy(config_vsyncrange, s); + printf("\n"); + break; + } + printf("%s", monitordescintro_text); + printf("The strings are free-form, spaces are allowed.\n"); + printf("Enter an identifier for your monitor definition: "); + getstring(s); + if (strlen(s) == 0) + config_monitoridentifier = "My Monitor"; + else { + config_monitoridentifier = Malloc(strlen(s) + 1); + strcpy(config_monitoridentifier, s); + } +} + + +/* + * Card database. + */ + +static char *cardintro_text = +"Now we must configure video card specific settings. At this point you can\n" +"choose to make a selection out of a database of video card definitions.\n" +"Because there can be variation in Ramdacs and clock generators even\n" +"between cards of the same model, it is not sensible to blindly copy\n" +"the settings (e.g. a Device section). For this reason, after you make a\n" +"selection, you will still be asked about the components of the card, with\n" +"the settings from the chosen database entry presented as a strong hint.\n" +"\n" +"The database entries include information about the chipset, what driver to\n" +"run, the Ramdac and ClockChip, and comments that will be included in the\n" +"Device section. However, a lot of definitions only hint about what driver\n" +"to run (based on the chipset the card uses) and are untested.\n" +"\n" +"If you can't find your card in the database, there's nothing to worry about.\n" +"You should only choose a database entry that is exactly the same model as\n" +"your card; choosing one that looks similar is just a bad idea (e.g. a\n" +"GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of\n" +"hardware as can be).\n" +"\n"; + +static char *cardunsupported_text = +"This card is basically UNSUPPORTED. It may only work as a generic\n" +"VGA-compatible card. If you have an "__XSERVERNAME__" version more recent than what\n" +"this card definition was based on, there's a chance that it is now\n" +"supported.\n"; + +static void +carddb_configuration(void) { + int i; + char s[80]; + card_selected = -1; + printf("%s", cardintro_text); + printf("Do you want to look at the card database? "); + getstring(s); + printf("\n"); + if (!answerisyes(s)) + return; + + /* + * Choose a database entry. + */ + if (parse_database()) { + printf("Couldn't read card database file %s.\n", + CARD_DATABASE_FILE); + keypress(); + return; + } + + i = 0; + for (;;) { + int j; + emptylines(); + for (j = i; j < i + 18 && j <= lastcard; j++) { + char *name = card[j].name, + *chipset = card[j].chipset; + + printf("%3d %-50s%s\n", j, + name ? name : "-", + chipset ? chipset : "-"); + } + printf("\n"); + printf("Enter a number to choose the corresponding card definition.\n"); + printf("Press enter for the next page, q to continue configuration.\n"); + printf("\n"); + getstring(s); + if (s[0] == 'q') + break; + if (strlen(s) == 0) { + i += 18; + if (i > lastcard) + i = 0; + continue; + } + card_selected = atoi(s); + if (card_selected >= 0 && card_selected <= lastcard) + break; + } + + /* + * Look at the selected card. + */ + if (card_selected != -1) { + char *name = card[card_selected].name, + *chipset = card[card_selected].chipset; + + printf("\nYour selected card definition:\n\n"); + printf("Identifier: %s\n", name ? name : "-"); + printf("Chipset: %s\n", chipset ? chipset : "-"); + if (!card[card_selected].driver) + card[card_selected].driver = "unknown"; + printf("Driver: %s\n", card[card_selected].driver); + + if (card[card_selected].ramdac != NULL) + printf("Ramdac: %s\n", card[card_selected].ramdac); + if (card[card_selected].dacspeed != NULL) + printf("DacSpeed: %s\n", card[card_selected].dacspeed); + if (card[card_selected].clockchip != NULL) + printf("Clockchip: %s\n", card[card_selected].clockchip); + if (card[card_selected].flags & NOCLOCKPROBE) + printf("Do NOT probe clocks or use any Clocks line.\n"); + if (card[card_selected].flags & UNSUPPORTED) + printf("%s", cardunsupported_text); +#if 0 /* Might be confusing. */ + if (strlen(card[card_selected].lines) > 0) + printf("Device section text:\n%s", + card[card_selected].lines); +#endif + printf("\n"); + keypress(); + } +} + + +/* + * Screen/video card configuration. + */ + +static char *deviceintro_text = +"Now you must give information about your video card. This will be used for\n" +"the \"Device\" section of your video card in " CONFIGNAME ".\n" +"\n"; + +static char *videomemoryintro_text = +"It is probably a good idea to use the same approximate amount as that detected\n" +"by the server you intend to use. If you encounter problems that are due to the\n" +"used server not supporting the amount memory you have, specify the maximum\n" +"amount supported by the server.\n" +"\n" +"How much video memory do you have on your video card:\n" +"\n"; + +static char *carddescintro_text = +"You must now enter a few identification/description strings, namely an\n" +"identifier, a vendor name, and a model name. Just pressing enter will fill\n" +"in default names (possibly from a card definition).\n" +"\n"; + +#if 0 +static char *devicesettingscomment_text = +"Especially for accelerated drivers, Ramdac, Dacspeed and ClockChip settings\n" +"or special options may be required in the Device section.\n" +"\n"; + +static char *ramdaccomment_text = +"The RAMDAC setting only applies to some drivers. Some RAMDAC's are\n" +"auto-detected by the server. The detection of a RAMDAC is forced by using a\n" +"Ramdac \"identifier\" line in the Device section. The identifiers are shown\n" +"at the right of the following table of RAMDAC types:\n" +"\n"; + +#define NU_RAMDACS 24 + +static char *ramdac_name[NU_RAMDACS] = { + "AT&T 20C490 (S3 and AGX servers, ARK driver)", + "AT&T 20C498/21C498/22C498 (S3, autodetected)", + "AT&T 20C409/20C499 (S3, autodetected)", + "AT&T 20C505 (S3)", + "BrookTree BT481 (AGX)", + "BrookTree BT482 (AGX)", + "BrookTree BT485/9485 (S3)", + "Sierra SC15025 (S3, AGX)", +#if XFREE86_VERSION >= 311 + "S3 GenDAC (86C708) (autodetected)", + "S3 SDAC (86C716) (autodetected)", +#else + "S3 GenDAC (86C708)", + "S3 SDAC (86C716)", +#endif + "STG-1700 (S3, autodetected)", + "STG-1703 (S3, autodetected)", + "TI 3020 (S3, autodetected)", + "TI 3025 (S3, autodetected)", + "TI 3026 (S3, autodetected)", + "IBM RGB 514 (S3, autodetected)", + "IBM RGB 524 (S3, autodetected)", + "IBM RGB 525 (S3, autodetected)", + "IBM RGB 526 (S3)", + "IBM RGB 528 (S3, autodetected)", + "ICS5342 (S3, ARK)", + "ICS5341 (W32)", + "IC Works w30C516 ZoomDac (ARK)", + "Normal DAC" +}; + +static char *ramdac_id[NU_RAMDACS] = { + "att20c490", "att20c498", "att20c409", "att20c505", "bt481", "bt482", + "bt485", "sc15025", "s3gendac", "s3_sdac", "stg1700","stg1703", + "ti3020", "ti3025", "ti3026", "ibm_rgb514", "ibm_rgb524", + "ibm_rgb525", "ibm_rgb526", "ibm_rgb528", "ics5342", "ics5341", + "zoomdac", "normal" +}; + +static char *clockchipcomment_text = +"A Clockchip line in the Device section forces the detection of a\n" +"programmable clock device. With a clockchip enabled, any required\n" +"clock can be programmed without requiring probing of clocks or a\n" +"Clocks line. Most cards don't have a programmable clock chip.\n" +"Choose from the following list:\n" +"\n"; + +#define NU_CLOCKCHIPS 12 + +static char *clockchip_name[] = { + "Chrontel 8391", + "ICD2061A and compatibles (ICS9161A, DCS2824)", + "ICS2595", + "ICS5342 (similar to SDAC, but not completely compatible)", + "ICS5341", + "S3 GenDAC (86C708) and ICS5300 (autodetected)", + "S3 SDAC (86C716)", + "STG 1703 (autodetected)", + "Sierra SC11412", + "TI 3025 (autodetected)", + "TI 3026 (autodetected)", + "IBM RGB 51x/52x (autodetected)", +}; + +static char *clockchip_id[] = { + "ch8391", "icd2061a", "ics2595", "ics5342", "ics5341", + "s3gendac", "s3_sdac", + "stg1703", "sc11412", "ti3025", "ti3026", "ibm_rgb5xx", +}; + +static char *deviceclockscomment_text = +"For most modern configurations, a Clocks line is neither required or\n" +"desirable. However for some older hardware it can be useful since it\n" +"prevents the slow and nasty sounding clock probing at server start-up.\n" +"Probed clocks are displayed at server startup, along with other server\n" +"and hardware configuration info. You can save this information in a file\n" +"by running 'X -probeonly 2>output_file'. Be warned that clock probing is\n" +"inherently imprecise; some clocks may be slightly too high (varies per run).\n" +"\n"; + +static char *deviceclocksquestion_text = +"At this point I can run X -probeonly, and try to extract the clock information\n" +"from the output. It is recommended that you do this yourself and if a set of\n" +"clocks is shown then you add a clocks line (note that the list of clocks may\n" +"be split over multiple Clocks lines) to your Device section afterwards. Be\n" +"aware that a clocks line is not appropriate for most modern hardware that\n" +"has programmable clocks.\n" +"\n" +"You must be root to be able to run X -probeonly now.\n" +"\n"; + +static char *probeonlywarning_text = +"It is possible that the hardware detection routines in the server will somehow\n" +"cause the system to crash and the screen to remain blank. If this is the\n" +"case, do not choose this option the next time. The server may need a\n" +"Ramdac, ClockChip or special option (e.g. \"nolinear\" for S3) to probe\n" +"and start-up correctly.\n" +"\n"; +#endif + +static char *modesorderintro_text = +"For each depth, a list of modes (resolutions) is defined. The default\n" +"resolution that the server will start-up with will be the first listed\n" +"mode that can be supported by the monitor and card.\n" +"Currently it is set to:\n" +"\n"; + +static char *modesorder_text2 = +"Modes that cannot be supported due to monitor or clock constraints will\n" +"be automatically skipped by the server.\n" +"\n" +" 1 Change the modes for 8-bit (256 colors)\n" +" 2 Change the modes for 16-bit (32K/64K colors)\n" +" 3 Change the modes for 24-bit (24-bit color)\n" +" 4 The modes are OK, continue.\n" +"\n"; + +static char *modeslist_text = +"Please type the digits corresponding to the modes that you want to select.\n" +"For example, 432 selects \"1024x768\" \"800x600\" \"640x480\", with a\n" +"default mode of 1024x768.\n" +"\n"; + +static char *virtual_text = +"You can have a virtual screen (desktop), which is screen area that is larger\n" +"than the physical screen and which is panned by moving the mouse to the edge\n" +"of the screen. If you don't want virtual desktop at a certain resolution,\n" +"you cannot have modes listed that are larger. Each color depth can have a\n" +"differently-sized virtual screen\n" +"\n"; + +static int videomemory[] = { + 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144 +}; + +/* Is this required? */ +#if XFREE86_VERSION >= 400 +#define NU_MODESTRINGS 13 +#else +#if XFREE86_VERSION >= 330 +#define NU_MODESTRINGS 12 +#else +#if XFREE86_VERSION >= 311 +#define NU_MODESTRINGS 8 +#else +#define NU_MODESTRINGS 5 +#endif +#endif +#endif + +static char *modestring[NU_MODESTRINGS] = { + "\"640x400\"", + "\"640x480\"", + "\"800x600\"", + "\"1024x768\"", + "\"1280x1024\"", +#if XFREE86_VERSION >= 311 + "\"320x200\"", + "\"320x240\"", + "\"400x300\"" +#endif +#if XFREE86_VERSION >= 330 + ,"\"1152x864\"", + "\"1600x1200\"", + "\"1800x1400\"", + "\"512x384\"" +#endif +#if XFREE86_VERSION >= 400 + ,"\"1400x1050\"" +#endif +}; + +static int exists_dir(char *name) { + struct stat sbuf; + + /* is it there ? */ + if (stat(name,&sbuf) == -1) + return 0; + + /* is there, but is it a dir? */ + return S_ISDIR(sbuf.st_mode) ? 1 : 0; +} + +static int +screen_configuration(void) { + int i, c/*, np*/; + char s[80]; + + /* + * Configure the "Device" section for the video card. + */ + + printf("%s", deviceintro_text); + + printf("%s", videomemoryintro_text); + + for (i = 0; i < sizeof(videomemory) / sizeof(videomemory[0]); i++) + printf("%2d %dK\n", i + 1, videomemory[i]); + printf("%2d Other\n\n", i + 1); + + printf("Enter your choice: "); + getstring(s); + printf("\n"); + + c = atoi(s) - 1; + if (c >= 0 && c < sizeof(videomemory) / sizeof(videomemory[0])) + config_videomemory = videomemory[c]; + else { + printf("Amount of video memory in Kbytes: "); + getstring(s); + config_videomemory = atoi(s); + printf("\n"); + } + + printf("%s", carddescintro_text); + if (card_selected != -1) + printf("Your card definition is %s.\n\n", + card[card_selected].name); + printf("The strings are free-form, spaces are allowed.\n"); + printf("Enter an identifier for your video card definition: "); + getstring(s); + if (strlen(s) == 0) + if (card_selected != -1) + config_deviceidentifier = card[card_selected].name; + else + config_deviceidentifier = "My Video Card"; + else { + config_deviceidentifier = Malloc(strlen(s) + 1); + strcpy(config_deviceidentifier, s); + } + printf("\n"); + + emptylines(); + + /* + * Initialize screen mode variables for svga and accel + * to default values. + * XXXX Doesn't leave room for off-screen caching in 16/32bpp modes + * for the accelerated servers in some situations. + */ + config_modesline8bpp = + config_modesline16bpp = + config_modesline24bpp = "\"640x480\""; + config_virtualx8bpp = config_virtualx16bpp = config_virtualx24bpp = + config_virtualy8bpp = config_virtualy16bpp = config_virtualy24bpp = 0; + if (config_videomemory >= 4096) { + config_virtualx8bpp = 1600; + config_virtualy8bpp = 1280; + if (card_selected != -1 && !(card[card_selected].flags & UNSUPPORTED)) { + /* + * Allow room for font/pixmap cache for accel + * servers. + */ + config_virtualx16bpp = 1280; + config_virtualy16bpp = 1024; + } + else { + config_virtualx16bpp = 1600; + config_virtualy16bpp = 1280; + } + if (card_selected != -1 && !(card[card_selected].flags & UNSUPPORTED)) { + config_virtualx24bpp = 1152; + config_virtualy24bpp = 900; + } + else { + config_virtualx24bpp = 1280; + config_virtualy24bpp = 1024; + } + /* Add 1600x1280 */ + config_modesline8bpp = "\"1280x1024\" \"1024x768\" \"800x600\" \"640x480\""; + config_modesline16bpp = "\"1280x1024\" \"1024x768\" \"800x600\" \"640x480\""; + config_modesline24bpp = "\"1280x1024\" \"1024x768\" \"800x600\" \"640x480\""; + + } + else + if (config_videomemory >= 2048) { + if (card_selected != -1 && !(card[card_selected].flags & UNSUPPORTED)) { + /* + * Allow room for font/pixmap cache for accel + * servers. + * Also the mach32 is has a limited width. + */ + config_virtualx8bpp = 1280; + config_virtualy8bpp = 1024; + } + else { + config_virtualx8bpp = 1600; + config_virtualy8bpp = 1200; + } + if (card_selected != -1 && !(card[card_selected].flags & UNSUPPORTED)) { + config_virtualx16bpp = 1024; + config_virtualy16bpp = 768; + } + else { + config_virtualx16bpp = 1152; + config_virtualy16bpp = 900; + } + config_virtualx24bpp = 800; + config_virtualy24bpp = 600; + if (config_videomemory >= 2048 + 256) { + config_virtualx24bpp = 1024; + config_virtualy24bpp = 768; + } + config_modesline8bpp = "\"1280x1024\" \"1024x768\" \"800x600\" \"640x480\""; + config_modesline16bpp = "\"1024x768\" \"800x600\" \"640x480\""; + if (config_videomemory >= 2048 + 256) + config_modesline24bpp = "\"1024x768\" \"800x600\" \"640x480\""; + else + config_modesline24bpp = "\"800x600\" \"640x480\""; + } + else + if (config_videomemory >= 1024) { + if (card_selected != -1 && !(card[card_selected].flags & UNSUPPORTED)) { + /* + * Allow room for font/pixmap cache for accel + * servers. + */ + config_virtualx8bpp = 1024; + config_virtualy8bpp = 768; + } + else { + config_virtualx8bpp = 1152; + config_virtualy8bpp = 900; + } + config_virtualx16bpp = 800; /* Forget about cache space; */ + config_virtualy16bpp = 600; /* it's small enough as it is. */ + config_virtualx24bpp = 640; + config_virtualy24bpp = 480; + config_modesline8bpp = "\"1024x768\" \"800x600\" \"640x480\""; + config_modesline16bpp = "\"800x600\" \"640x480\""; + config_modesline24bpp = "\"640x480\""; + } + else + if (config_videomemory >= 512) { + config_virtualx8bpp = 800; + config_virtualy8bpp = 600; + config_modesline8bpp = "\"800x600\" \"640x480\""; + config_modesline16bpp = "\"640x400\""; + } + else + if (config_videomemory >= 256) { + config_modesline8bpp = "\"640x400\""; + config_virtualx8bpp = 640; + config_virtualy8bpp = 400; + } + else { + printf("Invalid amount of video memory. Please try again\n"); + return(1); + } + +#if 0 + /* + * Handle the Ramdac/Clockchip setting. + */ + + printf("%s", devicesettingscomment_text); + + if (card_selected == -1 || (card[card_selected].flags & UNSUPPORTED)) + goto skipramdacselection; + + printf("%s", ramdaccomment_text); + + /* meanwhile there are so many RAMDACs that they do no longer fit on + * on page + */ + for (np=12, i=0 ;;) { + int j; + for (j = i; j < i + np && j < NU_RAMDACS; j++) + printf("%3d %-60s%s\n", j+1, + ramdac_name[j], + ramdac_id[j]); + + printf("\n"); + if (card_selected != -1) + if (card[card_selected].ramdac != NULL) + printf("The card definition has Ramdac \"%s\".\n\n", + card[card_selected].ramdac); + printf("\n"); + printf("Enter a number to choose the corresponding RAMDAC.\n"); + printf("Press enter for the next page, q to quit without selection of a RAMDAC.\n"); + printf("\n"); + getstring(s); + + config_ramdac = NULL; + if (s[0] == 'q') + break; + + if (strlen(s) > 0) { + c = atoi(s)-1; + if (c >= 0 && c < NU_RAMDACS) { + config_ramdac = ramdac_id[atoi(s)-1]; + break; + } + } + + i += np; + if (np==12) np = 18; /* account intro lines only displayed 1st time */ + if (i >= NU_RAMDACS) + i = 0; + emptylines(); + } + +skipramdacselection: + emptylines(); + printf("%s", clockchipcomment_text); + + for (i = 0; i < NU_CLOCKCHIPS; i++) + printf("%2d %-60s%s\n", + i + 1, clockchip_name[i], clockchip_id[i]); + + printf("\n"); + + if (card_selected != -1) + if (card[card_selected].clockchip != NULL) + printf("The card definition has Clockchip \"%s\"\n\n", + card[card_selected].clockchip); + + printf("Just press enter if you don't want a Clockchip setting.\n"); + printf("What Clockchip setting do you want (1-%d)? ", NU_CLOCKCHIPS); + + getstring(s); + config_clockchip = NULL; + if (strlen(s) > 0) + config_clockchip = clockchip_id[atoi(s) - 1]; + + emptylines(); + + /* + * Optionally run X -probeonly to figure out the clocks. + */ + + config_numberofclockslines = 0; + + printf("%s", deviceclockscomment_text); + + printf("%s", deviceclocksquestion_text); +#endif + +#if 0 + /* + * XXX Change this to check for a CLOCKPROBE flag rather than an + * NOCLOCKPROBE. + */ + if (card_selected != -1) + if (card[card_selected].flags & NOCLOCKPROBE) + printf("The card definition says to NOT probe clocks.\n"); + + if (config_clockchip != NULL) { + printf("Because you have enabled a Clockchip line, there's no need for clock\n" + "probing.\n"); + keypress(); + goto skipclockprobing; + } + + printf("Do you want me to run 'X -probeonly' now? "); + getstring(s); + printf("\n"); + if (answerisyes(s)) { + /* + * Write temporary XF86Config and run X -probeonly. + * Only allow when root. + */ + FILE *f; + char *buf; + char syscmdline[2*256+100]; /* enough */ + char *fname = NULL; + char *d2name = NULL; + char *d3name = NULL; + + if (getuid() != 0) { + printf("Sorry, you must be root to do this.\n\n"); + goto endofprobeonly; + } + printf("%s", probeonlywarning_text); + keypress(); + fname = Malloc(strlen(temp_dir) + + strlen(TEMPORARY_XF86CONFIG_FILENAME) + 1); + sprintf(fname, "%s%s", temp_dir, + TEMPORARY_XF86CONFIG_FILENAME); + d2name = Malloc(strlen(temp_dir) + strlen(DUMBCONFIG2) + 1); + sprintf(d2name, "%s%s", temp_dir, DUMBCONFIG2); + d3name = Malloc(strlen(temp_dir) + strlen(DUMBCONFIG3) + 1); + sprintf(d3name, "%s%s", temp_dir, DUMBCONFIG3); + printf("Running X -probeonly -pn -xf86config %s.\n", fname); + write_XF86Config(fname); + sync(); + /* compose a line with the real path */ + sprintf(syscmdline, "X -probeonly -pn -xf86config %s 2> %s", + fname, d2name); + + if (system(syscmdline)) { + printf("X -probeonly call failed.\n"); + printf("No Clocks line inserted.\n"); + goto clocksprobefailed; + } + /* Look for 'clocks:' (case sensitive). */ + sprintf(syscmdline, "grep clocks\\: %s > %s", d2name, d3name); + if (system(syscmdline)) { + printf("grep failed.\n"); + printf("Cannot find clocks in server output.\n"); + goto clocksprobefailed; + } + f = fopen(d3name, "r"); + buf = Malloc(8192); + /* Parse lines. */ + while (fgets(buf, 8192, f) != NULL) { + char *clks; + clks = strstr(buf, "clocks: ") + 8; + if (clks >= buf + 3 && strcmp(clks - 11, "num") == 0) + /* Reject lines with 'numclocks:'. */ + continue; + if (clks >= buf + 8 && strcpy(clks - 14, "pixel ") == 0) + /* Reject lines with 'pixel clocks:'. */ + continue; + clks[strlen(clks) - 1] = '\0'; /* Remove '\n'. */ + config_clocksline[config_numberofclockslines] = + Malloc(strlen(clks) + 1); + strcpy(config_clocksline[config_numberofclockslines], + clks); + printf("Clocks %s\n", clks); + config_numberofclockslines++; + } + fclose(f); +clocksprobefailed: + unlink(d3name); + unlink(d2name); + unlink(fname); + printf("\n"); + +endofprobeonly: + keypress(); + } +skipclockprobing: +#endif + + /* + * For vga driver, no further configuration is required. + */ + if (card_selected == -1 || (card[card_selected].flags & UNSUPPORTED)) + return (0); + + /* + * Configure the modes order. + */ + config_virtual = 0; + for (;;) { + char modes[128]; + + emptylines(); + + printf("%s", modesorderintro_text); + printf("%s for 8-bit\n", config_modesline8bpp); + printf("%s for 16-bit\n", config_modesline16bpp); + printf("%s for 24-bit\n", config_modesline24bpp); + printf("\n"); + printf("%s", modesorder_text2); + + printf("Enter your choice: "); + getstring(s); + printf("\n"); + + c = atoi(s) - 1; + if (c < 0 || c >= 3) + break; + + printf("Select modes from the following list:\n\n"); + + for (i = 0; i < NU_MODESTRINGS; i++) + printf(" %c %s\n", i < 9 ? '1' + i : + 'a' + i - 9, + modestring[i]); + printf("\n"); + + printf("%s", modeslist_text); + + printf("Which modes? "); + getstring(s); + printf("\n"); + + modes[0] = '\0'; + for (i = 0; i < strlen(s); i++) { + if ( NU_MODESTRINGS > 9 ) { + if ((s[i] < '1' || s[i] > '9') && + (s[i] < 'a' || s[i] > 'a' + NU_MODESTRINGS - 10)) { + printf("Invalid mode skipped.\n"); + continue; + } + } + else { + if (s[i] < '1' || s[i] > '0' + NU_MODESTRINGS) { + printf("Invalid mode skipped.\n"); + continue; + } + } + if (i > 0) + strcat(modes, " "); + strcat(modes, modestring[s[i] <= '9' ? s[i] - '1' : + s[i] - 'a' + 9]); + } + switch (c) { + case 0 : + config_modesline8bpp = Malloc(strlen(modes) + 1); + strcpy(config_modesline8bpp, modes); + break; + case 1 : + config_modesline16bpp = Malloc(strlen(modes) + 1); + strcpy(config_modesline16bpp, modes); + break; + case 2 : + config_modesline24bpp = Malloc(strlen(modes) + 1); + strcpy(config_modesline24bpp, modes); + break; + } + + printf("%s", virtual_text); + + printf("Please answer the following question with either 'y' or 'n'.\n"); + printf("Do you want a virtual screen that is larger than the physical screen?"); + getstring(s); + if (answerisyes(s)) + config_virtual = 1; + } + return(0); +} + +static char *defaultdepthtext = +"Please specify which color depth you want to use by default:\n" +"\n"; + +static struct depth_str { + char *name; + char *desc; +} depth_list[] = { + { "1", "1 bit (monochrome)" }, + { "4", "4 bits (16 colors)" }, + { "8", "8 bits (256 colors)" }, + { "16", "16 bits (65536 colors)" }, + { "24", "24 bits (16 million colors)" } +}; + +static int ndepths = sizeof(depth_list)/sizeof(struct depth_str); + +static void +depth_configuration(void) +{ + int i; + char s[80]; + int depth; + + printf(defaultdepthtext); + for (i=0; i<ndepths; i++) { + printf("%3d %-50s\n",i+1,depth_list[i].desc); + } + + printf("\nEnter a number to choose the default depth.\n\n"); + getstring(s); + if (strlen(s) == 0) + depth = 0; + else { + i = atoi(s)-1; + depth = (i < 0 || i > ndepths) ? 0 : i; + } + config_depth = depth_list[depth].name; +} + +/* + * Create the XF86Config file. + */ + +static char *XF86Config_firstchunk_text = +"# File generated by xorgconfig.\n" +"\n" +"#\n" +"# Copyright 2004 "XVENDORNAME"\n" +"#\n" +"# Permission is hereby granted, free of charge, to any person obtaining a\n" +"# copy of this software and associated documentation files (the \"Software\"),\n" +"# to deal in the Software without restriction, including without limitation\n" +"# the rights to use, copy, modify, merge, publish, distribute, sublicense,\n" +"# and/or sell copies of the Software, and to permit persons to whom the\n" +"# Software is furnished to do so, subject to the following conditions:\n" +"# \n" +"# The above copyright notice and this permission notice shall be included in\n" +"# all copies or substantial portions of the Software.\n" +"# \n" +"# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n" +"# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n" +"# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\n" +"# "XVENDORNAME" BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n" +"# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF\n" +"# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n" +"# SOFTWARE.\n" +"# \n" +"# Except as contained in this notice, the name of "XVENDORNAME" shall\n" +"# not be used in advertising or otherwise to promote the sale, use or other\n" +"# dealings in this Software without prior written authorization from\n" +"# "XVENDORNAME".\n" +"#\n" +"\n" +"# **********************************************************************\n" +"# Refer to the " CONFIGNAME "(" FILEMANSUFFIX ") man page for details about the format of \n" +"# this file.\n" +"# **********************************************************************\n" +"\n" +"# **********************************************************************\n" +"# Module section -- this section is used to specify\n" +"# which dynamically loadable modules to load.\n" +"# **********************************************************************\n" +"#\n" +"Section \"Module\"\n" +"\n" +"# This loads the DBE extension module.\n" +"\n" +" Load \"dbe\" # Double buffer extension\n" +"\n" +"# This loads the miscellaneous extensions module, and disables\n" +"# initialisation of the XFree86-DGA extension within that module.\n" +" SubSection \"extmod\"\n" +" Option \"omit xfree86-dga\" # don't initialise the DGA extension\n" +" EndSubSection\n" +"\n" +"# This loads the font modules\n" +#ifdef HAS_TYPE1 +" Load \"type1\"\n" +#else +"# Load \"type1\"\n" +#endif +" Load \"freetype\"\n" +"# Load \"xtt\"\n" +"\n" +"# This loads the GLX module\n" +"# Load \"glx\"\n" +"# This loads the DRI module\n" +"# Load \"dri\"\n" +"\n" +"EndSection\n" +"\n" +"# **********************************************************************\n" +"# Files section. This allows default font and rgb paths to be set\n" +"# **********************************************************************\n" +"\n" +"Section \"Files\"\n" +"\n" +"# Multiple FontPath entries are allowed (which are concatenated together),\n" +"# as well as specifying multiple comma-separated entries in one FontPath\n" +"# command (or a combination of both methods)\n" +"# \n" +"\n"; + +static char *XF86Config_fontpaths[] = +{ +/* " FontPath \"" TREEROOTFONT "/75dpi/\"\n"*/ + "/local/", + "/misc/", + "/75dpi/:unscaled", + "/100dpi/:unscaled", + "/Type1/", + "/TrueType/", + "/freefont/", + "/75dpi/", + "/100dpi/", + 0 /* end of fontpaths */ +}; + +static char *XF86Config_fontpathchunk_text = + +"\n" +"# The module search path. The default path is shown here.\n" +"\n" +"# ModulePath \"" MODULEPATH "\"\n" +"\n" +"EndSection\n" +"\n" +"# **********************************************************************\n" +"# Server flags section.\n" +"# **********************************************************************\n" +"\n" +"Section \"ServerFlags\"\n" +"\n" +"# Uncomment this to cause a core dump at the spot where a signal is \n" +"# received. This may leave the console in an unusable state, but may\n" +"# provide a better stack trace in the core dump to aid in debugging\n" +"\n" +"# Option \"NoTrapSignals\"\n" +"\n" +"# Uncomment this to disable the <Ctrl><Alt><Fn> VT switch sequence\n" +"# (where n is 1 through 12). This allows clients to receive these key\n" +"# events.\n" +"\n" +"# Option \"DontVTSwitch\"\n" +"\n" +"# Uncomment this to disable the <Ctrl><Alt><BS> server abort sequence\n" +"# This allows clients to receive this key event.\n" +"\n" +"# Option \"DontZap\"\n" +"\n" +"# Uncomment this to disable the <Ctrl><Alt><KP_+>/<KP_-> mode switching\n" +"# sequences. This allows clients to receive these key events.\n" +"\n" +"# Option \"Dont Zoom\"\n" +"\n" +"# Uncomment this to disable tuning with the xvidtune client. With\n" +"# it the client can still run and fetch card and monitor attributes,\n" +"# but it will not be allowed to change them. If it tries it will\n" +"# receive a protocol error.\n" +"\n" +"# Option \"DisableVidModeExtension\"\n" +"\n" +"# Uncomment this to enable the use of a non-local xvidtune client. \n" +"\n" +"# Option \"AllowNonLocalXvidtune\"\n" +"\n" +"# Uncomment this to disable dynamically modifying the input device\n" +"# (mouse and keyboard) settings. \n" +"\n" +"# Option \"DisableModInDev\"\n" +"\n" +"# Uncomment this to enable the use of a non-local client to\n" +"# change the keyboard or mouse settings (currently only xset).\n" +"\n" +"# Option \"AllowNonLocalModInDev\"\n" +"\n" +"EndSection\n" +"\n" +"# **********************************************************************\n" +"# Input devices\n" +"# **********************************************************************\n" +"\n" +"# **********************************************************************\n" +"# Core keyboard's InputDevice section\n" +"# **********************************************************************\n" +"\n" +"Section \"InputDevice\"\n" +"\n" +" Identifier \"Keyboard1\"\n" +" Driver \"kbd\"\n" +"\n" +" Option \"AutoRepeat\" \"500 30\"\n" +"\n" +"# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))\n" +"# Option \"Xleds\" \"1 2 3\"\n" +"\n"; + +static char *keyboardchunk2_text = +"\n"; + +static char *keyboardchunk3_text = +"# To customise the XKB settings to suit your keyboard, modify the\n" +"# lines below (which are the defaults). For example, for a non-U.S.\n" +"# keyboard, you will probably want to use:\n" +"# Option \"XkbModel\" \"pc105\"\n" +"# If you have a US Microsoft Natural keyboard, you can use:\n" +"# Option \"XkbModel\" \"microsoft\"\n" +"#\n" +"# Then to change the language, change the Layout setting.\n" +"# For example, a german layout can be obtained with:\n" +"# Option \"XkbLayout\" \"de\"\n" +"# or:\n" +"# Option \"XkbLayout\" \"de\"\n" +"# Option \"XkbVariant\" \"nodeadkeys\"\n" +"#\n" +"# If you'd like to switch the positions of your capslock and\n" +"# control keys, use:\n" +"# Option \"XkbOptions\" \"ctrl:swapcaps\"\n" +"\n" +"# These are the default XKB settings for "__XSERVERNAME__"\n" +"# Option \"XkbRules\" \""__XKBDEFRULES__"\"\n" +"# Option \"XkbModel\" \"pc105\"\n" +"# Option \"XkbLayout\" \"us\"\n" +"# Option \"XkbVariant\" \"\"\n" +"# Option \"XkbOptions\" \"\"\n" +"\n"; + +static char *keyboardlastchunk_text = +"\n" +"EndSection\n" +"\n" +"\n"; + +static char *pointersection_text1 = +"# **********************************************************************\n" +"# Core Pointer's InputDevice section\n" +"# **********************************************************************\n" +"\n" +"Section \"InputDevice\"\n" +"\n" +"# Identifier and driver\n" +"\n" +#if defined(__UNIXWARE__) +"# Identifier \"Mouse1\"\n" +"# Driver \"mouse\"\n" +#else +" Identifier \"Mouse1\"\n" +" Driver \"mouse\"\n" +#endif +; + +static char *pointersection_text2 = +"\n" +"# Mouse-speed setting for PS/2 mouse.\n" +"\n" +"# Option \"Resolution\" \"256\"\n" +"\n" +"# Baudrate and SampleRate are only for some Logitech mice. In\n" +"# almost every case these lines should be omitted.\n" +"\n" +"# Option \"BaudRate\" \"9600\"\n" +"# Option \"SampleRate\" \"150\"\n" +"\n" +"# Mouse wheel mapping. Default is to map vertical wheel to buttons 4 & 5,\n" +"# horizontal wheel to buttons 6 & 7. Change if your mouse has more than\n" +"# 3 buttons and you need to map the wheel to different button ids to avoid\n" +"# conflicts.\n" +"\n" +" Option \"ZAxisMapping\" \"4 5 6 7\"\n" +"\n" +"# Emulate3Buttons is an option for 2-button mice\n" +"# Emulate3Timeout is the timeout in milliseconds (default is 50ms)\n" +"\n"; + + +static char *xinputsection_text = +"# **********************************************************************\n" +"# Other input device sections \n" +"# this is optional and is required only if you\n" +"# are using extended input devices. This is for example only. Refer\n" +"# to the " CONFIGNAME " man page for a description of the options.\n" +"# **********************************************************************\n" +"#\n" +"# Section \"InputDevice\" \n" +"# Identifier \"Mouse2\"\n" +"# Driver \"mouse\"\n" +"# Option \"Protocol\" \"MouseMan\"\n" +"# Option \"Device\" \"/dev/mouse2\"\n" +"# EndSection\n" +"#\n" +"# Section \"InputDevice\"\n" +"# Identifier \"spaceball\"\n" +"# Driver \"magellan\"\n" +"# Option \"Device\" \"/dev/cua0\"\n" +"# EndSection\n" +"#\n" +"# Section \"InputDevice\"\n" +"# Identifier \"spaceball2\"\n" +"# Driver \"spaceorb\"\n" +"# Option \"Device\" \"/dev/cua0\"\n" +"# EndSection\n" +"#\n" +"# Section \"InputDevice\"\n" +"# Identifier \"touchscreen0\"\n" +"# Driver \"microtouch\"\n" +"# Option \"Device\" \"/dev/ttyS0\"\n" +"# Option \"MinX\" \"1412\"\n" +"# Option \"MaxX\" \"15184\"\n" +"# Option \"MinY\" \"15372\"\n" +"# Option \"MaxY\" \"1230\"\n" +"# Option \"ScreenNumber\" \"0\"\n" +"# Option \"ReportingMode\" \"Scaled\"\n" +"# Option \"ButtonNumber\" \"1\"\n" +"# Option \"SendCoreEvents\"\n" +"# EndSection\n" +"#\n" +"# Section \"InputDevice\"\n" +"# Identifier \"touchscreen1\"\n" +"# Driver \"elo2300\"\n" +"# Option \"Device\" \"/dev/ttyS0\"\n" +"# Option \"MinX\" \"231\"\n" +"# Option \"MaxX\" \"3868\"\n" +"# Option \"MinY\" \"3858\"\n" +"# Option \"MaxY\" \"272\"\n" +"# Option \"ScreenNumber\" \"0\"\n" +"# Option \"ReportingMode\" \"Scaled\"\n" +"# Option \"ButtonThreshold\" \"17\"\n" +"# Option \"ButtonNumber\" \"1\"\n" +"# Option \"SendCoreEvents\"\n" +"# EndSection\n" +"\n"; + +static char *monitorsection_text1 = +"# **********************************************************************\n" +"# Monitor section\n" +"# **********************************************************************\n" +"\n" +"# Any number of monitor sections may be present\n" +"\n" +"Section \"Monitor\"\n" +"\n"; + +static char *monitorsection_text2 = +"# HorizSync is in kHz unless units are specified.\n" +"# HorizSync may be a comma separated list of discrete values, or a\n" +"# comma separated list of ranges of values.\n" +"# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR\'S\n" +"# USER MANUAL FOR THE CORRECT NUMBERS.\n" +"\n"; + +static char *monitorsection_text3 = +"# HorizSync 30-64 # multisync\n" +"# HorizSync 31.5, 35.2 # multiple fixed sync frequencies\n" +"# HorizSync 15-25, 30-50 # multiple ranges of sync frequencies\n" +"\n" +"# VertRefresh is in Hz unless units are specified.\n" +"# VertRefresh may be a comma separated list of discrete values, or a\n" +"# comma separated list of ranges of values.\n" +"# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR\'S\n" +"# USER MANUAL FOR THE CORRECT NUMBERS.\n" +"\n"; + +#if 0 +static char *monitorsection_text4 = +"# Modes can be specified in two formats. A compact one-line format, or\n" +"# a multi-line format.\n" +"\n" +"# These two are equivalent\n" +"\n" +"# ModeLine \"1024x768i\" 45 1024 1048 1208 1264 768 776 784 817 Interlace\n" +"\n" +"# Mode \"1024x768i\"\n" +"# DotClock 45\n" +"# HTimings 1024 1048 1208 1264\n" +"# VTimings 768 776 784 817\n" +"# Flags \"Interlace\"\n" +"# EndMode\n" +"\n"; + +static char *modelines_text = +"# This is a set of standard mode timings. Modes that are out of monitor spec\n" +"# are automatically deleted by the server (provided the HorizSync and\n" +"# VertRefresh lines are correct), so there's no immediate need to\n" +"# delete mode timings (unless particular mode timings don't work on your\n" +"# monitor). With these modes, the best standard mode that your monitor\n" +"# and video card can support for a given resolution is automatically\n" +"# used.\n" +"\n" +"# 640x400 @ 70 Hz, 31.5 kHz hsync\n" +"Modeline \"640x400\" 25.175 640 664 760 800 400 409 411 450\n" +"# 640x480 @ 60 Hz, 31.5 kHz hsync\n" +"Modeline \"640x480\" 25.175 640 664 760 800 480 491 493 525\n" +"# 800x600 @ 56 Hz, 35.15 kHz hsync\n" +"ModeLine \"800x600\" 36 800 824 896 1024 600 601 603 625\n" +"# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsync\n" +"Modeline \"1024x768\" 44.9 1024 1048 1208 1264 768 776 784 817 Interlace\n" +"\n" +"# 640x400 @ 85 Hz, 37.86 kHz hsync\n" +"Modeline \"640x400\" 31.5 640 672 736 832 400 401 404 445 -HSync +VSync\n" +"# 640x480 @ 72 Hz, 36.5 kHz hsync\n" +"Modeline \"640x480\" 31.5 640 680 720 864 480 488 491 521\n" +"# 640x480 @ 75 Hz, 37.50 kHz hsync\n" +"ModeLine \"640x480\" 31.5 640 656 720 840 480 481 484 500 -HSync -VSync\n" +"# 800x600 @ 60 Hz, 37.8 kHz hsync\n" +"Modeline \"800x600\" 40 800 840 968 1056 600 601 605 628 +hsync +vsync\n" +"\n" +"# 640x480 @ 85 Hz, 43.27 kHz hsync\n" +"Modeline \"640x480\" 36 640 696 752 832 480 481 484 509 -HSync -VSync\n" +"# 1152x864 @ 89 Hz interlaced, 44 kHz hsync\n" +"ModeLine \"1152x864\" 65 1152 1168 1384 1480 864 865 875 985 Interlace\n" +"\n" +"# 800x600 @ 72 Hz, 48.0 kHz hsync\n" +"Modeline \"800x600\" 50 800 856 976 1040 600 637 643 666 +hsync +vsync\n" +"# 1024x768 @ 60 Hz, 48.4 kHz hsync\n" +"Modeline \"1024x768\" 65 1024 1032 1176 1344 768 771 777 806 -hsync -vsync\n" +"\n" +"# 640x480 @ 100 Hz, 53.01 kHz hsync\n" +"Modeline \"640x480\" 45.8 640 672 768 864 480 488 494 530 -HSync -VSync\n" +"# 1152x864 @ 60 Hz, 53.5 kHz hsync\n" +"Modeline \"1152x864\" 89.9 1152 1216 1472 1680 864 868 876 892 -HSync -VSync\n" +"# 800x600 @ 85 Hz, 55.84 kHz hsync\n" +"Modeline \"800x600\" 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync\n" +"\n" +"# 1024x768 @ 70 Hz, 56.5 kHz hsync\n" +"Modeline \"1024x768\" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync\n" +"# 1280x1024 @ 87 Hz interlaced, 51 kHz hsync\n" +"Modeline \"1280x1024\" 80 1280 1296 1512 1568 1024 1025 1037 1165 Interlace\n" +"\n" +"# 800x600 @ 100 Hz, 64.02 kHz hsync\n" +"Modeline \"800x600\" 69.65 800 864 928 1088 600 604 610 640 -HSync -VSync\n" +"# 1024x768 @ 76 Hz, 62.5 kHz hsync\n" +"Modeline \"1024x768\" 85 1024 1032 1152 1360 768 784 787 823\n" +"# 1152x864 @ 70 Hz, 62.4 kHz hsync\n" +"Modeline \"1152x864\" 92 1152 1208 1368 1474 864 865 875 895\n" +"# 1280x1024 @ 61 Hz, 64.2 kHz hsync\n" +"Modeline \"1280x1024\" 110 1280 1328 1512 1712 1024 1025 1028 1054\n" +"\n" +"# 1024x768 @ 85 Hz, 70.24 kHz hsync\n" +"Modeline \"1024x768\" 98.9 1024 1056 1216 1408 768 782 788 822 -HSync -VSync\n" +"# 1152x864 @ 78 Hz, 70.8 kHz hsync\n" +"Modeline \"1152x864\" 110 1152 1240 1324 1552 864 864 876 908\n" +"\n" +"# 1280x1024 @ 70 Hz, 74.59 kHz hsync\n" +"Modeline \"1280x1024\" 126.5 1280 1312 1472 1696 1024 1032 1040 1068 -HSync -VSync\n" +"# 1600x1200 @ 60Hz, 75.00 kHz hsync\n" +"Modeline \"1600x1200\" 162 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync\n" +"# 1152x864 @ 84 Hz, 76.0 kHz hsync\n" +"Modeline \"1152x864\" 135 1152 1464 1592 1776 864 864 876 908\n" +"\n" +"# 1280x1024 @ 74 Hz, 78.85 kHz hsync\n" +"Modeline \"1280x1024\" 135 1280 1312 1456 1712 1024 1027 1030 1064\n" +"\n" +"# 1024x768 @ 100Hz, 80.21 kHz hsync\n" +"Modeline \"1024x768\" 115.5 1024 1056 1248 1440 768 771 781 802 -HSync -VSync\n" +"# 1280x1024 @ 76 Hz, 81.13 kHz hsync\n" +"Modeline \"1280x1024\" 135 1280 1312 1416 1664 1024 1027 1030 1064\n" +"\n" +"# 1600x1200 @ 70 Hz, 87.50 kHz hsync\n" +"Modeline \"1600x1200\" 189 1600 1664 1856 2160 1200 1201 1204 1250 -HSync -VSync\n" +"# 1152x864 @ 100 Hz, 89.62 kHz hsync\n" +"Modeline \"1152x864\" 137.65 1152 1184 1312 1536 864 866 885 902 -HSync -VSync\n" +"# 1280x1024 @ 85 Hz, 91.15 kHz hsync\n" +"Modeline \"1280x1024\" 157.5 1280 1344 1504 1728 1024 1025 1028 1072 +HSync +VSync\n" +"# 1600x1200 @ 75 Hz, 93.75 kHz hsync\n" +"Modeline \"1600x1200\" 202.5 1600 1664 1856 2160 1200 1201 1204 1250 +HSync +VSync\n" +"# 1600x1200 @ 85 Hz, 105.77 kHz hsync\n" +"Modeline \"1600x1200\" 220 1600 1616 1808 2080 1200 1204 1207 1244 +HSync +VSync\n" +"# 1280x1024 @ 100 Hz, 107.16 kHz hsync\n" +"Modeline \"1280x1024\" 181.75 1280 1312 1440 1696 1024 1031 1046 1072 -HSync -VSync\n" +"\n" +"# 1800x1440 @ 64Hz, 96.15 kHz hsync \n" +"ModeLine \"1800X1440\" 230 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync\n" +"# 1800x1440 @ 70Hz, 104.52 kHz hsync \n" +"ModeLine \"1800X1440\" 250 1800 1896 2088 2392 1440 1441 1444 1490 +HSync +VSync\n" +"\n" +"# 512x384 @ 78 Hz, 31.50 kHz hsync\n" +"Modeline \"512x384\" 20.160 512 528 592 640 384 385 388 404 -HSync -VSync\n" +"# 512x384 @ 85 Hz, 34.38 kHz hsync\n" +"Modeline \"512x384\" 22 512 528 592 640 384 385 388 404 -HSync -VSync\n" +"\n" +#if XFREE86_VERSION >= 311 +"# Low-res Doublescan modes\n" +"# If your chipset does not support doublescan, you get a 'squashed'\n" +"# resolution like 320x400.\n" +"\n" +"# 320x200 @ 70 Hz, 31.5 kHz hsync, 8:5 aspect ratio\n" +"Modeline \"320x200\" 12.588 320 336 384 400 200 204 205 225 Doublescan\n" +"# 320x240 @ 60 Hz, 31.5 kHz hsync, 4:3 aspect ratio\n" +"Modeline \"320x240\" 12.588 320 336 384 400 240 245 246 262 Doublescan\n" +"# 320x240 @ 72 Hz, 36.5 kHz hsync\n" +"Modeline \"320x240\" 15.750 320 336 384 400 240 244 246 262 Doublescan\n" +"# 400x300 @ 56 Hz, 35.2 kHz hsync, 4:3 aspect ratio\n" +"ModeLine \"400x300\" 18 400 416 448 512 300 301 302 312 Doublescan\n" +"# 400x300 @ 60 Hz, 37.8 kHz hsync\n" +"Modeline \"400x300\" 20 400 416 480 528 300 301 303 314 Doublescan\n" +"# 400x300 @ 72 Hz, 48.0 kHz hsync\n" +"Modeline \"400x300\" 25 400 424 488 520 300 319 322 333 Doublescan\n" +"# 480x300 @ 56 Hz, 35.2 kHz hsync, 8:5 aspect ratio\n" +"ModeLine \"480x300\" 21.656 480 496 536 616 300 301 302 312 Doublescan\n" +"# 480x300 @ 60 Hz, 37.8 kHz hsync\n" +"Modeline \"480x300\" 23.890 480 496 576 632 300 301 303 314 Doublescan\n" +"# 480x300 @ 63 Hz, 39.6 kHz hsync\n" +"Modeline \"480x300\" 25 480 496 576 632 300 301 303 314 Doublescan\n" +"# 480x300 @ 72 Hz, 48.0 kHz hsync\n" +"Modeline \"480x300\" 29.952 480 504 584 624 300 319 322 333 Doublescan\n" +"\n" +#endif +; +#endif + +static char *devicesection_text = +"# **********************************************************************\n" +"# Graphics device section\n" +"# **********************************************************************\n" +"\n" +"# Any number of graphics device sections may be present\n" +"\n" +"# Standard VGA Device:\n" +"\n" +"Section \"Device\"\n" +" Identifier \"Standard VGA\"\n" +" VendorName \"Unknown\"\n" +" BoardName \"Unknown\"\n" +"\n" +"# The chipset line is optional in most cases. It can be used to override\n" +"# the driver's chipset detection, and should not normally be specified.\n" +"\n" +"# Chipset \"generic\"\n" +"\n" +"# The Driver line must be present. When using run-time loadable driver\n" +"# modules, this line instructs the server to load the specified driver\n" +"# module. Even when not using loadable driver modules, this line\n" +"# indicates which driver should interpret the information in this section.\n" +"\n" +" Driver \"vga\"\n" +"# The BusID line is used to specify which of possibly multiple devices\n" +"# this section is intended for. When this line isn't present, a device\n" +"# section can only match up with the primary video device. For PCI\n" +"# devices a line like the following could be used. This line should not\n" +"# normally be included unless there is more than one video device\n" +"# intalled.\n" +"\n" +"# BusID \"PCI:0:10:0\"\n" +"\n" +"# VideoRam 256\n" +"\n" +"# Clocks 25.2 28.3\n" +"\n" +"EndSection\n" +"\n" +"# Device configured by xorgconfig:\n" +"\n"; + +static char *screensection_text1 = +"# **********************************************************************\n" +"# Screen sections\n" +"# **********************************************************************\n" +"\n" +"# Any number of screen sections may be present. Each describes\n" +"# the configuration of a single screen. A single specific screen section\n" +"# may be specified from the X server command line with the \"-screen\"\n" +"# option.\n"; + +static char *serverlayout_section_text1 = +"# **********************************************************************\n" +"# ServerLayout sections.\n" +"# **********************************************************************\n" +"\n" +"# Any number of ServerLayout sections may be present. Each describes\n" +"# the way multiple screens are organised. A specific ServerLayout\n" +"# section may be specified from the X server command line with the\n" +"# \"-layout\" option. In the absence of this, the first section is used.\n" +"# When now ServerLayout section is present, the first Screen section\n" +"# is used alone.\n" +"\n" +"Section \"ServerLayout\"\n" +"\n" +"# The Identifier line must be present\n" +" Identifier \"Simple Layout\"\n" +"\n" +"# Each Screen line specifies a Screen section name, and optionally\n" +"# the relative position of other screens. The four names after\n" +"# primary screen name are the screens to the top, bottom, left and right\n" +"# of the primary screen. In this example, screen 2 is located to the\n" +"# right of screen 1.\n" +"\n"; + +static char *serverlayout_section_text2 = +"\n" +"# Each InputDevice line specifies an InputDevice section name and\n" +"# optionally some options to specify the way the device is to be\n" +"# used. Those options include \"CorePointer\", \"CoreKeyboard\" and\n" +"# \"SendCoreEvents\".\n" +"\n" +" InputDevice \"Mouse1\" \"CorePointer\"\n" +" InputDevice \"Keyboard1\" \"CoreKeyboard\"\n" +"\n" +"EndSection\n" +"\n" +"# Section \"DRI\"\n" +"# Mode 0666\n" +"# EndSection\n" +"\n"; + +static void +write_fontpath_section(FILE *f) +{ + /* this will create the Fontpath lines, but only after checking, + * that the corresponding dir exists (was THE absolute problem + * users had with XFree86/OS2 3.1.2D !) + */ + int i; + char cur[256+20],*colon, *hash; + +#ifdef COMPILEDDEFAULTFONTPATH + static const char dfp[] = COMPILEDDEFAULTFONTPATH; + const char *thisdir; + const char *nextdir; + int len; + + for (thisdir = dfp; thisdir != NULL; thisdir = nextdir) { + nextdir = strchr(thisdir, ','); + if (nextdir == NULL) { + len = strlen(thisdir); + } else { + len = nextdir - thisdir; + nextdir++; + } + if (len >= sizeof(cur)) + continue; + strncpy(cur, thisdir, len); + cur[len] = '\0'; + colon = strchr(cur+2,':'); /* OS/2: C:/...:scaled */ + if (colon) *colon = 0; + hash = exists_dir(cur) ? "" : "#"; + if (colon) *colon = ':'; + fprintf(f,"%s FontPath \"%s\"\n", hash, cur); + } +#endif + + for (i=0; XF86Config_fontpaths[i]; i++) { + strcpy(cur,TREEROOTFONT); + strcat(cur,XF86Config_fontpaths[i]); + /* remove a ':' */ + colon = strchr(cur+2,':'); /* OS/2: C:/...:scaled */ + if (colon) *colon = 0; +#ifdef COMPILEDDEFAULTFONTPATH + /* skip if we already added it as part of the default font path */ + if (strstr(dfp, cur) != NULL) + continue; +#endif + hash = exists_dir(cur) ? "" : "#"; + fprintf(f,"%s FontPath \"%s%s\"\n", + hash, + TREEROOTFONT, + XF86Config_fontpaths[i]); + } +} + +static int +write_XF86Config(char *filename) +{ + FILE *f; + + /* + * Write the file. + */ + + f = fopen(filename, "w"); + if (f == NULL) { + printf("Failed to open filename for writing.\n"); + if (getuid() != 0) + printf("Maybe you need to be root to write to the specified directory?\n"); + return(1); + } + + fprintf(f, "%s", XF86Config_firstchunk_text); + write_fontpath_section(f); + fprintf(f, "%s", XF86Config_fontpathchunk_text); + + /* + * Write keyboard section. + */ + if (config_altmeta) { + fprintf(f, " Option \"LeftAlt\" \"Meta\"\n"); + fprintf(f, " Option \"RightAlt\" \"ModeShift\"\n"); + } + else { + fprintf(f, "# Option \"LeftAlt\" \"Meta\"\n"); + fprintf(f, "# Option \"RightAlt\" \"ModeShift\"\n"); + } +#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT) && !defined(PCVT_SUPPORT) + /* wscons keyoards need a protocol line */ + fprintf(f, " Option \"Protocol\" \"wskbd\"\n"); + fprintf(f, " Option \"Device\" \"%s\"\n", config_keyboard_dev); + fprintf(f, " Option \"XkbKeycodes\" \"wscons(ppc)\"\n"); +#endif + fprintf(f, "%s", keyboardchunk2_text); + + fprintf(f, "%s", keyboardchunk3_text); + if (config_xkbdisable) { + fprintf(f, " Option \"XkbDisable\"\n\n"); + } else { + fprintf(f, "# Option \"XkbDisable\"\n\n"); + } + fprintf(f, " Option \"XkbRules\" \"%s\"\n", + config_xkbrules); + fprintf(f, " Option \"XkbModel\" \"%s\"\n", + config_xkbmodel); + fprintf(f, " Option \"XkbLayout\" \"%s\"\n", + config_xkblayout); + if (config_xkbvariant) + fprintf(f, " Option \"XkbVariant\" \"%s\"\n", + config_xkbvariant); + if (config_xkboptions) + fprintf(f, " Option \"XkbOptions\" \"%s\"\n", + config_xkboptions); + + fprintf(f, "%s",keyboardlastchunk_text); + + /* + * Write pointer section. + */ + fprintf(f, "%s", pointersection_text1); + fprintf(f, " Option \"Protocol\" \"%s\"\t# %s\n", + mouse_info[config_mousetype].name, + mouse_info[config_mousetype].desc); +#if !defined(QNX4) + fprintf(f, " Option \"Device\" \"%s\"\n", config_pointerdevice); +#endif + fprintf(f, "%s", pointersection_text2); + if (!config_emulate3buttons) + fprintf(f, "#"); + fprintf(f, " Option \"Emulate3Buttons\"\n"); + fprintf(f, "# Option \"Emulate3Timeout\" \"50\"\n\n"); + fprintf(f, "# ChordMiddle is an option for some 3-button Logitech mice\n\n"); + if (!config_chordmiddle) + fprintf(f, "#"); + fprintf(f, " Option \"ChordMiddle\"\n\n"); + if (config_cleardtrrts) { + fprintf(f, " Option \"ClearDTR\"\n"); + fprintf(f, " Option \"ClearRTS\"\n\n"); + } + fprintf(f, "EndSection\n\n\n"); + + /* + * Write XInput sample section + */ + fprintf(f, "%s", xinputsection_text); + + /* + * Write monitor section. + */ + fprintf(f, "%s", monitorsection_text1); + fprintf(f, " Identifier \"%s\"\n", config_monitoridentifier); + fprintf(f, "\n"); + fprintf(f, "%s", monitorsection_text2); + fprintf(f, " HorizSync %s\n", config_hsyncrange); + fprintf(f, "\n"); + fprintf(f, "%s", monitorsection_text3); + fprintf(f, " VertRefresh %s\n", config_vsyncrange); + fprintf(f, "\n"); +#if 0 + fprintf(f, "%s", monitorsection_text4); + fprintf(f, "%s", modelines_text); +#endif + fprintf(f, "EndSection\n\n\n"); + + /* + * Write Device section. + */ + + fprintf(f, "%s", devicesection_text); + fprintf(f, "Section \"Device\"\n"); + fprintf(f, " Identifier \"%s\"\n", config_deviceidentifier); + if (card_selected != -1) { + fprintf(f, " Driver \"%s\"\n", card[card_selected].driver); + if (card[card_selected].flags & UNSUPPORTED) { + fprintf(f, " # unsupported card\n"); + } + } else { + fprintf(f, " Driver \"vga\"\n" + " # unsupported card\n"); + } + /* Rely on server to detect video memory. */ + fprintf(f, " #VideoRam %d\n", config_videomemory); + if (card_selected != -1) + /* Add comment lines from card definition. */ + fprintf(f, card[card_selected].lines); + if (config_ramdac != NULL) + fprintf(f, " Ramdac \"%s\"\n", config_ramdac); + if (card_selected != -1) + if (card[card_selected].dacspeed != NULL) + fprintf(f, " Dacspeed %s\n", + card[card_selected].dacspeed); + if (config_clockchip != NULL) + fprintf(f, " Clockchip \"%s\"\n", config_clockchip); + else + if (config_numberofclockslines == 0) + fprintf(f, " # Insert Clocks lines here if appropriate\n"); + else { + int i; + for (i = 0; i < config_numberofclockslines; i++) + fprintf(f, " Clocks %s\n", config_clocksline[i]); + } + fprintf(f, "EndSection\n\n\n"); + + /* + * Write Screen sections. + */ + + fprintf(f, "%s", screensection_text1); + + fprintf(f, + "Section \"Screen\"\n" + " Identifier \"Screen 1\"\n" + " Device \"%s\"\n" + " Monitor \"%s\"\n" + " DefaultDepth %s\n" + "\n" + " Subsection \"Display\"\n" + " Depth 8\n" + " Modes %s\n" + " ViewPort 0 0\n", + config_deviceidentifier, + config_monitoridentifier, + config_depth, + config_modesline8bpp); + if (config_virtual) + fprintf(f, " Virtual %d %d\n", + config_virtualx8bpp, config_virtualy8bpp); + fprintf(f, + " EndSubsection\n" + " Subsection \"Display\"\n" + " Depth 16\n" + " Modes %s\n" + " ViewPort 0 0\n", + config_modesline16bpp); + if (config_virtual) + fprintf(f, " Virtual %d %d\n", + config_virtualx16bpp, config_virtualy16bpp); + fprintf(f, + " EndSubsection\n" + " Subsection \"Display\"\n" + " Depth 24\n" + " Modes %s\n" + " ViewPort 0 0\n", + config_modesline24bpp); + if (config_virtual) + fprintf(f, " Virtual %d %d\n", + config_virtualx24bpp, config_virtualy24bpp); + fprintf(f, + " EndSubsection\n" + "EndSection\n" + "\n"); + + /* + * ServerLayout section + */ + + fprintf(f, serverlayout_section_text1); + /* replace with screen config */ + fprintf(f, " Screen \"Screen 1\"\n"); + + fprintf(f, serverlayout_section_text2); + + fclose(f); + return(0); +} + +static char * +append_version(char *name) +{ +#ifdef APPEND_VERSION_TO_CONFIG_NAME + char *ret = NULL; + + if (XF86_VERSION_MAJOR > 9 || XF86_VERSION_MAJOR < 0) + return name; + + ret = Malloc(strlen(name) + 2 + 1); + sprintf(ret, "%s-%d", name, XF86_VERSION_MAJOR); + free(name); + return ret; +#else + return name; +#endif +} + +/* + * Ask where to write XF86Config to. Returns filename. + */ + +static char * +ask_XF86Config_location(void) { + char s[80]; + char *filename = NULL; + + printf( +"I am going to write the " CONFIGNAME " file now. Make sure you don't accidently\n" +"overwrite a previously configured one.\n\n"); + + if (getuid() == 0) { +#ifdef PREFER_XF86CONFIG_IN_ETC + filename = Strdup("/etc/X11/" XCONFIGFILE); + filename = append_version(filename); + printf("Shall I write it to %s? ", filename); + getstring(s); + printf("\n"); + if (answerisyes(s)) + return filename; +#endif + + if (filename) + free(filename); + filename = Strdup(TREEROOTCFG "/" XCONFIGFILE); + filename = append_version(filename); + printf("Please answer the following question with either 'y' or 'n'.\n"); + printf("Shall I write it to the default location, %s? ", filename); + getstring(s); + printf("\n"); + if (answerisyes(s)) + return filename; + +#ifndef PREFER_XF86CONFIG_IN_ETC + if (filename) + free(filename); + filename = Strdup("/etc/X11/" XCONFIGFILE); + filename = append_version(filename); + printf("Shall I write it to %s? ", filename); + getstring(s); + printf("\n"); + if (answerisyes(s)) + return filename; +#endif + } + + if (filename) + free(filename); + filename = Strdup(XCONFIGFILE); + filename = append_version(filename); + printf("Do you want it written to the current directory as '%s'? ", filename); + getstring(s); + printf("\n"); + if (answerisyes(s)) { + return filename; + } + + printf("Please give a filename to write to: "); + getstring(s); + printf("\n"); + if (filename) + free(filename); + filename = Strdup(s); + return filename; +} + + +/* + * Check if an earlier version of XFree86 is installed; warn about proper + * search path order in that case. + */ + +static char *notinstalled_text = +"The directory " TREEROOT " does not exist. This probably means that you have\n" +"not yet installed the version of "__XSERVERNAME__" that this program was built\n" +"to configure. Please install "__XSERVERNAME__" "XVERSIONSTRING" before running this program,\n" +"following the instructions in the INSTALL or README that comes with the\n" +__XSERVERNAME__" distribution for your OS.\n" +"For a minimal installation it is sufficient to only install base binaries,\n" +"libraries, configuration files and a server that you want to use.\n" +"\n"; + +static char *oldxfree86_text = +"The directory '/usr/X386/bin' exists. You probably have a very old version of\n" +"XFree86 installed, but this program was built to configure "__XSERVERNAME__" "XVERSIONSTRING"\n" +"installed in '" TREEROOT "' instead of '/usr/X386'.\n" +"\n" +"It is important that the directory '" TREEROOT "' is present in your\n" +"search path, *before* any occurrence of '/usr/X386/bin'. If you have installed\n" +"X program binaries that are not in the base "__XSERVERNAME__" distribution in\n" +"'/usr/X386/bin', you can keep the directory in your path as long as it is\n" +"after '" TREEROOT "'.\n" +"\n"; + +static char *pathnote_text = +"Note that the X binary directory in your path may be a symbolic link.\n" +"In that case you could modify the symbolic link to point to the new binaries.\n" +"Example: 'rm -f /usr/bin/X11; ln -s /usr/X11R6/bin /usr/bin/X11', if the\n" +"link is '/usr/bin/X11'.\n" +"\n" +"Make sure the path is OK before continuing.\n"; + +static void +path_check(void) { + char s[80]; + int ok; + + ok = exists_dir(TREEROOT); + if (!ok) { + printf("%s", notinstalled_text); + printf("Do you want to continue? "); + getstring(s); + if (!answerisyes(s)) + exit(-1); + printf("\n"); + } + + ok = exists_dir("/usr/X386/bin"); + if (!ok) + return; + + printf("%s", oldxfree86_text); + printf("Your PATH is currently set as follows:\n%s\n\n", + getenv("PATH")); + printf("%s", pathnote_text); + keypress(); +} + + +static void +configdir_check(void) +{ + /* /etc/X11 may not exist on some systems */ + if (getuid() == 0) { + struct stat buf; + if (stat("/etc/X11", &buf) == -1 && errno == ENOENT) + mkdir("/etc/X11", 0777); + if (stat(TREEROOTCFG, &buf) == -1 && errno == ENOENT) + mkdir(TREEROOTCFG, 0777); + } +} + + +/* + * Program entry point. + */ + +int +main(int argc, char *argv[]) { + + createtmpdir(); + + emptylines(); + + printf("%s", intro_text); + + keypress(); + emptylines(); + + path_check(); + + emptylines(); + + configdir_check(); + + emptylines(); + + mouse_configuration(); + + emptylines(); + + keyboard_configuration(); + + emptylines(); + + monitor_configuration(); + + emptylines(); + + carddb_configuration(); + + emptylines(); + + while(screen_configuration()){}; + + emptylines(); + + depth_configuration(); + + emptylines(); + + while(write_XF86Config(ask_XF86Config_location())){}; + + printf("%s", finalcomment_text); + + exit(0); +} diff --git a/xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.man.pre b/xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.man.pre new file mode 100644 index 000000000..b3d656cfa --- /dev/null +++ b/xorg-server/hw/xfree86/utils/xorgconfig/xorgconfig.man.pre @@ -0,0 +1,22 @@ +.\" $XdotOrg: $ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/xf86config/xorgconfig.man,v 1.5 2001/11/01 23:35:34 dawes Exp $ +.TH xorgconfig 1 __vendorversion__ +.SH NAME +xorgconfig \- generate an __XCONFIGFILE__ file +.SH SYNOPSIS +.B xorgconfig +.SH DESCRIPTION +\fIxorgconfig\fP is an interactive program for generating an __XCONFIGFILE__ file +for use with __XSERVERNAME__ X servers. +.PP +Note that the default name used by \fIxorgconfig\fP for the __XCONFIGFILE__ file +is system-dependent. For instance, on OS/2, XConfig is used. +.SH FILES +.TP +.I __projectroot__/lib/X11/Cards +Video cards database +.SH "SEE ALSO" +__XSERVERNAME__(1), __XCONFIGFILE__(__filemansuffix__), xorgcfg(1), reconfig(1) +.SH AUTHOR +Harm Hanemaayer. +.\" $TOG: xf86conf.man /main/9 1997/07/19 10:53:08 kaleb $ |