=============================================================================== ====== ============ ====== XFree86 3.1 and WD90C24 Notebook Video Chipset mini-HOWTO ============ ====== ============ =============================================================================== author: Darin Ernst (dernst@pppl.gov, darin@castle.net) version: 0.96 8/10/95 first version: 1/95 For more info and updates, see the WEB site http://www.castle.net/~darin Applicability: This version of the HOWTO applies to XFree86 3.1.2 and earlier. New versions will be available for new versions of XFree86 when necessary. Acknowledgement: Thanks to all those who have emailed me and posted messages on this topic! It is now possible run X-Windows on notebook computers and take full advantage of the hardware (at least at 8 bits per pixel). Purpose: This document gives instructions for configuring XFree86 on notebooks with the WD90C24 family chipsets. It also describes known bugs and workarounds if available. The content comes from communication with other users and my participation in the development of the new WD90C24 driver. Special Note: A driver developed specifically for the WD90C24 is available for the first time in XFree86 release 3.1.2 (released around July 31). The sections of this HOWTO are labelled according to whether or not they apply to: (OLD) 3.1.1 and earlier; and (NEW) 3.1.2 and later. Most of the FAQ on workarounds for old problems is now obsolete, but instructions are provided for taking advantage of new features in XFree86 3.1.2 in the (NEW) sections. Copyright D. Ernst, 1995: Permission to redistribute this file *UNCHANGED* is granted for non-commercial use only. No permission is granted for the use of this file in sales promotions or for purposes of profit. In addition, any translations, derivative, or aggregate works that make use of information in this file must contain this copyright notice and be accompanied by this file unchanged. All translations, derivative works, or aggregate works incorporating this document must be covered under this copyright notice. That is, you may not produce a derivative work from this document and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain circumstances only by written permission of the author. If this copyright notice is not included with translations, derivative works, or aggregate works, then no permission to use information in this file is granted for any purpose. Permission is granted for the redistribution of this file in whole and complete distributions of the Linux operating system provided it remains unchanged. Commercial entities wishing to redistribute this file or the information contained in it for any other purpose must obtain the written permission of its author. Any translations, derivative works, or aggregate works must be submitted to the author for approval. All derivative works must also contain the words: "Information provided by the "X-Notebook mini-HOWTO", copyright D. Ernst, 1995. Frequently asked questions: 1) Does XFree86 have a driver for the WD90C24[A,A2] available? Yes, but only in release 3.1.2 and later. Prior to this, we used the driver for the wd90c31 chip to fake it, with a lot of problems that are described below. The long-awaited support for the WD90C24 has been added to the pvga1 driver in the XF86_SVGA server by Brad Bosch, during July, 1995. Extensive testing during the developement and suggestions were provided by D. Ernst. The new server has full support, including programmable clocks, and solves most, if not all of the problems mentioned here for the old server. The new server was released around July 31, 1995 in version 3.1.2 of of XFree86. It is capable of 1152x900 interlaced as well as 1024x768 non-interlaced VESA at 72Hz refresh, automatically utilizing the full 1MB of VRAM. It also provides users with the ability to program the dotclocks. The new driver does not support 16bpp, however, which is possible at low resolutions. Someone is working on this. The following is an excerpt from the file /usr/lib/X11/doc/README.WstDig that describes the new driver (sections written by B. Bosch and D. Ernst): New WD90C24 features These next three sections apply only if you have a WD90C24, WD90C24a, or WD90C24a2 and don't specify some other chipset in your XF86Config file. The SVGA pvga1 driver now recognizes the wd90c24 family as different from the WD90C30 and seems to resolve most of the problems people encountered when these chips were treated as WD90C3X. The new code has the following features: o Locks the shadow registers at appropriate times; This should prevent scrambled displays after exiting X with dual scan screens when simultaneous or LCD display mode is selected. The code does depend somewhat on the behavior of the BIOS regarding when it locks the shadow registers, etc. o Allows (forces) the use of a full 1 Meg VRAM for dual scan systems when the server is started while external CRT only display is in operation. This allows 1024x768x8 resolution. o If the XF86Config file specifies a virtual screen size which requires more than 512 K VRAM when the server is started on a Dual Scan LCD, the driver will force the virtual size to 640x480. This eliminates the need to edit the XF86Config file when you switch from 1024x resolution on the CRT, to or from the LCD screen. If no virtual size is specified, the result will be 800x600 virtual in LCD modes and 1024x768 in CRT only mode (so you have a choice). o Note that on dual scan systems, you must still exit X, switch displays, and restart X to change to/from CRT only with 1 Meg videoram. This is because once the server starts, you can't change the virtual screen size. There is no way around this with the current server and the WD90C24 with dual scan displays. The WD90C24 requires half the videoram be used for a ``Frame buffer'' when the dual scan LCD is in use. o The new server uses the accelerated features of the WD90C24a. It is not clear from the data book if the WD90C24 also supports ALL the required features. Several people have stated that the WD90C24 is not accelerated, but the differences section of the WD90c24a data book implies that they ARE all three accelerated. The differences documented with regard to acceleration are with the type of line drawing the hardware does; Only the newer chips support the type of line drawing that MS windows wants. This may be what has caused the confusion since the accelerated windows drivers may only support the WD90c24a chips. If this turns out to be a problem with the WD90C24, acceleration can be disabled by adding the line: Option "noaccel" to the Device section of the XF86Config file. o Although the new server does not support programmable clocks in the same way as some of the other servers, 8 of the 17 clocks may be set to (almost) any value via the Clocks line. It also supports options for adjusting the VRAM clock. 2)(OLD) How can I use the XF86_SVGA server under XFree 86 3.1.1 and earlier? Most of us fake it by selecting the WD90C31 (or 30) accelerated chipset using the XF86_SVGA server. X -probeonly detects the WD90C24, but this is not implemented with accelerated features in XFree86 3.1.1. and earlier. The WD90C24A and A2 are sort of compatible with the WD90C31. (NEW & OLD) Most notebooks of 1994 use the WD90C24A2 with 1mb of video ram on the local bus, and are capable of 1024x768x256 colors at 60Hz refresh under Windows 3.1. Some implementations are capable of 65k colors at 640x480 using the Western Digital windows driver wd2464_h.drv provided on an OEM disk. I maintain a list of notebooks and their video chipsets on the WEB page above. Other very common chipsets not covered here are the Cirrus Logic 6440, which is now fully supported by XFree86 3.1.1, and the Chips and Technologies 65545, which appears in most Pentium notebooks, especially those using the PCI bus. This chip is partially supported with non-accelerated drivers (for the 65540). There are mixed reports on the net about the extent of this support. Many of the problems reported seem to be similar to those discussed here. The CLGD7542 that is now appearing (i.e. TI5000M) seems to be compatible with the CLGD6235. 3)(OLD) Why do I only see 512k of VRAM? A problem persists with the implementations of dual scan displays, as well as with simultaneous display. Despite the fact that Windows 3.1 is able to use the full 1mb of video RAM to display externally at 1024x768x256 colors, XF86_SVGA cannot, since it cannot use more than 512k of the available 1024k. The best one can do on an external monitor with the current XF86_SVGA server is 800x600x256. However, workarounds exist for certain notebooks, such as the Twinhead 5 series and IBM Thinkpads. The problem is that 512k is what 'X -probeonly' detects. If you try to hand-enter 1024k, you will get duplicate images on the upper and lower halves of the screen. Others have reported that the Western Digital databook seems to confirm that half the memory (one 256kx16bit bank) is reserved for a "frame buffer" when a 16 bit dual-panel color STN display is used OR when simultaneous display mode is selected. Comparisons on active and passive versions of the AST Ascentia made by swapping hard drives (ewagner@imssys.imssys.com Evan Wagner) confirm that the 512k problem does not occur on the active matrix implementation. I observed that other things change (such as dotclocks) when the external display is selected alone, as opposed to simultaneous or internal display on my Twinhead 5100S (dual scan, A2 chip). The Twinhead 5100 (aka Twinhead Slimnote 5, HP Omnibook 4000C, Sharp PC-8700/8900, Altima Virage II) is capable of using the full 1mb of memory after one runs a DOS program called "CHGVRAM.EXE", which is available from the Twinhead BBS. This program was written by Ferdy Kuo of Twinhead Corp., and is copyrighted. The code is only available from the Twinhead BBS as an executable, and makes many BIOS calls that are specific to the Twinhead Slimnote 5 series machine. Please call Twinhead if you don't have the BBS number. This program will only work with the Twinhead family of machines. To use this program for Linux/X, boot DOS. Then hit alt-F5 until the display is set to external-only. Then run CHGVRAM.EXE, which will display a message something like "Video RAM changed to 1 MB". Next, boot linux using the Linux Loader, lodlin15, which comes in the /root directory of Slackware 2.1.0. The command is simply "c:\> linux". Linux will then boot normally. Then use "startx" to start X-Windows. The full 1mb of video RAM will be used by XFree86. I stick this all into a batch file called "linux.bat". Possible idea (haven't tried this yet): Run CHGVRAM.EXE from a dosemu session within linux. **** Fixes for the IBM Thinkpad (this is does not work on other notebooks ) **** Michael Steiner has written a c program that runs under Linux and allows one to set the video RAM of the WD90C24 family to either 512k or 1024k. /* T P D U A L S C A N . C Author: Michael Steiner http://www.zurich.ibm.com/pub/sti/www/info.html This program allows you to set videoram for dualscan equipped thinkpads (at least for the 750Cs but probably also for others) to allow running XFree86 without patching it. (normally you got all twice if the upper 512K of videoram are not disabled) */ Michael also makes available (on his web page) a patched XF86_SVGA server. 4)(OLD) How can I make my LCD screen sync correctly on starting/exiting X? There is a bug that results in scrambled virtual consoles upon exiting X. The cure for this is to reset the video modes in some way. Many notebooks have a hot-key for lcd, crt, or simultaneous display. Cycling this hot-key restores the virtual consoles. For others, close and open the cover, or suspend/resume. This problem does not occur when using the external display. 5)(OLD) How can I fix the weird patches-of-black problem? There is a problem using white window backgrounds. When windows are scrolled with white bg, the scrolled part goes into reverse video. The cure for this is not to use white backgrounds. Off-whites are fine. This can be set as a default for all users in /var/X11R6/lib/xinit/.Xresources with the following line (i.e., for xterm): XTerm*Background: snow 6)(NEW & OLD) Should I configure X on the internal or external monitor first? The dotclocks are different as detected by X-probeonly when the lcd is selected versus when the crt is selected as the display. I suggest using an external monitor while configuring X so that all the necessary dotclocks appear. If you can't find an external monitor, don't worry. Just pretend you have one by selecting external-only display. Otherwise, you will get 17 basically identical clocks that are useful only for 640x480. Do this with the monitor turned off to avoid damage. 7)(NEW & OLD) My screen looks ok except for these funny little patterns... The lcd display looks different depending on whether or not simultaneous display is turned on (waves, flicker, dim, patterns). The fix is to fiddle with the modeline. The XF86Config below works correctly. Note the first clock is used for the LCD. 8) How do I set up XF86Config (see examples at end of this file)? (NEW version) aa) read /usr/lib/X11/doc/README.Config, VideoModes.doc (optional) a) Select XF86_SVGA server with WD90C24 chipset. b) Select "generic monitor" with the 25 Mhz dotclock and the standard 640x480 VESA modeline. Begin with a video bandwidth around 30 Mhz. c) X -probeonly >& /tmp/x.out with external monitor selected, but turned off. d) Edit XF86Config and paste in the 17 dotclocks found in /tmp/x.out put one of the 25-28 Mhz dotclocks in place of the first number in the VESA 640x480 modeline. This should work for the LCD display to give 640x480x256. Now select the LCD display (using a hot-key). If you have an 800x600 LCD display, the clock that is probably need is likely to be the first clock with a value around 36. Try the 800x600@56Hz NI VESA modeline first. e) Go to step (c). Repeat, this time pasting in the HorizSync frequency or the VertRefresh frequency. Go to step (c) again and repeat until both of these and the bandwidth are filled in. f) Now the LCD display should work. g) To configure the external monitor, decide which dotclocks you want by first picking the resolution and looking over the standard VESA modelines. The new server allows you to program certain dotclocks, so this gives you almost infinite flexibility in setting up modelines. The new server recognizes that you have 1024k of VRAM when you are using either an active matrix LCD or the external monitor. If you are using simultaneous display or a dual-scan LCD alone, then only 512k of VRAM can be used. This is inherent in the hardware design. From /usr/lib/X11/doc/README.WstDig sections by B. Bosch and D. Ernst: Special considerations All of the Western Digital chipsets after the PVGA1 support the ability to use the memory-refresh clock as an alternate dot-clock for video timing. Hence for all of these chipsets, the server will detect one more clocks than ``normal''. What this means is that if you have an old `Clocks' line in your XF86Config file, you should comment it out, and rerun the server with the `-probeonly' option to find all of the clock values. All but the last should be the same as what you had before; the last will be new. The server will detect 17 clocks for the WD90C24, WD90C30 and WD90C31 chipsets. If you have one of these chipsets, you should let the server re-probe the clocks and update your XF86Config. There is an `Option' flag available for the XF86Config file that is specific to the Western Digital chipsets (except the WD90C24). This option is "swap_hibit". WD90C24 clocks Here are some more details on the adjustable clocks: The VRAM clock (Mclk) is adjusted by adding ONE of the following option lines to the Device section of the XF86Config: Option "slow_dram" # Set Mclk to 47.429 MHz Option "med_dram" # Set Mclk to 49.219 MHz Option "fast_dram" # Set Mclk to 55.035 MHz The default is to leave Mclk as the BIOS sets it. This is 44.297 on many systems. Some systems may not work properly with any of these options. If you experience ``bit errors'' on your display, reduce the Mclk speed, or don't use any of these options. The Mclk is not reset on server exit. The data book says that the maximum pixel clock is 1.6 times Mclk so you may want to experiment with higher Mclk rates if you have a fast monitor. It also says a 44.297MHz Mclk and 65MHz pixel clock is the fastest the WD90C24A2 is designed to go. However, some success has been reported with faster clocks. Don't expect all the clocks the chip can provide to work properly. The second and fourth group of 4 clocks are adjustable. That is, clocks 5, 6, 7, 8 and 13, 14, 15, 16 (counting from 1). These clocks are set by the Clocks line. Be sure to adjust the 17th (last) clock to match your Mclk. Here is a sample set of clocks lines with some clocks defined which are not directly provided by the chip. The NON- programmable clocks (1-4 and 9-12) MUST be set as indicated here. Clocks 25.175 28.322 65 36 # These are *not* programmable Clocks 29.979 77.408 62.195 59.957 # these are programmable Clocks 31.5 35.501 75.166 50.114 # these are *not* programmable Clocks 39.822 72.038 44.744 80.092 # these are programmable Clocks 44.297 # Change this if you change # Mclk above. You can program the clocks in increments of .447443 MHz. The server will warn you and adjust to the nearest increment if you specify a clock which does not fit this formula. Clocks 1-4 and 9-12 (the fixed clocks) are not constrained to this multiple, but instead are used to provide standard clocks which are not a multiple by .447443 MHz. If you probe for clocks (for example to find your Mclk), do it in CRT only mode and then add clocks lines in your XF86Config file. Clocks will not probe correctly in LCD mode on most systems. The BIOS on some systems may not allow switching from CRT to LCD unless the correct clock and/or mode is used. Try the following mode line for 640x480 LCD displays. ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525 #CRT/LCD The following modelines have been tested with the above Clocks lines on some systems, and are provided here as examples. Some testers have experienced minor problems (snow) with the fixed 65 and 75.166 MHz dot clocks. The modelines below have been reported to circumvent these problems. This is has fixed in post-3.1.2 versions of the pvga1 driver. Do not assume your monitor will not be damaged by any of these. # VESA 800x600@72Hz Non-Interlaced mode Mode "800x600.50" DotClock 50 HTimings 800 856 976 1040 VTimings 600 637 643 666 Flags +hsync +vsync EndMode # 1024x768 Interlaced mode Mode "1024x768i" DotClock 45 HTimings 1024 1048 1208 VTimings 1264 768 776 784 817 Flags +hsync +vsync Interlace EndMode # 1024x768@60Hz Non-interlaced Mode # One of the dram options may be necessary Mode "1024x768.65" DotClock 65 HTimings 1024 1032 1176 VTimings 1344 768 771 777 806 Flags -hsync -vsync EndMode # 1024x768@60Hz Non-Interlaced mode (non-standard dot-clock) # Seems to work without dram options Mode "1024x768.62" DotClock 62 HTimings 1024 1064 1240 1280 VTimings 768 774 776 808 EndMode # 1024x768@70Hz Non-Interlaced mode (non-standard dot-clock) # May need fast_dram option Mode "1024x768.72" DotClock 72 HTimings 1024 1056 1192 1280 VTimings 768 770 776 806 Flags -hsync -vsync EndMode end /usr/lib/X11/README.WstDig The following mode works well (provided by Nick Sayer): Mode "1152x900i" DotClock 65 HTimings 1152 1200 1296 1496 VTimings 900 905 916 950 Flags Interlace EndMode h) When programming the clocks: If you experience snow with a particular modeline, try decreasing the clock by a small amount, leaving the other settings unchanged. Certain clocks, such as the fixed 65 and 75 MHz clocks, sometimes give snow due to a minor bug in the new server. The fix for this is to duplicate the problematic fixed clock with a nearby programmable one. This problem has been fixed and will not be propagated to future releases of XFree86. i) Send me info on new things you find and post it to newsgroups so I can develop this mini-HOWTO further. (OLD version) If you are using the XF86Config below, you should comment out the sections for 3.1.2 and later as described in the file. Then follow these instructions to reprobe the clocks. aa) read /usr/lib/X11/doc/README.Config, VideoModes.doc (optional) a) Select XF86_SVGA server with WD90C31 chipset. b) Select "generic monitor" with the 25 Mhz dotclock and the standard 640x480 VESA modeline. Begin with a video bandwidth around 30 Mhz. c) X -probeonly >& /tmp/x.out with external monitor selected, but turned off. d) Edit XF86Config and paste in the 17 dotclocks found in /tmp/x.out put one of the 25-28 Mhz dotclocks in place of the first number in the VESA 640x480 modeline. This should work for the LCD display to give 640x480x256. Now select the lcd display. e) Go to step (c). Repeat, this time pasting in the HorizSync frequency or the VertRefresh frequency. Go to step (c) again and repeat until both of these and the bandwidth are filled in. f) Now the lcd display should work. g) To configure the external monitor, start with the standard VESA modelines that match the dotclocks you have. I got four basic dotclocks with a lot of nearby duplicates: 28.32 => 640x480 @63 Hz NI VESA 36.00 => 800x600 @56 Hz NI VESA 44.26 => 1024x768i @43.5 Hz Interlaced 64.97 => 1024x768 @60 Hz NI VESA Of course, one cannot achieve the 1024 modes because without a workaround, as one can only use 512k of video ram of the available 1024k VRAM as discussed above. I think it is possible to get an 800x600 mode with very high refresh rate. This depends on your monitor. With the pre-Bosch version of the server, it is not possible to achieve better than 60Hz refresh rate at 1024x768 NI. As the flicker is noticeable, the 1024x768i (interlaced) mode often looks nicer than the NI mode. h) Send me info on new things you find and post it to newsgroups so I can develop this mini-HOWTO. 9) How do I get more info? Useful web sites and addresses This mini-HOWTO (latest version) and other links on the WD90C24 family: http://www.castle.net/~darin Western Digital Web Site - for phone number for databooks http://www.wdc.com/ IBM Thinkpad video patches http://www.zurich.ibm.com/pub/sti/www/info.html (seem to have disappeared - but I have some where this HOWTO is stored) Twinhead Computer Corp. 1-800-995-8946 to ask for BBS # (if you have a Twinhead, Sharp, Altima, HP) As a shortcut to configuration, look into the program vgaset. This allows you to optimize the timings for each monitor interactively and dynamically within X. Darin Ernst darin@castle.net dernst@pppl.gov #=========================================================================== #/usr/lib/X11/XF86Config for XFree86 3.1.2 and later (NEW) #=========================================================================== # # Copyright (c) 1994 by The XFree86 Project, Inc. # # 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, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # 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. IN NO EVENT SHALL # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # Except as contained in this notice, the name of the XFree86 Project shall # not be used in advertising or otherwise to promote the sale, use or other # dealings in this Software without prior written authorization from the # XFree86 Project. # # ######################################################################## #### This XF86Config is for XFree86 3.1.2 and later. To use it #### #### with a previous version of XFree86, follow the instructions #### #### that appear within the comments. Do not expect it to work #### #### as is with older version of XFree86. #### #### #### #### --- This is version 0.9, August 11, 1995 ---- #### #### #### #### This release provides full support for the WD90C24[A,A2] #### #### driving 8-bit dual scan LCD screens and/or external monitors. #### #### Updated versions of this file may be found on the #### #### home page #### #### http://www.castle.net/~darin #### #### In addition, see the #### #### "Linux, X, and the WD90C24A2 Chipset mini-HOWTO" #### #### (aka "X-Notebook mini_HOWTO") #### #### #### #### The settings in this file were chosen for use with a dual scan #### #### LCD display. The external monitor was a multisync one with #### #### a bandwidth of 100 MHz. #### #### #### #### The settings for the LCD screen in this file #### #### should be fairly universal and should work with most #### #### notebook computers using the WD90C24 family chipsets. #### #### #### #### For more information, see the file #### #### /usr/lib/X11/doc/README.WstDig #### #### in the XFree86 3.1.2 and later releases. #### #### #### #### Copyright D. Ernst, 1995: #### #### Permission to redistribute this file *UNCHANGED* is granted #### #### for non-commercial use only. No permission is granted for #### #### the use of this file in sales promotions or for purposes of #### #### profit. In addition, any other files that make use of #### #### information in this file must contain this and the above #### #### copyright notice and be accompanied by this file unchanged. #### #### All translations, derivative works, or aggregate works #### #### incorporating this document must be covered under this #### #### copyright notice. That is, you may not produce a derivative #### #### work from this document and impose additional restrictions on #### #### its distribution. Exceptions to these rules may be granted #### #### under certain circumstances only by written permission of the #### #### author. #### #### #### #### If this copyright notice is not included with translations, #### #### derivative work, or aggregate works, then no permission to use#### #### information in this file is granted for any purpose. #### #### Permission is granted for the redistribution of this file in #### #### complete distributions of the Linux operating system provided #### #### it remains unchanged. Commercial entities wishing to #### #### redistribute this file or the information contained in it #### #### must obtain the prior written permission of its author unless #### #### the file remains unchanged and is distributed as part of a #### #### complete Linux distribution. Derivative works or translations #### #### must be submitted to the author for approval. #### #### #### #### All derivative works or translations must also contain the #### #### words: "Information provided in whole or in part by the #### #### "X-Notebook mini-HOWTO", copyright D. Ernst, 1995. #### #### #### #### #### #### WARNING: Do not assume these settings fall within your #### #### external monitor's bandwidth. Some monitors, esp. fixed #### #### freq. ones, may be damaged by these settings. We cannot be #### #### held responsible for any damages whatsoever that may occur #### #### directly or indirectly from the use of this information. #### #### In addition, caution is prudent when using high dotclock #### #### frequencies and fast vram clocks. No guarantees are made #### #### or implied. It is possible to exceed the design specifications#### #### of the video subsystem or displays by using these settings. #### #### #### ######################################################################## # # ********************************************************************** # Refer to the XF86Config(4/5) man page for details about the format of # this file. This man page is installed as /usr/X11R6/man/man5/XF86Config.5x # ********************************************************************** # ********************************************************************** # Files section. This allows default font and rgb paths to be set # ********************************************************************** Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" # Multiple FontPath entries are allowed (which are concatenated together), # as well as specifying multiple comma-separated entries in one FontPath # command (or a combination of both methods) FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" EndSection # ********************************************************************** # Server flags section. # ********************************************************************** Section "ServerFlags" # Uncomment this to cause a core dump at the spot where a signal is # received. This may leave the console in an unusable state, but may # provide a better stack trace in the core dump to aid in debugging # NoTrapSignals # Uncomment this to disable the server abort sequence # DontZap EndSection # ********************************************************************** # Input devices # ********************************************************************** # ********************************************************************** # Keyboard section # ********************************************************************** Section "Keyboard" Protocol "Standard" # when using XQUEUE, comment out the above line, and uncomment the # following line # Protocol "Xqueue" AutoRepeat 500 5 ServerNumLock # Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1)) # Xleds 1 2 3 # To set the LeftAlt to Meta, RightAlt key to ModeShift, # RightCtl key to Compose, and ScrollLock key to ModeLock: # LeftAlt Meta # RightAlt ModeShift # RightCtl Compose # ScrollLock ModeLock EndSection # ********************************************************************** # Pointer section # ********************************************************************** Section "Pointer" Protocol "PS/2" Device "/dev/mouse" # When using XQUEUE, comment out the above two lines, and uncomment # the following line. # Protocol "Xqueue" # Baudrate and SampleRate are only for some Logitech mice # BaudRate 9600 # SampleRate 150 # Emulate3Buttons is an option for 2-button Microsoft mice Emulate3Buttons # ChordMiddle is an option for some 3-button Logitech mice # ChordMiddle EndSection # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" # first section for LCD alone # (not used; here FYI) Identifier "LCD Screen" VendorName "Sharp" ModelName "Unknown" Bandwidth 40 # changed from 29 HorizSync 35.36 # X -probeonly says VertRefresh 67.36 # X -probeonly says # ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525 Mode "640x480" DotClock 25.175 # The dual scan LCD uses the first clock HTimings 640 664 760 800 VTimings 480 491 493 525 EndMode EndSection # monitor 1 Section "Monitor" # 2nd monitor section for both LCD/CRT Identifier "CRT&LCD" VendorName "MAG" ModelName "DX17F" Bandwidth 75 # changed; 100 from DX17F manual HorizSync 30-64 # multisync; also from DX17F manual VertRefresh 50-100 # multisync; also from DX17F manual # Modelines ========================================================= # This constitutes a fairly complete set of Modelines that are as # close to VESA as possible. # # A generic VGA 640x480 mode (hsync = 31.5kHz, refresh = 60Hz) # use for CRT/LCD simultultaneous display Mode "640x480" DotClock 25.175 HTimings 640 664 760 800 VTimings 480 491 493 525 EndMode # A generic VGA 640x480 mode (hsync = 31.5kHz, refresh = 60Hz) # use for LCD alone, but above mode works fine Mode "640x480.28" DotClock 28.32 HTimings 640 680 720 864 VTimings 480 488 491 521 EndMode # VESA 800x600@56Hz Non-Interlaced mode # noticeable flicker; use mode below for best 800x600 Mode "800x600.36" DotClock 36 HTimings 800 824 896 1024 VTimings 600 601 603 625 EndMode # VESA 800x600@72Hz Non-Interlaced mode # no flicker Mode "800x600.50" DotClock 50 HTimings 800 856 976 1040 VTimings 600 637 643 666 Flags +hsync +vsync EndMode # 1024x768 Interlaced mode # no flicker and clear but interlaced character shows Mode "1024x768i" DotClock 45 HTimings 1024 1048 1208 1264 VTimings 768 776 784 817 Flags +hsync +vsync Interlace EndMode # 1024x768@60Hz Non-interlaced Mode # has snow problem with default MClk (use mode below) Mode "1024x768.65" DotClock 65.1 HTimings 1024 1032 1176 1344 VTimings 768 771 777 806 Flags -hsync -vsync EndMode # 1024x768@60Hz Non-Interlaced mode (non-standard dot-clock) # minimum refresh rate for VESA: noticeable flicker Mode "1024x768.62" DotClock 62 HTimings 1024 1064 1240 1280 VTimings 768 774 776 808 EndMode Mode "1024x768.60" DotClock 60 HTimings 1024 1064 1240 1280 VTimings 768 774 776 808 EndMode # To use the modes below, you need to uncomment the "fast_dram" option # in the devices section to increase the memory clock (MClk). # With any of the slower vram clocks, you may see a wavy # picture with some noise. Note these modes are beyond the design # limits of the WD90C24A2, with the exception of the 1152x900i Modeline. # VESA 1024x768@70Hz Non-Interlaced mode # sort of works, but has snow problem Mode "1024x768.75" DotClock 75 HTimings 1024 1048 1184 1328 VTimngs 768 771 777 806 Flags -hsync -vsync EndMode # 1024x768@70Hz Non-Interlaced mode (non-standard dot-clock) # looks great (slight focus problem?): at last, a useable 1024NI mode. Mode "1024x768.72" DotClock 72 HTimings 1024 1056 1192 1280 VTimings 768 770 776 806 Flags -hsync -vsync EndMode # 1024x768@76Hz Non-Interlaced mode (doesn't sync; not expected to) Mode "1024x768.85" DotClock 85 HTimings 1024 1032 1152 1360 VTimings 768 784 787 823 Flags +hsync -vsync EndMode # from Nick Sayer (same as Sun screens) # nice Mode "1152x900i" DotClock 65 HTimings 1152 1200 1296 1496 VTimings 900 905 916 950 Flags Interlace EndMode # ModeLine "1152x900.77" 77 1152 1200 1296 1496 900 905 916 950 # ModeLine "1152x900.75" 75 1152 1200 1296 1496 900 905 916 950 # bad flicker Mode "1152x900.72" DotClock 72 HTimings 1152 1200 1296 1496 VTimings 900 905 916 950 EndMode EndSection # monitor 2 # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present Section "Device" # SVGA WD90c24a2 in Twinhead Slimnote with simultaneous display Identifier "WD90C24A2" VendorName "Western Digital" BoardName "RocketChip" # Chipset "wd90c31" # comment out for use with XFree86 3.1.2 or later # uncomment for use with XFree86 3.1.1 or before #### begin first config with lcd only display (unused) ## VideoRam 512 ## Clocks 28.29 28.32 28.30 28.29 28.30 28.32 28.29 28.30 ## Clocks 28.30 28.31 28.29 28.30 28.30 28.31 28.30 28.30 ## Clocks 49.79 #### end first config with lcd only display #### begin second config with crt/lcd display: orig. XF86_SVGA (pre-3.1.2) ## VideoRam 1024 # leave commented out ## Clocks 25.15 28.32 64.97 35.96 25.15 28.30 64.92 36.00 ## Clocks 25.15 28.30 64.92 35.96 25.17 28.41 64.97 35.96 ## Clocks 44.26 #### end second config with crt/lcd display ### begin third config with crt/lcd: new XF86_SVGA (3.1.2 or later) # # Brad Bosch's server allows one to *program* the dotclocks. This # makes it possible to achieve much better refresh rates and resolutions # that were previously not possible. See README.WstDig for more details. # # (instructions here are Brad's, for his modified pvga1 driver) # # The VRAM clock (Mclk) is adjusted by adding ONE of the # following option lines: # # Option "slow_dram" # Set Mclk to 47.429 MHz Option "med_dram" # Set Mclk to 49.219 MHz # Option "fast_dram" # Set Mclk to 55.035 MHz # # The default is to leave Mclk as the BIOS sets it. This is 44.297 on # our (Twinhead) systems. There is also a faster clock than 55 MHz, # but it caused display bit errors on my system. I was surprised the # 55 MHz clock worked. # # To use dotclocks above 60, it appears necessary to use the "fast_dram" # option. This makes 1024x768NI@72Hz possible. The 85 MHz clock # still does not appear to work. It is beyond the design limits of # the WD90C24 series. The databook states that the 65 MHz clock # MClk values of 44.297 are the maximum the WD90C24A2 is designed for. # In addition to possible risks to the hardware, memory errors sometimes # occur when using fast_dram. If you see corrupted pixels, try a slower # setting. # # The second and fourth group of 4 clocks are now adjustable. That is, # clocks 5,6,7,8 and 13,14,15,16 (counting from 1). These clocks are # set by the Clocks line. Be sure to adjust the 17th (last) clock if # you change Mclk via above. Here is a sample clocks line with more # unique clocks defined. The NON-programable clocks (1-4 and 9-12) MUST # be set as indicated here. # # These clocks chosen for 800x600NI@72Hz and 1024x768NI modelines # and circumvent "snow" problems (Darin): # Clocks 25.175 28.322 65 36 # These clocks are *not* programmable Clocks 29.979 77.408 62.195 59.957 # these are programmable Clocks 31.5 35.501 75.166 50.114 # these are *not* programmable Clocks 39.822 72.038 44.744 65.1 # these are programmable Clocks 49.219 # Change this if you change Mclk # above. # # You can program the clocks in increments of .447443 MHz. It will warn # you and adjust to the nearest increment if you use a clock which does not # fit this formula. Clocks 1-4 and 9-12 (fixed clocks) are not constrained # to this multiple, which is why I didn't make them programable (so they # could be the exact standard clocks). # ### end third config EndSection # ********************************************************************** # Screen sections # ********************************************************************** # The colour SVGA server # Use ctrl_alt_kp(+) and ctrl_alt_kp(-) to flip through these modes # without restarting X. Section "Screen" Driver "svga" Device "WD90C24A2" # Monitor "LCD Screen" Monitor "CRT&LCD" Subsection "Display" Depth 8 # # Modes must be one line: format below is for documentation only # # Modes "640x480" # works: Use for LCD/CRT # Modes "640x480.28" # works: Use for LCD only (not needed) # Modes "800x600.36" # works but flicker # Modes "800x600.50" # works well - no flicker # Modes "1024x768i" # works well - clear focus - no flicker # Modes "1024x768.65" # snow problem # Modes "1024x768.62" # works but flicker # Modes "1024x768.60" # works but flicker # Modes "1024x768.72" # wavy unless use "fast_dram" but then works # Modes "1024x768.75" # wavy unless use "fast_dram" but then works # Modes "1024x768.85" # doesn't sync; polarities don't help # Modes "1152x900i" # very nice # Modes "1152x900.77" # 54 Hz - flicker # Following line is valid "Modes" line: Modes "640x480" "800x600.36" "1024x768i" # "800x600.50" "1024x768.60" "1024x768.72" "1152x900i" "1152x900.72" # commented out to avoid monitor "toast" ViewPort 0 0 # Virtual 1024 768 # Virtual for CRT only use # comment out if you want 800x600 virtual # on LCD. uncomment if you want 640x480 LCD. EndSubsection EndSection ###### end XF86Config for 3.1.2 ############################################ # ****************** end of mini-HOWTO **********************