# XFree86 Modelines

## MBCook

How do I get XFree86 modelines? On other distros, when I setup X, I got all sorts of modelines for all the resolutions that my monitor could do? There isn't a singe modeline in my XF86Config file now though? It's rather bare in that respect. So my problem is that I want to go to a higher resolution that both my card and monitor support, but I can't because X doesn't seem to think I can do that.

PS: I'm using the nv driver (not the nVidia one), would something change if I DID use the nVidia one?

----------

## phong

You'd get more performance at a minimum.   :Smile:   The only disadvantage of the nVidia driver is that it's closed source.  It may also help get your higher resolutions - though I'm not positive that's what's wrong.

You may want to check out the XFree video timings HOWTO for more on modelines.  There are also a number of web-based tools for creating them automatically (google for "modeline" or "modeline generator" or "modeline tool").

----------

## MBCook

Thanks. I haven't been bothering with the driver because I don't do any 3D and I'm running a 2.5 kernel right now and I hear that it's a pain to get the nVidia drivers to work with it (let alone the fact that it's not 'officially supported').

----------

## TripKnot

http://koala.ilog.fr/cgi-bin/nph-colas-modelines

----------

## ronmon

At times in the past I have had that problem. What fixed it for me then, and still works now, is making sure that my monitor's HorizSync and VertRefresh are set right. X computes your mode lines from that info IIRC.

My Radeon 32MB DDR (wimpy by today's standards) runs a 21" CRT at 1600x1200@85Hz with nary a mode line in my config file.

----------

## int1

I found this XF86Config-4 from online.  Works great for my Dell Inspiron 8100 laptop with the Nvidia modules installed.  Hopefully this could help you, and also everyone else out there.

int1

--- /etc/X11/XF86Config-4 ---

##########################################################################

# Refer to the XF86Config(4/5) man page for details about the format of

# this file.

#

# Be sure to replace the monitor values with correct values for your

# monitor!

##########################################################################

#invoke using the '-layout' option of startx

##########################################################################

# 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 <Crtl><Alt><BS> server abort sequence

    # This allows clients to receive this key event.    #DontZap

    # Uncomment this to disable the <Crtl><Alt><KP_+>/<KP_-> mode switching

    # sequences.  This allows clients to receive these key events.

    #DontZoom

    # This  allows  the  server  to start up even if the

    # mouse device can't be opened/initialised.

    AllowMouseOpenFail

EndSection

##########################################################################

# ServerLayout sections

# (invoke using the '-layout' option of 'startx'.

##########################################################################

#

# just one agp card

#

Section "ServerLayout"

        Identifier "Home"

        Screen 0 "Screen Single" 0 0

        InputDevice "TouchPad" "CorePointer"

        InputDevice "Keyboard0" "CoreKeyboard"

        InputDevice "MSUSB" "SendCoreEvents"

EndSection

Section "ServerLayout"

        Identifier "Work"

        Screen  0 "Screen TwinView" 0 0

        InputDevice "TouchPad" "CorePointer"

        InputDevice "Keyboard0" "CoreKeyboard"

        InputDevice "MSUSB" "SendCoreEvents"

EndSection

Section "ServerLayout"

        Identifier "TV"

        Screen 0 "Screen TV" 0 0

        InputDevice "TouchPad" "CorePointer"

        InputDevice "Keyboard0" "CoreKeyboard"

EndSection

# By default, Red Hat Linux 6.0 and later use xfs

Section "Files"

        RgbPath         "/usr/X11R6/lib/X11/rgb"

        # if the local font server has problems, we can fall back on these

        FontPath        "/usr/X11R6/lib/X11/fonts/local"

        FontPath        "/usr/lib/X11/fonts/misc"

        FontPath        "/usr/lib/X11/fonts/truetype"

        FontPath        "/usr/X11R6/lib/X11/fonts/misc:unscaled"

        FontPath        "/usr/lib/X11/fonts/100dpi/:unscaled"

        FontPath        "/usr/lib/X11/fonts/75dpi/:unscaled"

        FontPath        "/usr/X11R6/lib/X11/fonts/Type1"

        FontPath        "/usr/X11R6/lib/X11/fonts/Speedo"

        FontPath        "/usr/lib/X11/fonts/100dpi"

        FontPath        "/usr/lib/X11/fonts/75dpi"

        FontPath        "/usr/lib/X11/fonts/cyrillic:unscaled"

        FontPath        "/usr/share/fonts"

        FontPath        "/usr/share/AbiSuite/fonts"

EndSection

# Module loading section

# As of Nvidia driver 1.0-2313 modules "GLcore" and "dri" have been

# superceded by module "glx"

Section "Module"

        Load  "dbe"             # Double-buffering

#       Load  "GLcore"          # OpenGL support

#       Load  "dri"             # Direct rendering infrastructure

        Load  "glx"             # OpenGL X protocol interface

        Load  "extmod"          # Misc. required extensions

#       Load  "v4l"             # Video4Linux

        Load  "record"          # X event recorder

        Load  "fb"              # Framebuffer? - Cory

        # Load "fbdevhw"

        # Load  "pex5"          # PHIGS for X 3D environment (obsolete)

        # Load  "xie"           # X Image Extension (obsolete)

        # You only need the following two modules if you do not use xfs.

        # Load  "freetype"       # TrueType font handler

        Load  "type1"           # Adobe Type 1 font handler

EndSection

Section "InputDevice"

        Identifier      "Keyboard0"

        Driver          "keyboard"

        # Option                "CoreKeyboard"

        Option          "AutoRepeat"    "250 30"

        Option          "XkbRules"      "xfree86"

        Option          "XkbLayout"     "us"

        Option          "XkbModel"      "pc104"

EndSection

Section "InputDevice"

        Identifier      "TouchPad"

        Driver          "mouse"

        Option          "Device"                "/dev/psaux"

        Option          "Protocol"              "PS/2"

        Option          "Emulate3Buttons"       "yes"

        Option          "Emulate3Timeout"       "50"

        Option          "ZAxisMapping"          "4 5"

EndSection

Section "InputDevice"

        Identifier      "MSUSB"

        # Modified by mouseconfig

        Driver          "mouse"

        Option          "Device"                "/dev/input/mice"

        Option          "Protocol"              "IMPS/2"

#       Option          "Emulate3Buttons"       "yes"    # It is 3 buttons, isn't it?

        Option          "ZAxisMapping"          "4 5"

EndSection

#Section "InputDevice"

#        Identifier      "Mouse1"

#        Driver          "mouse"

#        Option          "Protocol" "IMPS/2"

#        Option          "Device"   "/dev/usbmouse"

#EndSection

# This is defined here and used below in "Twinview"

Section "Monitor"

        Identifier "ExternalCRT"

        VendorName "Dell"

        ModelName  "1000HS (D1025TM)"

#       HorizSync 30-85

#       VertRefresh 50-120

        Option "dpms"

EndSection

Section "Monitor"

        Identifier "Laptop"

        VendorName "Hitachi"

        ModelName  "Unknown"

# These details are no longer needed since  I've set the unit to use the EDID

# freqs from the DFP/CRT to generate it's own modeline

#Section "InputDevice"

#        Identifier      "Mouse1"

#        Driver          "mouse"

#        Option          "Protocol" "IMPS/2"

#        Option          "Device"   "/dev/usbmouse"

#EndSection

# This is defined here and used below in "Twinview"

Section "Monitor"

        Identifier "ExternalCRT"

        VendorName "Dell"

        ModelName  "1000HS (D1025TM)"

#       HorizSync 30-85

#       VertRefresh 50-120

        Option "dpms"

EndSection

Section "Monitor"

        Identifier "Laptop"

        VendorName "Hitachi"

        ModelName  "Unknown"

# These details are no longer needed since  I've set the unit to use the EDID

# freqs from the DFP/CRT to generate it's own modeline

#Section "InputDevice"

#        Identifier      "Mouse1"

#        Driver          "mouse"

#        Option          "Protocol" "IMPS/2"

#        Option          "Device"   "/dev/usbmouse"

#EndSection

# This is defined here and used below in "Twinview"

Section "Monitor"

        Identifier "ExternalCRT"

        VendorName "Dell"

        ModelName  "1000HS (D1025TM)"

#       HorizSync 30-85

#       VertRefresh 50-120

        Option "dpms"

EndSection

Section "Monitor"

        Identifier "Laptop"

        VendorName "Hitachi"

        ModelName  "Unknown"

# These details are no longer needed since  I've set the unit to use the EDID

# freqs from the DFP/CRT to generate it's own modeline

#       HorizSync 30-100

#       VertRefresh 60-100

#       Modeline from Nvidia guide for 1400x1050 60 Hz, 65.8 kHz hsync

#       Modeline "1400x1050" 129 1400 1464 1656 1960 1050 1051 1054 1100 +HSync +VSync

        Option "dpms"

EndSection

Section "Monitor"

        Identifier "TV"

        VendorName "Unknown"

        ModelName  "Unknown"

        HorizSync 30-50

        VertRefresh 60

EndSection

Section "Device"

        Identifier "NV AGP"

        Driver "nvidia"

        VideoRAM 32768

        VendorName "NVidia"

        BoardName "GeForce 2 Go"

        BusID "PCI:1:00:0"

        Option "PageFlip" "on"          # default=on

        Option "CursorShadow" "on"      # default=on

        Option "CursorShadowAlpha" "32"  # 0-transparent 255-opaque

        Option "CursorShadowXOffset" "4"  # 0-32

        Option "FlatPanelScalingMode" "scaled"  # or "centered"

        Option "HWCursor" "on"          # default=on

        Option "SWCursor" "off"         # default=off

        Option "IgnoreEDID" "off"       # default=off

        Option "NoRenderAccel" "off"    # default=off

        Option "NoLogo" "off"           # default=off

        Option "UseEdidFreqs" "on"      # default=off

        Option "NvAGP" "3"          # 0=no AGP, 1= Nvidia AGP,

EndSection                          # 2=AGPGART, 3=AGPGART elsif

                                    #           Nvidia AGP

#Section "Device"

#       Identifier "Linux Frame Buffer"

#       Driver "fbdev"

#       BoardName "Unknown"

#EndSection

Section "Screen"

        Identifier "Screen TwinView"

        Device "NV AGP"

        Monitor "ExternalCRT"

        DefaultDepth 24

        Subsection "Display"

                Depth 24

#               Modes "1400x1050" "1280x1024" "1024x768" "800x600" "640x480"

                Modes "1280x1024" "1024x768" "800x600" "640x480"

        EndSubSection

# According to the Nvidia docs, Twinview in a laptop sets the external CRT

# as the primary device and the dfp as the secondary device

        Option "TwinView" "on"

#       Option "SecondMonitorHorizSync" "30-85"

#       Option "SecondMonitorVertRefresh" "50-120"

        Option "TwinViewOrientation" "RightOf"

        Option "UseEdidFreqs" "on"

#       Option "MetaModes" "1400x1050 @1400x1200,1600x1200; 1280x1024,1280x1024; 1024x768,1024x768; 800x600,800x600; 640x480,640x480"

#       Option "MetaModes" "1400x1050, 1280x1024 @1400x1050;1280x1024,1280x1024; 1024x768,1024x768; 800x600,800x600; 640x480,640x480"

        Option "MetaModes" "1280x1024 @1400x1050, 1400x1050;1280x1024,1280x1024; 1024x768,1024x768; 800x600,800x600; 640x480,640x480"

#       Option "ConnectedMonitor" "dfp,crt"

EndSection

Section "Screen"

        Identifier "Screen Single"

        Device "NV AGP"

        Monitor "Laptop"

        DefaultDepth 24

        SubSection "Display"

                Depth 16

                Modes "1024x768"

                #"800x600" "1280x1024" "1400x1050" "640x480"

        EndSubSection

        Subsection "Display"

                Depth 24

                Modes "1024x768"

                #"800x600" "1280x1024" "1400x1050" "640x480"

        EndSubSection

EndSection

Section "Screen"

        Identifier "Screen TV"

        Device "NV AGP"

        Monitor "TV"

        DefaultDepth 24

        Subsection "Display"

                Depth 24

                Modes "800x600"

        EndSubSection

        Option "TVOutFormat" "SVIDEO"

EndSection

Section "DRI"

        Mode 0666

EndSection

--- end file ---

----------

## squanto

OK, here is my situation:

I just got myself this freeking huge NEC monitor, a FE2111 cost me $600. When I run 1600x1200 xfree wants me to be at either 75, 75.1 or 84.8 Hz.

I don't want to be at any of these frequencies. I have tried modelines up the wazoo and I can't get my monitor to go 85 Hz. 

The reason I need it to be 85Hz is because at 84.8Hz the bottom of the mointor is fuzzy.

I can put up with 75Hz for a little while, but I like 85 much better cause it is easy on the eyes.

How can I make Xfree operatate my monitor at 85Hz at 1600x1200?

I have been trying modelines from just about every modeline creation tool available that google has found for the past hour.

Any ideas?

The high end of my horiz input of the monitor is 115KHz, so I can go up to 91Hz at 1600x1200 according to NEC and I have a GeForce3, so both can handle the res and the refresh, but I can't get xfree to give me 85Hz.

Thanks!

-Andrew

Edit: I have gotten 85Hz at 1280x1024, but still can't get 85Hz at 1600x1200.  Although it is probably better for my eyes to just leave it at this res, bigger print == easier to read  :Wink: . I would still like to be able to put it up to 1600 though  :Sad: 

----------

## ronmon

I also have a good sized monitor, a Compaq P110 21". HorizSync is set at 31-107 and VertRefresh at 60-160, per the manual, in XF86Config though the log shows that the monitor is capable of 30-107 and 48-160. Even with an aged Radeon 32MB DDR I get 1600x1200 @ 85Hz. Since you have better HSync range you should be able to get it.

Here's a snippet from my X log. It contains a Modeline that was auto-generated that you may be able to put into your XF86Config. Might be worth a shot.

```

(II) RADEON(0): Ranges: V min: 48  V max: 160 Hz, H min: 30  H max: 107 kHz, PixClock max 2550 MHz

(II) RADEON(0): Serial No: 735DA25KA800

(II) RADEON(0): Monitor name:  P110

(II) RADEON(0): End of DDC Monitor info

(II) RADEON(0): PLL parameters: rf=2700 rd=60 min=12000 max=35000; xclk=16600

(==) RADEON(0): Using gamma correction (1.0, 1.0, 1.0)

(II) RADEON(0): Monitor0: Using hsync range of 31.00-107.00 kHz

(II) RADEON(0): Monitor0: Using vrefresh range of 60.00-160.00 Hz

(II) RADEON(0): Clock range:  12.00 to 350.00 MHz

(--) RADEON(0): Virtual size is 1600x1200 (pitch 1600)

(**) RADEON(0): Default mode "1600x1200": 229.5 MHz, 106.2 kHz, 85.0 Hz

(II) RADEON(0): Modeline "1600x1200"  229.50  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync

(--) RADEON(0): Display dimensions: (400, 300) mm

(--) RADEON(0): DPI set to (101, 101)

```

----------

## squanto

Thanks for the help, but my problem is that if I put modelines into my XF86Config, they don't do anything. It seems that X wants to force me to run at 84.8Hz when I run 1600x1200, and I can't change it. Is there anyway to force X to run at a refresh without using modelines? I know that may sound dumb...

If I put in a modeline for 1600x1200@85 or 90 X tells me it can't find any useable screens, but if I just use the horizsync and vsync params I can get it to run down at 75hz or at 84.8 but no where else. If I could get 80Hz even, that would be fine I think. It is like X skips from 60 to 75 to 84.8 Hz and won't go at a certain refresh that I spesify.

Thanks

----------

## Yoshi Assim

I also have a good sized monitor, a Compaq P110 21". HorizSync is set at 31-107 and VertRefresh at 60-160, per the manual, in XF86Config though the log shows that the monitor is capable of 30-107 and 48-160. Even with an aged Radeon 32MB DDR I get 1600x1200 @ 85Hz. Since you have better HSync range you should be able to get it.

Hello! Greetings from Spain   :Very Happy: 

I also have a Compaq P110 Monitor and I try to make the modelines for my XF86Config file but I must do it by hand...

I find some utilities in Internet but they made differents results and I' m not sure... I'm affraid to damage my monitor... 

Can You help me?

What's the pixel clock for this monitor? I find that is < 236,5 Mhz

Do You have modelines for 1280x1024@85Hz and 1024x768@120Hz? or can you give a clue to find

```
(II) RADEON(0): Monitor name:  P110

(II) RADEON(0): End of DDC Monitor info

(II) RADEON(0): PLL parameters: rf=2700 rd=60 min=12000 max=35000; xclk=16600

(==) RADEON(0): Using gamma correction (1.0, 1.0, 1.0)

(II) RADEON(0): Monitor0: Using hsync range of 31.00-107.00 kHz

(II) RADEON(0): Monitor0: Using vrefresh range of 60.00-160.00 Hz

(II) RADEON(0): Clock range:  12.00 to 350.00 MHz

(--) RADEON(0): Virtual size is 1600x1200 (pitch 1600)

(**) RADEON(0): Default mode "1600x1200": 229.5 MHz, 106.2 kHz, 85.0 Hz

(II) RADEON(0): Modeline "1600x1200"  229.50  1600 1664 1856 2160  1200 1201 1204 1250 +hsync +vsync

(--) RADEON(0): Display dimensions: (400, 300) mm

(--) RADEON(0): DPI set to (101, 101)
```

----------

