Difference between revisions of "Intel Graphics Media Accelerator 950"

From ThinkWiki
Jump to: navigation, search
(External VGA port)
(changed category)
 
(69 intermediate revisions by 16 users not shown)
Line 1: Line 1:
__NOTOC__
 
 
{| width="100%"
 
{| width="100%"
 
|style="vertical-align:top" |
 
|style="vertical-align:top" |
 
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;">
 
<div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;">
=== Intel Graphics Media Accelerator 950 ===
 
 
This is an Intel video adapter
 
This is an Intel video adapter
  
=== Features ===
+
== Features ==
 
* Integrated into the following chipsets:
 
* Integrated into the following chipsets:
 
** [[Intel 945GM]]
 
** [[Intel 945GM]]
* PCI ID: 8086:????
+
* PCI ID: 8086:27a2
 
* Uses up to 224MB of main memory for video usage
 
* Uses up to 224MB of main memory for video usage
 
</div>
 
</div>
Line 15: Line 13:
 
|}
 
|}
  
=== Linux X.Org driver ===
+
= Intel video driver =
Supported by Xorg http://www.xfree86.org/current/i810.4.html.
+
The Intel opensource videodriver is maintained by Intel at [http://intellinuxgraphics.org/ intellinuxgraphics.org].
 +
Intel releases a new driver once per quarter. The latest stable release is 2.10.
  
=== Linux Intel driver ===
+
== Kernel mode setting (KMS) ==
There is a Graphics driver for the Mobile Intel® 945GM Express Chipset Family at [http://downloadfinder.intel.com/scripts-df-external/filter_results.aspx?strTypes=all&ProductID=2301&OSFullName=Linux*&lang=eng&strOSs=39&submit=Go%21 Intels Support Site]. This driver is just a snapshot of the Xorg/XFree86 driver.
+
KMS (Kernel Mode Setting) as the name suggests moves some video setup functions to the kernel. This should have the following benefits over legacy mode setting
 +
* increased stability, because it removes the current contention between the X server and the kernel
 +
* ability to show kernel dump screens even when the X server was running
 +
* rapid mode switching
 +
* in theory should not allow the X video driver to hang the system
 +
* early graphical boot display with seamless login
 +
* should in the future allow for the X server to run without root privileges
 +
* larger virtual display size (4096x4096) allowing extended desktop configs (2048x2048 without KMS)
  
In my case, the i810 driver recommended by multiple sources for this graphics card did not work, leaving a message of "No device found." Running against the generic vesa drivers solves that problem, but does not allow use of the external VGA port.
+
Note that KMS does not eliminate the need for the Intel Xorg driver, it just frees that driver from the hardware setup functions.
 +
=== Status===
 +
Right now KMS is still in heavy development, and officially requires at least kernel 2.6.29 with version 2.7 of the Intel driver. But in reality you should really be running at least the 2.6.30.5 kernel and version 2.8 of the Intel driver.
  
In Fedora Core 5 at least, the correct i810 driver can be obtained from the updates (in updates-testing as of Aug 15, 2006). With that, the i810 driver seems to work.
+
==== Issues ====
 +
The chip has hardware limitations when the display area exceeds 2048 pixels (horizontally or vertically), which is why earlier versions of the driver did not even try to support it. Here are the limitations you may run into when running dual-display Extended desktop.
 +
* 3D acceleration is limited (compiz will crash, or with some older software stacks may even freeze the system) [https://bugzilla.redhat.com/show_bug.cgi?id=513736]
 +
* Xvideo does not work (black or empty video window) [https://bugzilla.redhat.com/show_bug.cgi?id=497069]
  
==== ThinkPad LCD ====
+
For the Xvideo issue a workaround in the driver is technically possible but not yet implemented.
Display on the internal LCD works as long as you set the monitor settings correct.
 
  
==== External VGA port ====
+
For now you can work around the Xvideo driver issue by either enabling Metacity compositing '''or''' disabling XV overlay.
Works. Dualhead is supported. 
 
  
There are two options for running the external VGA port - either as a copy of the LCD (clone) or as a separate workspace. Here is an example for the separate workspace mode for xorg.conf for the X60s:
+
'''Enable Metacity Compositing'''
    Section "Device"
+
gconftool-2 --type bool --set /apps/metacity/general/compositing_manager true
        Identifier      "Intel Corporation Mobile Integrated Graphics Controller"
 
        Driver          "i810"
 
        BusID          "PCI:0:2:0"
 
        Option "MonitorLayout" "CRT,LFP"
 
        Option "DevicePresence" "true"
 
        Screen 1
 
    EndSection
 
    Section "Device"
 
        Identifier      "Intel Corporation Mobile Integrated Graphics Controller External CRT"
 
        Driver          "i810"
 
        BusID          "PCI:0:2:0"
 
        Screen 0
 
    EndSection
 
    Section "Monitor"
 
        Identifier      "LCD"
 
        Option          "DPMS"
 
    EndSection
 
  
    Section "Monitor"
+
This will result in a slower desktop. It can be turned off again with
        Identifier      "External CRT"
+
gconftool-2 --type bool --set /apps/metacity/general/compositing_manager false
        Option          "DPMS"
 
        HorizSync 28-75
 
        VertRefresh 43-100
 
    EndSection
 
  
    Section "Screen"
+
'''Disable XV''' <br>
        Identifier      "External Screen"
+
This will cause much higher CPU usage, but only during video playback. For Gstreamer enabled apps this can be set globally, for other apps you will have to dig into their settings.
        Device          "Intel Corporation Mobile Integrated Graphics Controller External CRT"
+
gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink ximagesink
        Monitor        "External CRT"
 
        DefaultDepth    24
 
        SubSection "Display"
 
                Depth          24
 
                Modes          "1280x1024"
 
        EndSubSection
 
    EndSection
 
  
    Section "Screen"
+
To set it back to the default setting
        Identifier      "Default Screen"
+
gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink autovideosink
        Device          "Intel Corporation Mobile Integrated Graphics Controller"
 
        Monitor        "LCD"
 
        DefaultDepth    24
 
        SubSection "Display"
 
                Depth          1
 
                Modes          "1024x768"
 
        EndSubSection
 
    EndSection
 
  
    Section "ServerLayout"
+
Here is a script I wrote that automatically sets the correct video output option based on configured displays. It could be launched from a dock hotplug event script (although that would not take care of all the use cases, such as booting with external display already attached)
        Identifier      "Default Layout"
 
        Screen          0 "Default Screen" 0 0
 
        Screen          1 "External Screen" RightOf "Default Screen"
 
        InputDevice    "Generic Keyboard"
 
        InputDevice    "Configured Mouse"
 
        InputDevice    "stylus" "SendCoreEvents"
 
        InputDevice    "cursor" "SendCoreEvents"
 
        InputDevice    "eraser" "SendCoreEvents"
 
        InputDevice    "Synaptics Touchpad"
 
    EndSection
 
  
Did not work for me (FC6 test3, x60s) but this one did:
+
#!/bin/bash
(as the x-server crashes at startup if the external port is the primary display you need to change the bios option BIOS>Config>Display>Boot Display Device to "ThinkPad LCD")
+
# This script is to work around an annoying issue on Intel 945 video chips
 +
# https://bugzilla.redhat.com/show_bug.cgi?id=497069
 +
# Basically you cannot have video acceleration if desktop size >2048 pixels in either way
 +
# unless you use Metacity compositing, which is rather slow.
 +
#
 +
# So there are 2 ways to work around the bug, either use Compositing or disable XV.
 +
# We do the later, but only if the current display size > 2048
 +
 +
disablexv=0
 +
for output in $(/usr/bin/xrandr -d :0.0 --verbose| \
 +
                /bin/grep "Screen 0"| \
 +
                /usr/bin/awk '{print $8} {print $10}'| \
 +
                /usr/bin/awk -F, '{print $1}')
 +
  do
 +
    if [ "$output" -gt "2048" ]; then
 +
      disablexv=1
 +
    fi
 +
done
 +
 +
if [ "$disablexv" -eq "1" ]
 +
  then
 +
    /usr/bin/gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink ximagesink
 +
  else
 +
    /usr/bin/gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink autovideosink
 +
fi
 +
 
 +
=== Configuration===
 +
In this mode, ideally you do not configure any settings through xorg.conf but by using xrandr, or a graphical front-end to RandR such as gnome-display-settings.
 +
 
 +
=== Disabling KMS ===
 +
If KMS causes you problems, you can disable it and return to user mode setting (UMS) by booting with the {{bootparm|nomodeset|}} kernel boot option. Note that this is no longer an option starting with version 2.10 of the Intel Xorg driver as UMS support has been dropped.
  
Section "ServerLayout"
+
== User mode setting (UMS) ==
  Identifier    "Default Layout"
+
User mode setting means the Intel Xorg driver does the mode setting. This is how mode setting worked before KMS was introduced. Note that starting with the 2.10 version of the Intel Xorg driver UMS support has been removed, leaving just KMS support.
  Screen      0  "Screen0" 0 0
 
  Screen      1  "Screen1" LeftOf "Screen0"
 
  InputDevice    "Keyboard0" "CoreKeyboard"
 
EndSection
 
Section "InputDevice"
 
  Identifier  "Keyboard0"
 
  Driver      "kbd"
 
  Option     "XkbModel" "pc105"
 
  Option     "XkbLayout" "de"
 
  Option     "XkbVariant" "nodeadkeys"
 
EndSection
 
  
Section "Device"
+
There are two ways to configure the driver, either the 'old fashion' way through xorg.conf, or using xrandr (either from the cmd line or through a display utility such as gnome-display-properties).
  Identifier  "Videocard0"
 
  Driver      "i810"
 
  BusID      "PCI:0:2:0"
 
  Option      "DDC" "false"
 
  Option      "MonitorLayout" "CRT,LFP"
 
  Screen      0
 
EndSection
 
Section "Device"
 
  Identifier  "Videocard1"
 
  Driver      "i810"
 
  BusID      "PCI:0:2:0"
 
  Option      "DDC" "false"
 
  Option      "MonitorLayout" "CRT,LFP"
 
  Screen      1
 
EndSection
 
  
Section "DRI"
+
=== xorg.conf ===
Mode      0666
+
The basic working starting point for the sections relevant to graphics (excluding any manually loaded modules) is:
EndSection
 
  
Section "Monitor"
+
<pre>
  DisplaySize  305 230
+
Section "Device"
  HorizSync    28-60
+
        Identifier "Intel Graphics Adapter"
  Identifier   "Monitor0"
+
        Driver     "intel"
  ModelName    "1024X768@60HZ"
+
EndSection
  Option      "DPMS"
 
  VertRefresh  30-60
 
  UseModes     "Modes0"
 
EndSection
 
  
Section "Modes"
+
Section "Screen"
  Identifier   "Modes0"
+
        Identifier "Default Screen"
  Modeline "1024x768" 61.89 1024 1080 1184 1344 768 769 772 794
+
        Device "Intel Graphics Adapter"
  Modeline "1024x600" 47.26 1024 1064 1168 1312 600 601 604 621
+
EndSection
  Modeline "800x600" 36.88 800 832 912 1024 600 601 604 621
+
</pre>
  Modeline "768x576" 33.74 768 792 872 976 576 577 580 596
 
  Modeline "640x480" 23.06 640 656 720 800 480 481 484 497
 
  Modeline "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
 
  Modeline "1280x1024" 108.88 1280 1360 1496 1712 1024 1025 1028 1060
 
  Modeline "1280x960" 102.10 1280 1360 1496 1712 960 961 964 994
 
  Modeline "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828
 
  Modeline "1152x864" 81.62 1152 1216 1336 1520 864 865 868 895
 
  Modeline "1280x768" 80.14 1280 1344 1480 1680 768 769 772 795
 
  Modeline "1024x768" 64.11 1024 1080 1184 1344 768 769 772 795
 
  Modeline "1280x600" 61.50 1280 1336 1464 1648 600 601 604 622
 
  Modeline "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622
 
  Modeline "800x600" 38.22 800 832 912 1024 600 601 604 622
 
  Modeline "768x576" 34.96 768 792 872 976 576 577 580 597
 
  Modeline "640x480" 23.86 640 656 720 800 480 481 484 497
 
EndSection
 
  
Section "Screen"
+
But with modern distributions even the above is not necessarily needed as the video chipset, resolution, refresh rate, etc will be auto-detected. If you don't like the auto-detected settings, you can use the XRandR command line utility to adjust them dynamically without having to restart the X server! You can always of course get more sophisticated with the xorg.conf file. Just type <tt>man intel</tt> or read Intel's [http://intellinuxgraphics.org/documentation.html documentation] for more info.
  DefaultDepth 24
 
  SubSection "Display"
 
    Depth      15
 
    Modes      "1280x1024" "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  SubSection "Display"
 
    Depth      16
 
    Modes      "1280x1024" "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  SubSection "Display"
 
    Depth      24
 
    Modes      "1280x1024" "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  SubSection "Display"
 
    Depth      8
 
    Modes      "1280x1024" "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  Device      "Videocard1"
 
  Identifier  "Screen1"
 
  Monitor      "Monitor0"
 
EndSection
 
Section "Screen"
 
  DefaultDepth 24
 
  SubSection "Display"
 
    Depth      15
 
    Modes      "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  SubSection "Display"
 
    Depth      16
 
    Modes      "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  SubSection "Display"
 
    Depth      24
 
    Modes      "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  SubSection "Display"
 
    Depth      8
 
    Modes      "1024x768" "1024x600" "800x600" "768x576" "640x480"
 
  EndSubSection
 
  Device      "Videocard0"
 
  Identifier  "Screen0"
 
  Monitor      "Monitor0"
 
EndSection
 
  
Here is the relevant text for running the VGA port as a true clone (so even things like Xine video playback appears on both screens) of the internal LCD display:
+
=== External display with XRandR ===
 +
Unfortunately, given all the radical changes to the Intel driver, and especially now with KMS, external display support has been rather in flux.
  
    Section "Device"
+
One of the issues encountered is that the maximum virtual screensize depending on driver version (or in the case of KMS, the kernel). This is important if you want to have an extended desktop (dual-display), but not for Mirror mode. If your using KMS, depending on what patches made it into the kernel the maximum virtual screensize is either 2048x2048 or 4096x4096. If your not using KMS, depending on the Intel driver version it will be either 1280x1280 or 2048x2048. 4096x4096 is not possible without KMS, and even then you might have to add this patch http://lists.freedesktop.org/archives/intel-gfx/2009-July/003353.html to your kernel to enable it.
        Identifier "Videocard0"
 
        Driver "i810"
 
        BusID "PCI:0:2:0"
 
        Option "MonitorLayout" "NONE,LFP+CRT"
 
        Option "DevicePresence" "true"
 
        Option "CheckLid" "false"
 
        VendorName "Lenovo"
 
        BoardName "Intel Corporation Mobile Integrated Graphics Controller"
 
    EndSection
 
  
==== Unsupported video modes ====
+
To see what your virtual screensize is, simply run xrandr from a cmdline and look for something like this
 +
Screen 0: minimum 320 x 200, current 1400 x 1050, maximum 4096 x 4096
 +
As you can see in the above example the maximum virtual screensize is 4096x4096 which is ideal, and again, only possible in combination with KMS. If your getting 1280x1280 instead, your running an older Intel driver and have to add the Virtual line as shown below to your xorg.conf
 +
 
 +
<pre>
 +
Section "Screen"
 +
    Identifier      "Default Screen"
 +
    Device          "Intel Graphics Adapter"
 +
    SubSection "Display"
 +
            Virtual        2048 2048
 +
    EndSubSection
 +
EndSection
 +
</pre>
 +
 
 +
Once you have started X, you should find that your multiple monitors are automatically activated and mirror each other to the extent allowed by their potentially different geometries. If you want them to appear as a "large desktop", you need to adjust their relative position with the XRandR utility. You can get an idea of what you're working with by typing
 +
<pre>xrandr -q</pre>
 +
This will give you a list of outputs and tell you which ones are connected. The external display port should be called "<tt>VGA</tt>" or "<tt>DVI</tt>" (or "<tt>VGA1</tt>" or "<tt>DVI1</tt>" in case of KMS) while the builtin LCD should be called "<tt>LVDS</tt>". (or "<tt>LVDS1</tt>" in case of KMS). If, for example you want to stack your desktops vertically, you might do something like
 +
<pre>xrandr --output LVDS --below VGA</pre>
 +
or
 +
<pre>xrandr --output VGA --below LVDS</pre>
 +
your window manager may treat the two cases differently in terms of where it decides to put things like the toolbar. Ideally, you probably want to put the desired xrandr command someplace that it might get executed before your window manager starts. For example in your ~/.xsession or ~/.xinitrc file.
 +
 
 +
=== External VGA port with xorg.conf ===
 +
While XRandR eliminates the '''need''' to deal with <tt>xorg.conf</tt> in posititioning your screens, you may just want them to be laid out correctly from the outset. In this case, you can specify the default orientation of the displays in the xorg.conf file (which you can still change later with XRandR). This involves adding a <tt>"Monitor"</tt> section for each physical display output specifying its position. You must also tell the driver which
 +
<tt>"Monitor"</tt> belongs to which output (VGA,LVDS,etc) with the associated <tt>"monitor-..."</tt> option.
 +
<pre>
 +
Section "Device"
 +
        Identifier "Intel 945GM"
 +
        Driver    "intel"
 +
Option    "monitor-VGA"  "External VGA"
 +
Option    "monitor-LVDS" "Builtin LCD"
 +
EndSection
 +
 
 +
Section "Monitor"
 +
    Identifier "Builtin LCD"
 +
    Option "Below" "External VGA"
 +
EndSection
 +
 
 +
Section "Monitor"
 +
    Identifier "External VGA"
 +
    Option "Above" "Builtin LCD"
 +
EndSection
 +
 
 +
Section "Screen"
 +
        Identifier "Screen Dual"
 +
        Device "Intel 945GM"
 +
SubSection "Display"
 +
                Virtual 2048 2048
 +
EndSubSection
 +
EndSection
 +
</pre>
 +
More info can be found at http://www.intellinuxgraphics.org/dualhead.html
 +
=== VESA (console) resolution ===
 
Largest video resolution, supported by VESA for T60 is 1280x1024. You can set that for console in grub or lilo by adding vga=794 option.
 
Largest video resolution, supported by VESA for T60 is 1280x1024. You can set that for console in grub or lilo by adding vga=794 option.
  
Default video modes does not support resolution 1400x1050. You can use [http://www.geocities.com/stomljen/ 915resolution] to change that.
+
=== SVideo port ===
 +
The SVideo Port can be activated using xrandr.
 +
run
 +
xrandr --verbose
 +
to see if there is a TV section. The supported TV_FORMATs and other options are listed.
 +
The parameters TOP, RIGHT, BOTTOM ans LEFT are used to control the TV-overscan.
  
  # To show supported video modes:
+
  #set the TV format
  915resolution -l
+
  xrandr --output TV --set TV_FORMAT PAL
   
+
#set the overscan (adjust fitting your TV)
  # To add 1400x1050 support:
+
xrandr --output TV --set TOP 20
  915resolution 5a 1400 1050
+
xrandr --output TV --set RIGHT 20
 +
xrandr --output TV --set BOTTOM 0
 +
  xrandr --output TV --set LEFT 40
 +
  #turn on the TV output
 +
  xrandr --output TV --auto
  
Xorg will be able to use this resolution after that.
+
#turn off...
 +
xrandr --output TV --off
  
==== SVideo port ====
+
This works for my Thinkpad R60, running Debian Lenny
??
 
  
==== DVI port ====
 
DVI passthrough is only supported on the T60.
 
  
Linux support status is unknown
+
=== DVI port ===
 +
DVI passthrough is only supported on the T60 in combination with a docking station. Maximum resolution is 2048x1536
  
==== Suspend behaviour ====
+
=== Suspend behaviour ===
 
* Required kernel parameters for suspend to ram: none
 
* Required kernel parameters for suspend to ram: none
 
* Additional notes:  
 
* Additional notes:  
Line 246: Line 202:
 
** DO NOT use vbetool to save/restore the video mode, this breakes resume!
 
** DO NOT use vbetool to save/restore the video mode, this breakes resume!
  
=== ThinkPads this chip may be found in ===
+
== ThinkPads this chip may be found in ==
* {{R60}}
+
* {{R60}}, {{R60e}}
 
* {{T60}}
 
* {{T60}}
* {{X60}}, {{X60s}}
+
* {{X60}}, {{X60s}}, {{X60_Tablet}}
 +
* {{Z61t}}, {{Z61e}}, {{Z61m}}
  
[[Category:Components]]
+
[[Category:Video Controllers]]

Latest revision as of 13:55, 22 January 2021

Intel video driver

The Intel opensource videodriver is maintained by Intel at intellinuxgraphics.org. Intel releases a new driver once per quarter. The latest stable release is 2.10.

Kernel mode setting (KMS)

KMS (Kernel Mode Setting) as the name suggests moves some video setup functions to the kernel. This should have the following benefits over legacy mode setting

  • increased stability, because it removes the current contention between the X server and the kernel
  • ability to show kernel dump screens even when the X server was running
  • rapid mode switching
  • in theory should not allow the X video driver to hang the system
  • early graphical boot display with seamless login
  • should in the future allow for the X server to run without root privileges
  • larger virtual display size (4096x4096) allowing extended desktop configs (2048x2048 without KMS)

Note that KMS does not eliminate the need for the Intel Xorg driver, it just frees that driver from the hardware setup functions.

Status

Right now KMS is still in heavy development, and officially requires at least kernel 2.6.29 with version 2.7 of the Intel driver. But in reality you should really be running at least the 2.6.30.5 kernel and version 2.8 of the Intel driver.

Issues

The chip has hardware limitations when the display area exceeds 2048 pixels (horizontally or vertically), which is why earlier versions of the driver did not even try to support it. Here are the limitations you may run into when running dual-display Extended desktop.

  • 3D acceleration is limited (compiz will crash, or with some older software stacks may even freeze the system) [1]
  • Xvideo does not work (black or empty video window) [2]

For the Xvideo issue a workaround in the driver is technically possible but not yet implemented.

For now you can work around the Xvideo driver issue by either enabling Metacity compositing or disabling XV overlay.

Enable Metacity Compositing

gconftool-2 --type bool --set /apps/metacity/general/compositing_manager true

This will result in a slower desktop. It can be turned off again with

gconftool-2 --type bool --set /apps/metacity/general/compositing_manager false

Disable XV
This will cause much higher CPU usage, but only during video playback. For Gstreamer enabled apps this can be set globally, for other apps you will have to dig into their settings.

gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink ximagesink

To set it back to the default setting

gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink autovideosink

Here is a script I wrote that automatically sets the correct video output option based on configured displays. It could be launched from a dock hotplug event script (although that would not take care of all the use cases, such as booting with external display already attached)

#!/bin/bash
# This script is to work around an annoying issue on Intel 945 video chips
# https://bugzilla.redhat.com/show_bug.cgi?id=497069
# Basically you cannot have video acceleration if desktop size >2048 pixels in either way
# unless you use Metacity compositing, which is rather slow.
#
# So there are 2 ways to work around the bug, either use Compositing or disable XV.
# We do the later, but only if the current display size > 2048

disablexv=0
for output in $(/usr/bin/xrandr -d :0.0 --verbose| \
                /bin/grep "Screen 0"| \
                /usr/bin/awk '{print $8} {print $10}'| \
                /usr/bin/awk -F, '{print $1}')
  do
   if [ "$output" -gt "2048" ]; then
      disablexv=1
   fi
done

if [ "$disablexv" -eq "1" ]
  then
    /usr/bin/gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink ximagesink
  else
    /usr/bin/gconftool-2 --type string --set /system/gstreamer/0.10/default/videosink autovideosink
fi

Configuration

In this mode, ideally you do not configure any settings through xorg.conf but by using xrandr, or a graphical front-end to RandR such as gnome-display-settings.

Disabling KMS

If KMS causes you problems, you can disable it and return to user mode setting (UMS) by booting with the nomodeset kernel boot option. Note that this is no longer an option starting with version 2.10 of the Intel Xorg driver as UMS support has been dropped.

User mode setting (UMS)

User mode setting means the Intel Xorg driver does the mode setting. This is how mode setting worked before KMS was introduced. Note that starting with the 2.10 version of the Intel Xorg driver UMS support has been removed, leaving just KMS support.

There are two ways to configure the driver, either the 'old fashion' way through xorg.conf, or using xrandr (either from the cmd line or through a display utility such as gnome-display-properties).

xorg.conf

The basic working starting point for the sections relevant to graphics (excluding any manually loaded modules) is:

Section "Device"
        Identifier "Intel Graphics Adapter"
        Driver     "intel"
EndSection

Section "Screen"
        Identifier "Default Screen"
        Device "Intel Graphics Adapter"
EndSection

But with modern distributions even the above is not necessarily needed as the video chipset, resolution, refresh rate, etc will be auto-detected. If you don't like the auto-detected settings, you can use the XRandR command line utility to adjust them dynamically without having to restart the X server! You can always of course get more sophisticated with the xorg.conf file. Just type man intel or read Intel's documentation for more info.

External display with XRandR

Unfortunately, given all the radical changes to the Intel driver, and especially now with KMS, external display support has been rather in flux.

One of the issues encountered is that the maximum virtual screensize depending on driver version (or in the case of KMS, the kernel). This is important if you want to have an extended desktop (dual-display), but not for Mirror mode. If your using KMS, depending on what patches made it into the kernel the maximum virtual screensize is either 2048x2048 or 4096x4096. If your not using KMS, depending on the Intel driver version it will be either 1280x1280 or 2048x2048. 4096x4096 is not possible without KMS, and even then you might have to add this patch http://lists.freedesktop.org/archives/intel-gfx/2009-July/003353.html to your kernel to enable it.

To see what your virtual screensize is, simply run xrandr from a cmdline and look for something like this

Screen 0: minimum 320 x 200, current 1400 x 1050, maximum 4096 x 4096

As you can see in the above example the maximum virtual screensize is 4096x4096 which is ideal, and again, only possible in combination with KMS. If your getting 1280x1280 instead, your running an older Intel driver and have to add the Virtual line as shown below to your xorg.conf

Section "Screen"
     Identifier      "Default Screen"
     Device          "Intel Graphics Adapter"
     SubSection "Display"
            Virtual         2048 2048
     EndSubSection
EndSection

Once you have started X, you should find that your multiple monitors are automatically activated and mirror each other to the extent allowed by their potentially different geometries. If you want them to appear as a "large desktop", you need to adjust their relative position with the XRandR utility. You can get an idea of what you're working with by typing

xrandr -q

This will give you a list of outputs and tell you which ones are connected. The external display port should be called "VGA" or "DVI" (or "VGA1" or "DVI1" in case of KMS) while the builtin LCD should be called "LVDS". (or "LVDS1" in case of KMS). If, for example you want to stack your desktops vertically, you might do something like

xrandr --output LVDS --below VGA

or

xrandr --output VGA --below LVDS

your window manager may treat the two cases differently in terms of where it decides to put things like the toolbar. Ideally, you probably want to put the desired xrandr command someplace that it might get executed before your window manager starts. For example in your ~/.xsession or ~/.xinitrc file.

External VGA port with xorg.conf

While XRandR eliminates the need to deal with xorg.conf in posititioning your screens, you may just want them to be laid out correctly from the outset. In this case, you can specify the default orientation of the displays in the xorg.conf file (which you can still change later with XRandR). This involves adding a "Monitor" section for each physical display output specifying its position. You must also tell the driver which "Monitor" belongs to which output (VGA,LVDS,etc) with the associated "monitor-..." option.

Section "Device"
        Identifier "Intel 945GM"
        Driver     "intel"
	Option     "monitor-VGA"  "External VGA"
	Option     "monitor-LVDS" "Builtin LCD"
EndSection

Section "Monitor"
     Identifier "Builtin LCD"
     Option "Below" "External VGA"
EndSection

Section "Monitor"
     Identifier "External VGA"
     Option "Above" "Builtin LCD"
EndSection

Section "Screen"
        Identifier "Screen Dual"
        Device "Intel 945GM"
	SubSection "Display"
                Virtual 2048 2048
	EndSubSection
EndSection

More info can be found at http://www.intellinuxgraphics.org/dualhead.html

VESA (console) resolution

Largest video resolution, supported by VESA for T60 is 1280x1024. You can set that for console in grub or lilo by adding vga=794 option.

SVideo port

The SVideo Port can be activated using xrandr. run

xrandr --verbose

to see if there is a TV section. The supported TV_FORMATs and other options are listed. The parameters TOP, RIGHT, BOTTOM ans LEFT are used to control the TV-overscan.

#set the TV format
xrandr --output TV --set TV_FORMAT PAL
#set the overscan (adjust fitting your TV)
xrandr --output TV --set TOP 20
xrandr --output TV --set RIGHT 20
xrandr --output TV --set BOTTOM 0
xrandr --output TV --set LEFT 40
#turn on the TV output
xrandr --output TV --auto
#turn off...
xrandr --output TV --off

This works for my Thinkpad R60, running Debian Lenny


DVI port

DVI passthrough is only supported on the T60 in combination with a docking station. Maximum resolution is 2048x1536

Suspend behaviour

  • Required kernel parameters for suspend to ram: none
  • Additional notes:
    • switch to/from X11 to reinitialize display properly (stays black)
    • DO NOT use vbetool to save/restore the video mode, this breakes resume!

ThinkPads this chip may be found in