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. You can use for this:

This should show something like this:

Feature support
A full list of Intel CPU graphic capabilities is here.

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

Otherwise errors such as the following might appear 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
Display Microcontroller firmware provides support for advanced graphics low-power idle states.

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

GuC/HuC firmware
Graphics µController firmware offloads functions from the host driver. HEVC/H.265 µController firmware improves hardware acceleration of media decoding.

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

For Gen9 and Gen9.5 GPUs, GuC/HuC firmware won't load by default. You can load it with kernel parameter  (before 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 causes issues in some systems. Disable it if you experience freezing (for example, after resuming from hibernation).

You can 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  in the kernel source tree:

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

Kernel
Activate the following kernel options:

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

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

X drivers
Portage uses the VIDEO_CARDS variable, which expands into the USE_EXPAND variable, for supporting various graphics cards. Assuming you have already 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 editing, 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. Other major Linux distributions have switched to the modesetting DDX driver (detailed in the section below). Intel has not updated it for quite some time, thus burdening Gentoo's X11 package maintainers.

The Intel DDX driver is faster than the generic modesetting driver as it is able to more closely interact with hardware acceleration of chips using SNA and DRI3.

USE flags
Check the USE flags of :

xorg.conf
To force the Xorg server to use the Intel DDX driver with SNA for hardware acceleration, you can create the following file 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, you can use the following config snippet:

Screen tearing
may be necessary because, as of January 2022, the fix for screen tearing still is not implemented into the X server.

Create the following file:

Other options against screen tearing:


 * 1) Use compiz, or any compositor, for Xorg.
 * 2) Use Sway instead of Xorg (implementation of Wayland protocol, that is tear free by design).

Enable early KMS
To enable Kernel Mode Setting (KMS) as soon as possible, modesetting either needs to be built into the kernel, or be loaded with initramfs if it is built as a module. Distribution Kernels have the Modesetting DDX built as a module. So, in order to get early KMS, those who use it have to create a .conf file in /etc/dracut.conf.d and do the following:

Then run:

Users of gentoo-kernel can also use savedconfig to change modesetting from module to built-in.

VAAPI
Intel GMA X4500HD / G45 / GM45 (late Gen 4) and newer supports VAAPI hardware video acceleration with package.

Newer Intel graphics since Gen 8 (Broadwell) have better support with.

For more details study the dedicated VAAPI article.

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

This will build a working Vulkan driver, but it will not provide a, but a drivers-specific. The package provides.

if libvulkan_intel.so is missing: https://forums.gentoo.org/viewtopic-p-8643078.html#8643078

Tools
provides utilities for debugging.

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

The utility displays the current GPU state in a -like fashion:

You can list all the provided utilities with equery:

Fastboot
The i915 kernel driver reduces flickering caused by modesetting operations during boot time. It does so by avoiding unnecessary modesetting operations. Fastboot is enabled by default on Skylake, Valleyview, Cherry Trail, and newer CPUs.

For CPUs older than Skylake, you can enable fastboot by passing the  parameter to the i915 kernel driver during boot. You can use the built-in kernel command-line or the bootloader's kernel options. GRUB2 users can see the file.

xorg.conf
Choose one of the following configurations.

Classic (Intel DDX) driver :


 * The X server is not aware of i915 or i965. You must addressed them with Driver.

Gen 4+ driver (Mesa's 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 want the classic (Intel CCX) driver, then you must install    manually:


 * You can configure xorg-server to prefer  to 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.

In any case, the main configuration file of the X server is the xorg.conf.

Troubleshooting

 * How to file a bug report
 * The modesetting DDX might cause video out of sync artefacts (when scrolling, or on videos) (see ). If you experience such artefacts, try the DDX driver.
 * How to file a bug report
 * The modesetting DDX might cause video out of sync artefacts (when scrolling, or on videos) (see ). If you experience such artefacts, try the DDX driver.
 * The modesetting DDX might cause video out of sync artefacts (when scrolling, or on videos) (see ). If you experience such artefacts, try the DDX driver.

Screen flickering
Panel Self Refresh (PSR), a power saving feature used by Intel iGPUs, causes flickering in some instances. A temporary solution is to disable this feature using the kernel parameter

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 seems to loop too fast when the driver does not manage vsync (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 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.

You can fix this in kernel versions >= 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 you can do it 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.