Intel Graphics Media Accelerator 900
Linux X.Org driver
This chip is supported by the 'i810' driver as part of the X.Org distribution
For DRI-Support, you may have to install the latest Drivers from DRI Snapshot you need following files:
Extract both in the same Directory and run install.sh
After that restart your X-Server and enjoy OpenGL-Support ;-)
At least on a T43, you also want to add acpi_sleep=s3_bios to the kernel command line (edit your LILO or GRUB configuration file to do that), in order to make sure that Xorg continues to work after a suspend/resume cycle.
For those who is using Gentoo with xorg-x11-6.8.2 and can't get i810 driver working: you can emerge xorg-x11-6.9.0 (unmask it first) and everything will work out of the box (tested with kernel 2.6.15-gentoo-r1).
Warning: Debian users, do not install the DRI Snapshot, it will overwrite several files in several packages and cause you all manner of grief. (not if you build whole Xorg release, for example 6.9.0 which includes DRI and then install it to '/usr/local' - which is the default location if you install with 'make install') If you're using Stable with xorg from sarge-backports (at backports.org), you can install all the required files from that repository, Etch (Testing/Unstable) users can install from the Testing/Unstable repositories at debian.org
Debian success story:It is wise to choose relatively fresh kernel version (220.127.116.11 works for sure). It will contain driver module i915. For DRI to work there should be 4 kernel modules: agpgart, intel_agp, drm and i915. There also must be fresh xorg graphic driver (i810). Xorg 6.9.0 is fresh enough (in older version, namely XFree 4.3 everything compiles with no problems, but after starting X enviroment screen gets black although you can hear sounds). While building Xorg don't 'make install', use checkinstall instead: 'checkinstall --showinstall=yes -D "make install"'. Detailed instructions for setting up and troubleshooting DRI can be found at: http://dri.freedesktop.org/wiki/DriTroubleshooting and http://dri.sourceforge.net/doc/DRIuserguide.html. Remember to set bus mastering. To check whether DRI is running use 'glxinfo'.
Linux Intel driver
You can find Linux drivers for this card on Intel's site. The site offers much information about how to install this card on many distributions, mainly Red Hat and SuSe. The "Intel" driver above is just a snapshot of the Xorg/XFree86 driver.
The display now (Fedora Core 5 - xorg-x11-server-Xorg-1.0.1-9.fc5.1.1) works perfectly using X.Org driver. All you need to do is change xorg.conf frequencies in the monitor section like this:
HorizSync 31.5-90 VertRefresh 50-90
Display on the internal LCD works as long as you set the monitor settings correct.
External VGA port
Works well in clone mode at least. Dualhead is supported.
Section "Device" Identifier "Intel Corporation Intel Default Card" Driver "i810" BusID "PCI:0:2:0" Option "MonitorLayout" "CRT,LFP,CRT+LFP" Option "Clone" "true" EndSection
Now you can enable|disable vga out with i810switch crt on|off
See above, but use
Option "MonitorLayout" "TV,LFP,TV+LFP"
Now you can turn on/off the TV-Out by executing the commands
# echo "dvi_enable" > /proc/acpi/ibm/video
# echo "dvi_disable" > /proc/acpi/ibm/video
Or toggle between them with
# echo "video_switch" > /proc/acpi/ibm/video
This is known to work on a T43.
Problems with high resolution video playback
If you get this error, because you eg try to play HDTV on 1024x768
X11 error: BadAlloc (insufficient resources for operation)
try the following option:
Option "LinearAlloc" "6144"
Setting up two screens
If you have an external monitor, and you want to use both your internal LCD display and your external monitor, you'll have to make some changes in the default /etc/X11/xorg.conf. With the changes below, your X uses both monitors, and you can move your mouse pointer from one screen to the other, let some of your applications run on one screen, and the other applications run on the other. Unfortunately, you can't move the application from one screen to the other. If someone knows how to achieve that, I would appreciate a posting here.
Step 1: Define two devices.
Section "Device" Identifier "Intel Corporation Intel Default Card" Driver "i810" BusID "PCI:0:2:0" Option "MonitorLayout" "CRT,LFP" Screen 0 EndSection
Section "Device" Identifier "Intel Corporation Intel Default Card External" Driver "i810" BusID "PCI:0:2:0" Option "Display" "CRT" Option "MonitorLayout" "CRT,LFP" Screen 1 EndSection
Step 2: Define two monitors. The first one is your external monitor and the second one is your internal LCD. You must adapt the values for HorizSync, VertRefresh and the Display Size for your external monitor! The examples below work for a Samsung Samtron 94B.
Section "Monitor" Identifier "External Monitor" HorizSync 30-81 VertRefresh 56-75 DisplaySize 372 301 Option "DPMS" EndSection
Section "Monitor" Identifier "Generic Monitor" HorizSync 31.5-90 VertRefresh 50-90 Option "DPMS" EndSection
Step 3: Define two screens. Again, check the values for the second screen, they must fit to your external monitor!
Section "Screen" Identifier "Default Screen" Device "Intel Corporation Intel Default Card" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 4 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 8 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 15 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" EndSubSection EndSection
Section "Screen" Identifier "External Screen" Device "Intel Corporation Intel Default Card External" Monitor "External Monitor" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x1024" "1024x768" "800x600" "640x480" EndSubSection EndSection
Step 4: Define the server layout. Define the position of your internal LCD screen (my X41 is LeftOf my external screen)
Section "ServerLayout" Identifier "Default Layout" Screen 0 "External Screen" Screen 1 "Default Screen" LeftOf "External Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Generic Mouse" EndSection
DVI could theoretically be supported if a TMDS transmitter where hooked up to one of the pipes, which is NOT the case on any ThinkPad.
Linux kernel Framebuffer driver
This chip will work with either the 'vesa' or 'intelfb' driver as part of any recent 2.4 or 2.6 kernel.