Intel graphics

From ArchWiki
Revision as of 22:42, 8 September 2009 by Cdh (talk | contribs) (Smooth Compositing)
Jump to navigation Jump to search

Template:Article summary start Template:Article summary text Template:Article summary heading Template:I18n entry Template:I18n entry

Template:Article summary end


Introduction

For use within the console (without X), see Uvesafb.

Since Intel supports X.Org with open-source drivers, and with X11's improvement over time, things now are essentially just plug-and-play.

Models

It is a popular mistake to think of "Intel 945G" and "Intel GMA 945" as being the same graphics chip with different names. As a matter of fact, the latter does not exist. Intel uses "GMA" to indicate the graphics core, or the GPU. Anything other than that is actually the model of the motherboard chipset, like "915G", "945GM", "G965" or "G45".

The more common GPUs and their corresponding motherboard chipsets are:

  • Intel GMA 900 (910, 915)
  • Intel GMA 950 (945)

The "i810" chipset (again, motherboard; not GPU) is actually really old and was manufactured long before the 9xx product line with which the GMA onboard-graphics branding began. Similarly, alternative names for the 910, 915 and 945 chips may include the i prefix.

See this for a list.

Drivers

  • i810 (Old)
  • intel (New)

Naturally, nobody wants to be backdated. Only if and when you have issues with new stuff (eg. suspend-to-ram) would you have no other choice but to go back to old stuff.

Installation

There are no "free" and "proprietary" versions; there are just two free ones. Do this after you have installed xorg.

# pacman -S xf86-video-intel

OR

# pacman -S xf86-video-i810

Configuration

See Xorg input hotplugging. One thing that you should do is, add your user to the video group. Not having that entry caused me to have serious performance issues.

# gpasswd -a username video

Hotplugging Enabled

You do not want to have a xorg.conf file in this case. Just start the X11 server and enjoy.

Hotplugging Disabled

Use gtf to generate the Xorg "Modeline" values and then edit /etc/X11/xorg.conf, adding (for example) those values to the "Monitor" section:

Section "Monitor"
  Identifier "Monitor0"
  VendorName "GenericVendor"
  Modeline "800x600" 40.12 800 848 968 1056 600 601 605 628 #60Hz
EndSection

Lastly, add the following to the "Device" section, replacing the existing "Driver" value if present:

  VideoRam 229376
  Option "CacheLines" "1980"
  Driver "intel"

Calculating your VideoRam Value

Note: You must calculate your own value for VideoRam based on your hardware. The VideoRam (in Kilobytes) is calculated by the difference between your prefetchable memory available and any non-prefetchable memory required by the card as provided by the output of "lspci -vv". Example:

00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Integrated Graphics Controller (rev 04) (prog-if 00 [VGA controller])

       Subsystem: Dell Device 0179
       Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
       Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
       Latency: 0
       Interrupt: pin A routed to IRQ 16
       Region 0: Memory at dff00000 (32-bit, non-prefetchable) [size=512K]
       Region 1: I/O ports at e898 [size=8]
       Region 2: Memory at c0000000 (32-bit, prefetchable) [size=256M]
       Region 3: Memory at dfec0000 (32-bit, non-prefetchable) [size=256K]
       Expansion ROM at <unassigned> [disabled]
       Capabilities: [d0] Power Management version 2
               Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
               Status: D0 PME-Enable- DSel=0 DScale=0 PME-
       Kernel modules: intelfb

Prefetchable memory is 256M or 262144K, The non-prefetchable is 512K+256K=764K. So the correct value for VideoRam is:

262144 - 764 = 261380

(To convert your prefetchable in megabytes to kilobytes, it's just megabytes * 1024)

Kernel mode setting (KMS)

Taken from forums. (You may also want to look here for another method that allows you to keep your current image.)

KMS is still a bit buggy in 2.6.29, so we didn't enable it by default. It can be enabled by the user, but it is a bit tricky right now. Note that KMS right now only works with chipsets that use the i915 DRM driver. If you use KMS, the default acceleration will be UXA.

'Early' start

You need to change the initramfs, KMS will enable right after the kernel has booted and before the Arch initscripts take over (looks nicer) 1) Add the following line to /etc/modprobe.d/modprobe.conf:

options i915 modeset=1

2) Change the MODULES and FILES lines in /etc/mkinitcpio.conf to look like this (Don't actually add the "...", it stands for what was there before):

MODULES="... intel_agp i915"
FILES="... /etc/modprobe.d/modprobe.conf"

3) Regenerate your initramfs using "mkinitcpio -p kernel26"

4) Remove all "vga=" and "video=" options from your kernel commandline in /boot/grub/menu.lst

You should now get a framebuffer in your native resolution, X will launch faster and console switching will work almost instantly. To disable modesetting again (in case something is broken for you), just comment the line in modprobe.conf again (and if you used method 2, regenerate your initramfs again).

'Late' start

1) Add the following line to /etc/modprobe.d/modprobe.conf:

options i915 modeset=1

2) Change the MODULES line in /etc/rc.conf to look like this (Don't actually add the "...", it stands for what was there before):

MODULES=(... intel_agp i915)

This is important. If you don't do it like this, the i915 driver will be loaded when the X server launches and things will crash. The i915 module is not autoloaded with our kernel configuration (which is weird, but we can't change it).

3) Remove all "vga=" and "video=" options from your kernel commandline in /boot/grub/menu.lst

Tips

2D Performance

If you are using 845G or something like that, and experiencing bad 2D performance (e.g. Slow when scrolling in Firefox) , you can try to install extra/xf86-video-intel-legacy instead of extra/xf86-video-intel.

Usage

Change Resolution

You probably already have a GUI to do it, but anyway:

xrandr -s 1280x1024

You may add it to the ~/.xinitrc file.

Old Information

Smooth Compositing

Xorg configuration is relatively straightforward, but to ensure you have smooth compositing effects from Compiz on the Intel 945GM, you will need to add these lines into your Device section:

As the intel driver does not support XAA anymore you should not add the XAA stuff.

Option      "DRI"                    "True"
Option      "NoDDC"                  "True"
Option      "XAANoOffscreenPixmaps"  "True"
Option      "EnablePageFlip"         "True"
Option      "RenderAccel"            "True"
Option      "AccelMethod"            "XAA"

And ensure that you have the following somewhere:

Section "Extensions"
   Option "Composite" "Enable"
EndSection

Native 1400x1050

Install the driver:

# pacman -S xf86-video-i810

Edit your Template:Filename file:

Section "Device"
   Driver "i810"
...
 Section "Screen"
     SubSection "Display"
               Depth     16
               Modes "1400x1050" "1280x1024" "800x600"
...

Install the resolution tool:

# pacman -S 915resolution

Log out (Template:Keypress + Template:Keypress + Template:Keypress) and back in, then:

915resolution -l

Select the modes that you want to overwrite - like 49 and 45 in this case. If your needs differ, adjust accordingly:

915resolution 45 1280 1024 16
915resolution 49 1400 1050 16

Verify your changes:

915resolution -l

Restart X again. Remember, you will want to load 915resolution at startup:

 # Enter the VBIOS mode to patch
 MODE="49"
 
 # Enter the desired resolution
 RESOLUTION="1400 1050"

Then add "915resolution" to the DAEMONS line in /etc/rc.conf.

External Links