From Gentoo Wiki
Jump to: navigation, search


intel is the open source graphics driver for Intel GMA onboard graphics cards, starting with the Intel 810.

Hardware detection

To choose the right driver, first detect the graphics card. The lspci tool can be used for this task:

root #lspci | grep -i VGA

This should show something like this:

root #lspci | grep -i VGA
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
The lspci output for the graphics controller may refer to GPU generations, whereas the Feature support table below refers to CPU generations. E.g., “3rd Gen” in the example lspci output above corresponds to “Gen7” in the table below.

Feature support

Generation Chipset OpenGL OpenGL ES OpenCL VAAPI VIDEO_CARDS
Gen1 810, 815 1.2 No No No intel
Gen2 i830M, 845G, 855GM, 865G 1.3 No No No intel
Gen3 915G/GM, 945G/GM, G/Q33, Atom D4xx/D5xx/N4xx/N5xx 1.4/1.5 No No No intel i915
Gen4 965G/GM/Q, G/Q35, G41, G/Q43, G/GM/Q45 2.1 2.0 No G/GM45: MPEG2 only[table 1] intel i965
Gen5 Ironlake 2.1 2.0 No Yes intel i965
Gen6 Sandy Bridge 3.3 3.0 No Yes intel i965
Gen7 Ivy Bridge, Valley View, Haswell, Atom Z36xx/Z37xx 3.3 3.0 1.1[table 2] Yes intel i965
  1. Experimental H264 support can be enabled. See Enable_hardware_H264_decoding_on_Intel_G/GM45
  2. A FOSS implementation is in development under the name Beignet



The following kernel options need to be activated:

Processor type and features  --->
    [*] MTRR (Memory Type Range Register) support
Device Drivers  --->
    Graphics support  --->
        <*> /dev/agpgart (AGP Support)  --->
             <*> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
        <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
            <*> Intel 8xx/9xx/G3x/G4x/HD Graphics
            [*]   Enable modesetting on intel by default
            [*]   Enable legacy fbdev support for the modesetting intel driver

The legacy fbdev support is required since kernel 3.14.14 at least for i915 (CONFIG_DRM_I915_FBDEV=y).[1][2] For hybrid Intel/AMD system, follow also the steps of radeon (opensource) or fglrx (closed binary) drivers.


Portage uses the VIDEO_CARDS variable for enabling support for various graphics cards in packages. Setting VIDEO_CARDS in /etc/portage/make.conf will pull in the correct video driver: (see the feature matrix)

VIDEO_CARDS="intel i915"
VIDEO_CARDS="intel i965"

"intel" is for x11-base/xorg-drivers and i915 resp. i965 are for media-libs/mesa.

Check the USE flags of x11-drivers/xf86-video-intel:

USE flag (what is that?) Default Recommended Description
dri Yes Yes Enable direct rendering: used for accelerated 3D and some 2D, like DMA
glamor No Enable Glamor OpenGL 2D acceleration
sna Yes Yes Enable SandyBridge's New Acceleration (useful on all chipsets, not just SandyBridge)
udev Yes Yes Enable virtual/udev integration (device discovery, power and storage device support, etc)
uxa No Enable UMA Acceleration Architecture
xvmc No Enables X-Video Motion Compensation support

After making any changes update the system so the changes take effect by running the emerge command with the --changed-use option:

root #emerge --ask --changed-use --deep @world


Intel GMA X4500HD / G45 / GM45 and newer supports VAAPI hardware video acceleration.



If you have the acl USE flag enabled globally and are using ConsoleKit (i.e you're using a Desktop profile) permissions to video cards will be handled automatically. You can check the permissions using getfacl:

user $getfacl /dev/dri/card0 | grep larry

A broader solution is to add the user you want to be able to access the video card to the video group:

root #gpasswd -a larry video

Note that you will still be able to run X without permission to the DRI subsystem, but usually not with acceleration enabled.


As xorg is not aware of i915 or i965 they will need to be addressed as Driver intel.

FILE /etc/X11/xorg.conf.d/device_no_vesa.conf
# Remove errors regarding modules "fbdev" and "vesa"
Section "Device"
        Identifier "Device0"
        Driver "intel"
	Option "Monitor-LVDS" "Internal Panel"
	Option "Monitor-VGA" "External VGA Monitor"

The X server is designed to work out-of-the-box, with no need to manually edit X.Org's configuration files. It should detect and configure devices such as displays, keyboards, and mice.

However, the main configuration file of the X server is the xorg.conf.


html5/vaapi gpu hangs

If your GPU hangs up when watching vaapi-accelerated video e.g. on youtube, you can try enabling your IOMMU:

Device Drivers  --->
    [*] IOMMU Hardware Support --->
        [*] Support for Intel IOMMU using DMA Remapping Devices
        [*]   Enable Intel DMA Remapping Devices by default

Related upstream bug report.

KDM freezes

A workaround is to set TerminateServer=true in all sections of the file /usr/share/config/kdm/kdmrc, which starts with X-.

Black screen

According to this Debian wiki, CONFIG_FRAMEBUFFER_CONSOLE must be set to y (aka built-in to the kernel). Otherwise, it is possible to always have a black screen unless nomodeset is passed to the kernel, thus disabling kernel mode setting (KMS).

acpi_osi="Linux" can be passed to the kernel command line to try to solve this kind of issue. This is usually done through the bootloader.

Brightness doesn't change with keyboard shortcuts

First, make sure vendor compatibility is on in the kernel configuration. Toshiba for Toshiba, etc.

If it is, or when the brightness buttons are working, the issue is that the kernel can not detect where the brightness control is located.

Luckily, this is easy enough to modify, as long as the kernel version is 3.13.x and up.

KERNEL command line
to the kernel command line.

See also

  • Xorg/Guide - A guide on how to configure Xorg.
  • hprofile - Switching between other graphics drivers and intel.

External resources