intel

From Gentoo Wiki
Jump to: navigation, search

External resources

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)
Note
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 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 3.3 3.0 1.11 Yes intel i965
1) A FOSS implementation is in development under the name Beignet

Installation

Kernel

The following kernel options need to be activated:

KERNEL
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.

Driver

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)

FILE /etc/portage/make.conf Gen 1&2
VIDEO_CARDS="intel"
FILE /etc/portage/make.conf Gen 3
VIDEO_CARDS="intel i915"
FILE /etc/portage/make.conf Gen 4-7
VIDEO_CARDS="intel i965"

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

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

VAAPI

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

Configuration

Permissions

If you have the USE flag acl 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
user:larry:rw-

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.

xorg.conf

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"
EndSection

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.

Troubleshooting

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.

Add
KERNEL command line
video.use_native_backlight=1
to the kernel command line.

See also

External resources

References