HowtoSetupExternalMonitorForIntel915

Hi all, I would like to describe how you can make your external monitor to work in Ubuntu Dapper Drake, if you have an intel 915 graphic card (which is mostly used in laptops). My desired Resolution is 1280x800 with 60Hz for my LCD of laptop and 1024x768 with 85Hz for my CRT external monitor.

There are two solutions for working with external monitors:

  1. The external monitor become exactly mirror of LCD (I use "Clone Heads" for this)
  2. The external monitor has another screen so that we can switch between screen of LCD and screen of external monitor(I use "Separate Heads" for this)

It will be great, If there is a choice for the user to select witch solution he wants in run time. Fortunately, having multiple "ServerLayout" section in xorg.conf file and defining multiple "server" in gdm.conf file provides this flexibility.

The only trick is if you want to stay in 85Hz in Clone mode, you should downgrade resolution of LCD to 1024x768. The reason is: for refresh rates upper than 60Hz, the resolutions of two heads must be the same.

With respect to the discussion above, the /etc/X11/xorg.conf shoule looks like this:

Section "Files"
        FontPath        "/usr/share/X11/fonts/misc"
        FontPath        "/usr/share/X11/fonts/cyrillic"
        FontPath        "/usr/share/X11/fonts/100dpi/:unscaled"
        FontPath        "/usr/share/X11/fonts/75dpi/:unscaled"
        FontPath        "/usr/share/X11/fonts/Type1"
        FontPath        "/usr/share/X11/fonts/100dpi"
        FontPath        "/usr/share/X11/fonts/75dpi"
        # path to defoma fonts
        FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection

Section "Module"
        Load    "bitmap"
        Load    "ddc"
        Load    "dri"
        Load    "extmod"
        Load    "freetype"
        Load    "glx"
        Load    "int10"
        Load    "type1"
        Load    "vbe"
EndSection

Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc104"
        Option          "XkbLayout"     "us"
EndSection

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"                "/dev/input/mice"
        Option          "Protocol"              "ExplorerPS/2"
        Option          "ZAxisMapping"          "4 5"
        Option          "Emulate3Buttons"       "true"
EndSection

Section "InputDevice"
        Identifier      "Synaptics Touchpad"
        Driver          "synaptics"
        Option          "SendCoreEvents"        "true"
        Option          "Device"                "/dev/psaux"
        Option          "Protocol"              "auto-dev"
        Option          "HorizScrollDelta"      "0"
EndSection

Section "Device"
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Driver          "i810"
        BusID           "PCI:0:2:0"
EndSection

Section "Device"
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for LCD of Separate"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "MonitorLayout" "CRT,LFP"
        Screen 0
EndSection

Section "Device"
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for CRT of Separate"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Screen 1
EndSection

Section "Device"
        Identifier      "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for Clone"
        Driver          "i810"
        BusID           "PCI:0:2:0"
        Option          "Clone" "true"
        Option          "CloneRefresh" "85"
        Option          "MonitorLayout" "CRT,LFP"
EndSection

Section "Monitor"
        Identifier      "Generic Monitor"
        Option          "DPMS"
        HorizSync       28-64
        VertRefresh     43-60
EndSection

Section "Monitor"
        Identifier      "External Monitor"
        Option          "DPMS"
        HorizSync       30-90
        VertRefresh     50-160
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1280x800"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1280x800"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1280x800"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1280x800"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1280x800"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1280x800"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "LCD Screen Of Separate"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for LCD of Separate"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1280x800"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "CRT Screen Of Separate"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for CRT of Separate"
        Monitor         "External Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "LCD Screen Of Clone"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for Clone"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection

Section "Screen"
        Identifier      "CRT Screen Of Clone"
        Device          "Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller for Clone"
        Monitor         "External Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection

Section "ServerLayout"
        Identifier      "DefaultLayout"
        Screen          "Default Screen"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        InputDevice     "Synaptics Touchpad"
EndSection

Section "ServerLayout"
        Identifier      "SeparateHeads"
        Screen 0        "LCD Screen Of Separate" 0 0
        Screen 1        "CRT Screen Of Separate" RightOf "LCD Screen Of Separate"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        InputDevice     "Synaptics Touchpad"
EndSection

Section "ServerLayout"
        Identifier      "CloneHeads"
        Screen          "LCD Screen Of Clone"
        Screen          "CRT Screen Of Clone"
        InputDevice     "Generic Keyboard"
        InputDevice     "Configured Mouse"
        InputDevice     "Synaptics Touchpad"
EndSection

Section "DRI"
        Mode    0666
EndSection

After editing xorg.conf, it turns off gdm.conf. by default, there is one section named [server-Standard] in /etc/gdm/gdm.conf which must be changed to:

[server-Standard]
name=Standard server
command=/usr/bin/X -br -audit 0 -layout DefaultLayout
flexible=true

After doing that, you should add some other server sections:

[server-Separate]
name=Separate Heads
command=/usr/bin/X -br -audit 0 -layout SeparateHeads
flexible=true

[server-Clone]
name=Clone Heads
command=/usr/bin/X -br -audit 0 -layout CloneHeads
flexible=true

ClaudeParoz: At least with latest versions of GDM, you should add these to /etc/gdm/gdm.conf-custom, so as your config don't get overwritten by GDM updates.

FredrikStahl: Under Feisty, remember to unset the "Disable multiple logins for a single user" option in gdmsetup. Also, I had to change the refresh rate from 85 to 60 Hz after upgrading to Feisty to avoid serious distortions on the external monitor, with the same hardware. Strange.

Ok, that's it. You must restart your computer and for changing mode, in gnome-terminal, type: gdmflexiserver and see what's happen!

Have fun, Habib Seifzadeh : habibseifzadeh@yahoo.com


CategoryLaptop CategoryHardware

HowtoSetupExternalMonitorForIntel915 (last edited 2008-08-06 17:00:34 by localhost)