Intel

intel is Article description::the open source graphics driver for Intel GMA on-board graphics cards, starting with the Intel 810.

Hardware detection
To choose the right driver, first detect the graphics card. can be used for this task:

This should show something like this:

Feature support
A full list of Intel CPU graphic capabilities can be found here.

Firmware
Systems using Skylake, Broxton or newer Intel graphics will need to install additional firmware from package:

Otherwise errors such as the following might be visible in : kernel: i915 0000:00:02.0: Direct firmware load for i915/skl_dmc_ver1_27.bin failed with error -2 kernel: i915 0000:00:02.0: Failed to load DMC firmware, disabling runtime power management.

DMC firmware
To configure to build the DMC firmware into the kernel binary, in this case, :

GuC/HuC firmware
For Gen11+ GPUs, GuC/HuC firmware are loaded by default since Linux 5.4 (see commit).

For Gen9 and Gen9.5 GPUs, GuC/HuC firmware won't be loaded by default, it is possible to enable loading of the firmware using kernel parameter  (prior to kernel 4.16) or   (since kernel 4.16). HuC firmware (and GuC as a dependent) is needed for AVC/HEVC/VP9 low power encoding bitrate control, including CBR, VBR, etc.. Enabling GuC/HuC firmware loading could cause issues on some systems, disable it if you experience freezing (for example, after resuming from hibernation).

To identify the firmware file name, either by checking : kernel: [   1.294069] [drm] GuC: Failed to fetch firmware i915/kbl_guc_ver9_33.bin (error -2) kernel: [   1.294079] [drm] HuC: Failed to fetch firmware i915/kbl_huc_ver01_07_1398.bin (error -2)

Or by grepping the MODULE_FIRMWARE in kernel source tree:

Then configure to build the firmware into the kernel as above.

Kernel
The following kernel options need to be activated:

The legacy fbdev support is required since kernel 3.14.14 at least for i915. For hybrid Intel/AMD system, follow also the steps of radeon (open source) or fglrx (closed binary) drivers.

Since kernel version 4.4 the driver has been moved and the legacy fbdev support is now.

X drivers
Portage uses the VIDEO_CARDS variable, which expands into the USE_EXPAND variable, for enabling support for various graphics cards. Assuming the package has already been installed, setting the VIDEO_CARDS variable in  will pull in the correct video driver:

The  value is for. The  and   and   values are for media-libs/mesa.

After making any modifications, update the system so the changes take effect by passing the   options to :

Those wishing to not accept the Intel graphic driver defaults in the main repository can read on into the sub-sections below.

Intel DDX
Before proceeding with the Intel DDX driver, note that this driver has been slowly deprecating for several years. This has caused other major Linux distributions to begin to move toward the modesetting DDX driver (detailed in the section below). Although presently faster than modesetting driver, there has been no official package release from Intel upstream for their DDX driver for quite some time, and is therefore causing a maintenance burden on Gentoo's X11 package maintainers.

With this being stated, the Intel DDX driver has slight speed advantages over the generic modesetting driver as it is able to more closely interact with hardware acceleration present in chips utilizing SNA and DRI3.

USE flags
Check the USE flags of :

xorg.conf
To force Xorg server to use the Intel DDX driver with SNA for hardware accelleration, the following file can be created in :

Modesetting DDX
As mentioned above, the modesetting DDX driver is now the default driver on newer Intel graphics chipsets for Gentoo. This driver uses GLAMOR to accelerate 2D graphical over Mesa (the open source OpenGL implementation). As of  this has become the default for Gentoo.

As of  GLAMOR support is enabled unless the   USE flag is enabled. No additional steps or configuration are necessary.

xorg.conf
If it's necessary to force Xorg to load the modesetting driver the following config snippet can be used:

Note, if both and  are defined in, the X server will attempt to load the files in alpha-numeric order.

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

Vulkan
As of November 15th, 2016 Vulkan is supported in the main ebuild repository for Intel Core processors using the i965 mesa driver.

Please note, that this will build a working Vulkan driver, but it will not provide a, but a drivers-specific. The package provides.

Misc
Various utilities useful for debugging are provided by package.

For example GPU min/max/current frequency can by displayed by:

All provided commands can be discovered by listing the provided files with equery:

Fastboot
The i915 kernel driver includes the ability reduce flickering caused by modesetting operations during boot time. It does so by avoiding unnecessary modesetting operations when they are not needed. Fastboot is enabled by default on Skylake, Valleyview, Cherry Trail, and newer CPUs.

For CPUs older than Skylake, fastboot can be enabled by passing the  parameter to the i915 kernel driver during boot. This can either be set using the built-in kernel command-line or via a bootloader's kernel options. GRUB2 users can see the file.

xorg.conf
Choose one of the following configuration options:


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




 * Alternate Driver for Gen 4+ -- Modesetting




 * As of xorg-server-1.17, the modesetting driver was moved into . This driver has more features than the classic driver, such as the ability to support acceleration via GLAMOR.


 * This configuration is the default for  beginning with x11-base/xorg-drivers-1.19. If you wish to use the classic driver, you will need to install  manually:


 * xorg-server is easily configured to prefer  over the older   driver.



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

 * How to file a bug report
 * How to file a bug report
 * How to file a bug report
 * How to file a bug report

HTML5/VAAPI GPU hangs
If the GPU hangs up when watching VAAPI-accelerated video (e.g. on YouTube) try enabling IOMMU:

Related upstream bug report.

KDM freezes
A workaround is to set  in all sections of the file, which starts with.

KDE's plasma eating CPU
If is always consuming several percent of CPU, perhaps this is related to a vsync problem. QT Quick Animation seem to loop too fast when vsync is not managed by the driver (Reference).

A way to enable vsync with SNA is to enable the  option in :

See also this Linux Mint tutorial.

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  is passed to the kernel, thus disabling kernel mode setting (KMS).   can be passed to the kernel command line to try to solve this kind of issue. This is usually done through the bootloader.
 * Kernel with version 4.2 or newer is needed with some 8th generation chipsets.

Brightness does not 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 < 4.2.

Add the following argument to the kernel command-line:

On kernels >= 4.2, the option is no longer available. You should use one of the following instead (experiment to see which works on your system):

Do your key bindings map to actions viewable in xev? Can you adjust the screen brightness using ? You can always do a work around via a keyboard remapping. For LXDE it can be done via:

White or missing textures in games
This is most likely caused by missing S3TC support. Possible solutions:
 * Either set  environment variable to , or enable this option in  (using ):


 * Install . On amd64, it might be a good idea to enable 32-bit build of this library since many games might be shipping 32-bit executables:

External resources

 * https://www.x.org/wiki/IntelGraphicsDriver/ - Intel at the X.Org wiki.
 * https://keyj.emphy.de/files/linuxgraphics_en.pdf - Linux Graphics Demystified.