Intel graphics

From ArchWiki
Revision as of 08:13, 10 July 2010 by Cantabile (talk | contribs) (added the bit about blank screen)
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start Template:Article summary text Template:Article summary end

For use within the console without X, see Uvesafb.

Introduction

Since Intel provides and supports open source drivers, Intel graphics are now essentially 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.

Driver

  • xf86-video-intel

Installation

Prerequisite: Xorg

# pacman -S xf86-video-intel

Configuration

There is no need for any kind of configuration ever since HAL has taken over. See Xorg input hotplugging for more information.

One thing that you should have already done from the start (not a configuration step per se) is to add your user to the relevant group:

# gpasswd -a username video

KMS (Kernel Mode Setting)

KMS is supported by Intel chipsets that use the i915 DRM driver and is now enabled by default as of kernel v2.6.32. Since xf86-video-intel 2.10, using KMS is mandatory. KMS is typically initialized after the kernel is bootstrapped. It is possible however to enable KMS during bootstrap itself, allowing the entire boot process to run at native resolution.

Note: When using KMS, you must remove any references to "vga" or "video" from the kernel line in /boot/grub/menu.lst

Add the Template:Codeline and Template:Codeline modules to the MODULES line in /etc/mkinitcpio.conf:

MODULES="intel_agp i915"

Now, regenerate the initramfs:

# mkinitcpio -p kernel26

If you ever want to disable KMS, you can change the Template:Codeline option to 0 in GRUB's Template:Filename, without rebuilding anything:

# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/... i915.modeset=0
initrd /boot/kernel26.img

For disabling it without having to edit Template:Filename, turn on the machine and when you see GRUB's screen, hit a key to disable the timeout. Select the kernel you want to boot (probably the one already selected) and hit "e" for "edit". Now select the line starting with "kernel" and hit again "e" for editing. You can now add the Template:Codeline option and disable KMS by setting it to 0. Press enter and then "b" to boot. Note that this will be temporary, so it will be enabled again upon rebooting.

Note: Downgrade to kernel 2.6.31.6-1 or disable modesetting with kernel boot parameter if you get a blank screen during boot process with Intel GMA 950

See also

Tips and tricks

Setting scaling mode

This can be useful for some full screen applications.

xrandr --output LVDS1 --set PANEL_FITTING param

where param can be

  • center: resolution will be kept exactly as defined, no scaling will be made,
  • full: scale the resolution so it uses the entire screen or
  • full_aspect: scale the resolution to the maximum possible but keep the aspect ratio.

If it does not work, you can try

xrandr --output LVDS1 --set "scaling mode" param

where param is one of "Full", "Center" or "Full aspect".

Workaround for bug with opening laptop lid

Solution #1

On laptops with Intel video chip you can face the issue with not working X display after you close lid to make the machine suspend and than open it back. See bug https://bugs.freedesktop.org/show_bug.cgi?id=24970 for more details.

Here is a way to work it around. The recipe is based on similar one from Fedora "Common bugs" page: https://fedoraproject.org/wiki/Common_F12_bugs#Display_cannot_be_reactivated_if_it_enters_sleep_mode_with_laptop_lid_closed

Note: This workaround will work only in single-user system, you can make it work for multiple users by adding procedure of checking which user put machine to suspend state.

Install acpid:

Template:Codeline

After that place acpid before hal in DAEMONS section of your Template:Filename file.

Than create a file Template:Filename with the following contents:

 #!/bin/bash
 PATH="/bin:/usr/bin:/sbin:/usr/sbin"
 export DISPLAY=:0.0
 sleep 10 
 if grep open /proc/acpi/button/lid/LID/state
 then
   su "$(getent passwd $UID | cut -d: -f1)" -c "xrandr --output LVDS1 --off" 
   su "$(getent passwd $UID | cut -d: -f1)" -c "xrandr --output LVDS1 --auto" 
 fi


where $UID is UID of the user who put laptop to suspend mode (you). The main difference from original Fedora method is sleep operator usage. Without it the lid button state will not be updated by the moment it checking by Template:Filename script, in some cases smaller delay (for example 3 seconds) will work when running on AC power and will not work with battery power, 10 seconds works always. Do not forget to make the script executable:

 #chmod +x /etc/acpi/actions/reset-display.sh

Than we need to assign the action to LID switch event. Add the following line to Template:Filename file under button/lid) code:

 /etc/acpi/actions/reset-display.sh

Now you can reboot your laptop or just restart daemons in the following order:

 #/etc/rc.d/hal stop
 #/etc/rc.d/acpid start
 #/etc/rc.d/hal start

Solution #2

An easier, less reliable workaround is to simply re-suspend the computer and wake it again. This will often correct the glitch and return the X desktop to a working state.

KMS Issue: console is limited to small area

One of the low-resolution video ports may be enabled on boot which is causing the terminal to utilize a small area of the screen. To fix, explicitly disable the port with an i915 module setting. For example, add the following to the end of the kernel line in /boot/grub/menu.lst:

 video=SVIDEO-1:d

If that doesn't work, you may also try disabling TV1 or VGA1 instead of SVIDEO-1.

Troubleshooting

Glxgears shows low performance results

If you run glxgears in order to check your system's graphics' performance, you may notice that glxgears shows results around 60 FPS:

...
311 frames in 5.0 seconds = 61.973 FPS
311 frames in 5.0 seconds = 62.064 FPS
311 frames in 5.0 seconds = 62.026 FPS
...

That is happening not because there is a performance regression, but because your system graphics are using VSync, that means, your screen's native frames per second.

Note: glxgears is not a benchmark for performance comparison between two or more systems.

Blank screen during boot, when "Loading modules"

If you're using "late start" kms and the screen goes blank when "Loading modules", it may help to add i915 and intel_agp to the initramfs. See KMS above.