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 (184.108.40.206 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" Option "Clone" "true" EndSection
Now you can enable|disable vga out with i810switch crt on|off
Now you can turn on/off the TV-Out by executing the commands
# echo "crt_enable" > /proc/acpi/ibm/video
# echo "crt_disable" > /proc/acpi/ibm/video
Or toggle between them with
# echo "video_switch" > /proc/acpi/ibm/video
See above, but use
Option "MonitorLayout" "TV"
This will only use the TV. At least on a T43 clone mode doesn't work with TV so you should setup a special Server Layout for TV.
Switching to PAL mode is not yet supported.
PAL mode is now possible. First set the svideo as shown above. Once you get a visual output from the television. It should be in black and white. add the following lines to the end of your xorg.conf file:
Section "Monitor" Identifier "TV" Option "TV Format" "PAL" EndSection
Section "Device" Identifier "IGM 900 TVout" Driver "i810" BusID "PCI:0:2:0" Option "MonitorLayout" "TV EndSection
Section "Monitor" Identifier "PAL TV" HorizSync 30-68 VertRefresh 50-120 Mode "720x576" DotClock 42.601 HTimings 720 760 832 944 VTimings 576 577 580 602 Flags "-HSync" "-VSync" EndMode EndSection
Section "Screen" Identifier "TV Screen" Device "IGM 900 TVout" Monitor "PAL TV" DefaultDepth 24 DefaultFbbpp 32 Subsection "Display" Depth 24 FbBpp 32 Modes "720x576" EndSubsection EndSection
Put the next Section below all other Layouts, else it will become the default!
Section "ServerLayout" Identifier "TV" Screen "TV Screen" InputDevice "Generic Keyboard" # edit these lines to your needs InputDevice "IBM Trackpoint" InputDevice "Synaptics Touchpad" EndSection
You can now use the TV on tty8 by executing
# startx :1 -- -layout TV
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. To move applications between screen you need Xinerama see Installing_Ubuntu_on_a_ThinkPad_R60e#Xorg.config_for_two_screens.
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.