Difference between revisions of "Intel Graphics Media Accelerator 900"

From ThinkWiki
Jump to: navigation, search
(SVideo port: Clone Mode doesn't seem to work with TV)
m (Setting up two screens: Xinerama)
Line 137: Line 137:
 
==== Setting up two screens ====
 
==== 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.
 
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.
 
Step 1: Define two devices.

Revision as of 01:29, 6 May 2007

Intel Graphics Media Accelerator 900

This is an Intel video adapter

Features

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:
common-<CurrentVersion>-linux.i386.tar.bz2
i915-<CurrentVersion>-linux.tar.bz2
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 (2.6.17.13 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

ThinkPad LCD

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.

/etc/X11/xorg.conf

       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

or

# echo "crt_disable" > /proc/acpi/ibm/video

Or toggle between them with

# echo "video_switch" > /proc/acpi/ibm/video

SVideo port

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.

Example setup:

       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
Hint:
If you want to use all 3 Displays together, try "CRT+TV,LFP" as value for MonitorLayout.

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


Hint:
Of course you must have a proper Section "Files", a Section "Modules", a Section "InputDevice" with Identifier "Generic Keyboard", a Section "InputDevice" with Identifier "Configured Mouse", a Section "InputDevice" with Identifier "Generic Mouse" before you define the devices, and a Section "DRI" after the ServerLayout definition.

DVI port

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.

ThinkPads this chip may be found in