Suppressing automatic modes

Perry Hutchison perryh at
Thu Aug 31 02:04:50 PDT 2006

> > Is there a way, short of rebuilding and/or hacking source, to turn
> > off some (or all) of the automatically-calculated resolutions, and
> > have the server use *only* those modelines explicitly provided
> > in xorg.conf?  It looks as if an explicit modeline overrides any
> > automatic modes of the same name (resolution), but I have not yet
> > found a way to get rid of a resolution which I don't want to use
> > at all.
> >
> [snip highest mode is default mode]
> Hi Perry,
> Sounds like you've been trying to solve the wrong problem - you
> probably don't need any modelines. What you need is a "Modes"
> stanza in your Screen section stating the order in which you
> would like resolutions to be considered, as below:
> Section "Screen"
>        Identifier "Screen0"
>        Device     "Card0"
>        Monitor    "Monitor0"
>        DefaultDepth     24
>        SubSection "Display"
>                Depth     24
>                Modes    "1024x768" "800x600"
>        EndSubSection
> EndSection
> Where the modes are read in order of precedence from left to
> right, and in the example above, "1024x768" would be the default
> resolution for the default depth of 24bpp.

Adding a Modes line made no difference.  The resulting behavior
is the same as before, and the logfile is identical except for
the date stamp.

I suspect the cause is described in the last sentence of this
excerpt from the xorg.conf manpage:

  Specifying video modes is optional because the server now
  has a built-in list of VESA standard modes.  When modes are
  specified explicitly in the Monitor section (with the Modes,
  ModeLine, or UseModes keywords), built-in modes with the same
  names are not included. Built-in modes with different names
  are, however, still implicitly included.

The question is, how do I go about eliminating some (or all) of
those built-in modes?  Alternatively, how can I get the server to
believe the monitor's report of its supported modes?  (The logfile
shows the monitor reporting 1024x768 as its highest resolution,
but the server nevertheless tries to use 1280x960.)

========================== new xorg.conf ==========================

Section "ServerLayout"
	Identifier     " Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
	FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/TTF/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
	FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"

Section "Module"
	Load  "dbe"
	Load  "dri"
	Load  "extmod"
	Load  "glx"
	Load  "record"
	Load  "xtrap"
	Load  "freetype"
	Load  "type1"

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/psm0"
	Option	    "ZAxisMapping" "4 5 6 7"

Section "Monitor"
	#DisplaySize	  300   230	# mm
	Identifier   "Monitor0"
	VendorName   "GWY"
	ModelName    "FPD1530"
	Option	     "DPMS"
	ModeLine "1024x768" 65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync
	ModeLine "832x624"  57.28   832  864  928 1152  624 625 628 667 -hsync -vsync
	ModeLine "800x600"  36.00   800  824  896 1024  600 601 603 625 +hsync +vsync
	ModeLine "640x480"  25.20   640  656  752  800  480 490 492 525 -hsync -vsync

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "accel"              	# [<bool>]
        #Option     "crt_display"        	# [<bool>]
        #Option     "composite_sync"     	# [<bool>]
        #Option     "hw_cursor"          	# [<bool>]
        #Option     "linear"             	# [<bool>]
        #Option     "tv_out"             	# [<bool>]
        #Option     "tv_standard"        	# <str>
        #Option     "mmio_cache"         	# [<bool>]
        #Option     "test_mmio_cache"    	# [<bool>]
        #Option     "panel_display"      	# [<bool>]
        #Option     "probe_clocks"       	# [<bool>]
        #Option     "reference_clock"    	# <freq>
        #Option     "shadow_fb"          	# [<bool>]
        #Option     "sw_cursor"          	# [<bool>]
	Identifier  "Card0"
	Driver      "ati"
	VendorName  "ATI"
	BoardName   "3D Rage Pro AGP 1X/2X"
	ChipSet     "ati"
	ChipId      0x4742
	ChipRev     0x5c
	BusID       "PCI:1:0:0"

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	SubSection "Display"
		Viewport   0 0
		Depth     1
	SubSection "Display"
		Viewport   0 0
		Depth     4
	SubSection "Display"
		Viewport   0 0
		Depth     8
	SubSection "Display"
		Viewport   0 0
		Depth     15
	SubSection "Display"
		Viewport   0 0
		Depth     16
	SubSection "Display"
		Viewport   0 0
		Depth     24
		Modes    "1024x768" "800x600" "640x480"

Section "DRI"
	Group        0

 New logfile omitted to save on bandwidth, since except for the date
 stamp it is identical to the previous one -- see the first post of
 this thread.

More information about the xorg mailing list