Intel graphics (Русский)
С тех пор как Intel предоставляет и поддерживает только свободные драйвера, видеокарты Intel graphics работают "из коробки".
Всеобъемлющий список моделей видеокарт и соответствующих чипсетов и процессоров доступен в английской Википедии и Gentoo:Intel#Feature support.
Установка
Установите пакет , который предоставляет драйвер DRI для 3D-ускорения.
- Для поддержки 32 битных приложений, установите из репозитория multilib.
- Для DDX драйвера (который обеспечивает 2D-ускорение в Xorg) установите пакет . (Не рекомендуется, см. Примечание ниже.)
- Для поддержки Vulkan (Ivy Bridge и новее) установите пакет .
Смотрите также Аппаратное ускорение видео.
Загрузка
Модуль ядра Intel должен автоматически загрузиться при запуске системы.
Если он не загрузился, то:
- Убедитесь, что вы не используете параметр ядра
nomodeset
, так как kernel mode-setting обязателен для Intel. - Также проверьте, что модуль не добавлен в чёрный список в каталогах или .
Ранний запуск KMS
Kernel mode setting (KMS) поддерживается чипсетами Intel, использующими драйвер i915 DRM; он обязателен и включен по умолчанию.
Как включить KMS как можно раньше при загрузке, описано в статье Kernel mode setting (Русский)#Ранний запуск KMS.
Загрузка прошивки GuC / HuC
Начиная с 9 поколения графики (Skylake и новее) используется Graphics micro (μ) Controller (GuC) для следующей функциональности :
- Вынос некоторых задач по декодированию медиа на HEVC/H.265 micro (µ) Controller (HuC). Используется только вместе с для аппаратного ускорения видео. Появилось в Gen9.
- Использование GuC для планирования, передачи контекста и управления питанием. Введено в Alder Lake-P (Mobile), в рамках Gen12.
Для использования этих возможностей нужно загрузить прошивку GuC. Что касается поддержки HuC, некоторые функции видео (например, CBR rate control в режиме кодирования с низким энергопотреблением SKL) также требуют загрузки прошивки HuC . Файлы прошивок GuC и HuC предоставляются пакетом .
Функциональность GuC контролируется параметром ядра . Он используется следующим образом:
Если GuC submission или HuC firmware loading не включены по умолчанию для вашего GPU, вы можете включить их вручную.
В первую очередь убедитесь, что пакет установлен.
Если ваша система настроена на поздний запуск KMS (по умолчанию), вы можете вручную включить эти возможности, установив параметр , как описано в статье Параметры ядра.
Если же вы добавили модуль в initramfs (смотрите Kernel mode setting (Русский)#Ранний запуск KMS), то вместо этого вы должны установить эти опции через файл в каталоге , например:
И затем пересобрать образ initramfs.
При следующей загрузке можно проверить, что GuC и HuC включены, с помощью dmesg:
Если они не поддерживаются вашим графическим адаптером, вы увидите:
Также для проверки можно использовать:
# cat /sys/kernel/debug/dri/0/gt/uc/guc_info # cat /sys/kernel/debug/dri/0/gt/uc/huc_info
Настройка Xorg
Для запуска Xorg никакой специальной настройки обычно не требуется.
Если он всё-таки не запускается или вы хотите изменить какие-то настройки драйвера, можно создать примерно такой файл настроек Xorg:
Дополнительные опции добавляются в строках ниже Driver
.
Полный список доступных опций описан в intel(4).
AccelMethod
Согласно :
- Есть несколько движков для ускорения DDX. "UXA" (Архитектура Единого Ускорения) является зрелой базовой, которая была введена для поддержки модели драйвера GEM. Именно в процессе заменены "SNA" (новое ускорение в SandyBridge). Cпособность выбора использовать базовую остается для обратной совместимости.
Вам может понадобиться прописать при создании файла конфигурации. Классическими вариантами являются , (по умолчанию) и .
Если у вас возникают проблемы со стандартным (например, пикселированная графика, повреждённый текст и т.д.), попробуйте использовать вместо него , что можно сделать, добавив следующую строку в файл настроек Xorg:
Option "AccelMethod" "uxa"
Настройка модуля ядра
Модуль ядра можно настраивать через опции модуля. Часть этих опций модуля влияют на энергосбережение.
Список всех опций с кратким их описанием и значения по умолчанию можно получить командой:
$ modinfo -p i915
Чтобы проверить, какие опции в данный момент включены, выполните
# systool -m i915 -av
Вы можете заметить, что многие опции по умолчанию имеют значение -1, что означает использование настроек энергосбережения по умолчанию для чипа. Однако можно настроить более агрессивное энергосбережение с помощью опций модуля.
Сжатие буфера кадров (enable_fbc)
Использование сжатия буфера кадров (Framebuffer compression, FBC) позволяет снизить энергопотребление и уменьшить пропускную способность памяти, необходимую для обновления экрана.
Для включения FBC добавьте параметр ядра или пропишите его в файле /etc/modprobe.d/i915.conf
:
Fastboot
Цель Intel Fastboot — сохранить буфер кадров, настроенный BIOS или загрузчиком, чтобы избежать мерцания до запуска Xorg.
Чтобы включить fastboot на платформах, где он ещё не используется по умолчанию, добавьте в параметры ядра или в /etc/modprobe.d/i915.conf
:
Поддержка виртуализации графики Intel GVT-g
Смотрите Intel GVT-g.
Включение performance support
Начиная с Gen6 (Sandy Bridge более новые), GPU Intel предоставляют счётчики производительности, используемые для предоставления драйверам внутренних данных о производительности. Драйверы и аппаратные регистры называют эту инфраструктуру Observation Architecture («OA») , но в документации Intel она также обозначается как Observability Performance Counters .
По умолчанию использовать observation architecture могут только программы, запущенные с привилегиями CAP_SYS_ADMIN (эквивалент root) или CAP_PERFMON. Большинство приложений будут нормально работать и без них, но будет появляться следующее предупреждение:
MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0
Чтобы включить performance support без использования привилегий (или root), укажите этот параметр с помощью sysctl.
Если установка значения 0 в файле приводит к следующей ошибке при загрузке:
sysctl: cannot stat /proc/sys/dev/i915/perf_stream_paranoid: No such file or directory
то нужно добавить модуль в initramfs для раннего запуска KMS.
Советы и рекомендации
Настройка режима масштабирования
Это может быть полезно для некоторых полноэкранных приложений:
$ xrandr --output LVDS1 --set PANEL_FITTING param
Где одно из следующих значений:
- : разрешение экрана не будет меняться, масштабирование отключено,
full
: масштабировать разрешение экрана для использования всего места на экране или- : максимально масштабировать разрешение экрана, но соблюдать соотношение сторон.
Если это не сработало, попробуйте:
$ xrandr --output LVDS1 --set "scaling mode" param
Где это , или .
Декодирование H.264 на GMA 4500
Пакет предоставляет только декодирование MPEG-2 для некоторых GPU серии GMA 4500. Чтобы проверить, касается ли это вашего конкретного GPU, установите этот драйвер и пакет , а затем проверьте вывод команды на наличие записей, начинающихся с .
Поддержка декодирования H.264 сопровождается в отдельной ветке под названием g45-h264, которой можно воспользоваться, установив пакет libva-intel-driver-g45-h264AUR. Однако имейте в виду, что данная поддержка экспериментальна и в данный момент не ведётся активная разработка. Использование VA-API с этим драйвером на GMA 4500 серии видеокарт уменьшит нагрузку на центральный процессор, однако не гарантируется плавное воспроизведение в сравнении с программным декодированием. Тестирование с использованием mplayer показало что использование vaapi для воспроизведения закодированного в H.264 1080p видео снизило нагрузку на процессор, однако воспроизведение происходит с рывками, в то время как воспроизведение 720p работало удовлетворительно . Это подтверждает и опыт других пользователей . Установка большего размера выделяемой видеопамяти в BIOS приводит к гораздо лучшему воспроизведению с аппаратным декодированием. Даже 1080p h264 работает хорошо после этого. Плавное воспроизведение (1080p/720p) работает также с в сочетании с и libva-intel-driver-g45-h264AUR. С помощью MPV и плагина Firefox "Send to MPV player" можно смотреть видео с аппаратным ускорением на YouTube.
Старый драйвер OpenGL (i965)
В Mesa 20.0 для Gen8+ по умолчанию используется новый OpenGL-драйвер Iris. Некоторые приложения работают с ним быстрее. Вы можете отключить его и вернуться к использованию старого драйвера i965, установив переменную окружения перед запуском любого приложения OpenGL. Эта настройка не влияет на приложения Vulkan.
Переопределение сообщаемой версии OpenGL
Переменная окружения может использоваться для переопределения версии OpenGL, которая будет сообщаться приложению. Например, при установке будет сообщаться версия OpenGL 4.5.
Просмотр использования GPU
Смотрите Аппаратное ускорение видео#Проверка.
Управление яркостью и гаммой
Смотрите Backlight (Русский).
Решение проблем
Тиринг
У некоторых пользователей случается тиринг из-за метода ускорения SNA. Чтобы исправить это, включите опцию в файле настроек Xorg:
См. отчёт об ошибке за подробной информацией.
- Данная опция может не работать если
SwapbuffersWait
выставлена наfalse
. - Данная опция может значительно увеличить выделение памяти и снизить производительность.
- Данная опция может создать дополнительные проблемы в некоторых приложениях, например Super Meat Boy.
- Данная опция не работает с методом ускорения UXA, только с SNA.
- Для Intel UHD 620 или 630 может понадобиться добавить
Option "TripleBuffer" "true"
для работыTearFree
.
Отключение вертикальной синхронизации (VSYNC)
Полезно, когда:
- Chomium/Chrome лагает или тормозит из-за GPU, а с опцией работает гладко
- тест glxgears не показывает желаемой производительности
Драйвер intel использует тройную буферизацию для вертикальной синхронизации, что позволяет без потерь в производительности избежать разрывы кадров. Чтобы отключить вертикальную синхронизацию (например, для "бенчмаркинга") создайте файл .drirc в вашей домашней директории со следующим содержимым:
Не используйте для создания этого файла, так как он выставит неправильное название драйвера.
Проблемы с DRI3
Драйвер по умолчанию использует DRI3. На некоторых системах это может вызвать проблемы, подобные этой. Чтобы переключиться на DRI2, добавьте следующую строку в файл настроек Xorg:
Option "DRI" "2"
Для драйвера это не сработает. Вместо этого укажите переменную окружения .
Повреждение шрифтов и экрана в приложениях GTK (пропадают глифы при возвращении из ждущего/спящего режима)
Если вы столкнулись с проблемой пропадания символов в приложениях GTK, вам может помочь следующее обходное решение. Отредактируйте файл и добавьте следующую строку:
/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer
Смотрите также FreeDesktop bug 88584.
Пустой экран во время загрузки системы на этапе "Loading modules"
Если вы используете "поздний старт" KMS и во время загрузки системы наблюдаете пустой экран, может помочь добавление и в initramfs. Смотрите раздел #Ранний запуск KMS выше.
Либо можно добавить следующее в параметры ядра:
video=SVIDEO-1:d
Если необходим вывод в VGA, попробуйте следующее:
video=VGA-1:1280x800
X зависает/падает с драйверами intel
Некоторые проблемы со сбоем X, зависания GPU, или проблемы с зависанием X, могут быть решены путем отключения использования GPU с опцией :
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "NoAccel" "True" EndSection
Кроме того, попробуйте отключить 3D-ускорение только с опцией :
Добавление неопределённых разрешений
Этот вопрос рассматривается в Xrandr page.
Подсветка не регулируется
Если после возвращения из ждущего режима яркость экрана не регулируется, проверьте свою конфигурацию в соответствии со статьёй Backlight (Русский).
Если проблема остаётся, использование одного из следующих параметров ядра может помочь:
acpi_osi=Linux acpi_osi="!Windows 2012" acpi_osi=
Также убедитесь, что вы не используете fastboot (параметр ядра ), так как он может ломать управление подсветкой.
Искажение/Зависание в Chromium и Firefox
Если у вас проявляются искажения или зависания в Chromium и/или Firefox, попробуйте следующее:
- Используйте AccelMethod "uxa"
- Отключите VSYNC
- Включите опцию TearFree
- Отключите «DRI» и ускорение (проверено на 10 поколении Intel Iris):
Ядро сбоит с ядрами 4.0+ на чипах Broadwell/Core-M
Через несколько секунд после запуска X/Wayland машина зависает и в логе journalctl будет описан крах ядра ссылающийся на графику Intel, как показано ниже:
Jun 16 17:54:03 hostname kernel: BUG: unable to handle kernel NULL pointer dereference at (null) Jun 16 17:54:03 hostname kernel: IP: [< (null)>] (null) ... Jun 16 17:54:03 hostname kernel: CPU: 0 PID: 733 Comm: gnome-shell Tainted: G U O 4.0.5-1-ARCH #1 ... Jun 16 17:54:03 hostname kernel: Call Trace: Jun 16 17:54:03 hostname kernel: [<ffffffffa055cc27>] ? i915_gem_object_sync+0xe7/0x190 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa0579634>] intel_execlists_submission+0x294/0x4c0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa05539fc>] i915_gem_do_execbuffer.isra.12+0xabc/0x1230 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa055d349>] ? i915_gem_object_set_to_cpu_domain+0xa9/0x1f0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffff811ba2ae>] ? __kmalloc+0x2e/0x2a0 Jun 16 17:54:03 hostname kernel: [<ffffffffa0555471>] i915_gem_execbuffer2+0x141/0x2b0 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffffa042fcab>] drm_ioctl+0x1db/0x640 [drm] Jun 16 17:54:03 hostname kernel: [<ffffffffa0555330>] ? i915_gem_execbuffer+0x450/0x450 [i915] Jun 16 17:54:03 hostname kernel: [<ffffffff8122339b>] ? eventfd_ctx_read+0x16b/0x200 Jun 16 17:54:03 hostname kernel: [<ffffffff811ebc36>] do_vfs_ioctl+0x2c6/0x4d0 Jun 16 17:54:03 hostname kernel: [<ffffffff811f6452>] ? __fget+0x72/0xb0 Jun 16 17:54:03 hostname kernel: [<ffffffff811ebec1>] SyS_ioctl+0x81/0xa0 Jun 16 17:54:03 hostname kernel: [<ffffffff8157a589>] system_call_fastpath+0x12/0x17 Jun 16 17:54:03 hostname kernel: Code: Bad RIP value. Jun 16 17:54:03 hostname kernel: RIP [< (null)>] (null)
Это может быть исправлено путем отключения поддержки execlist, которая была изменена по умолчанию на ядре с версии 4.0. Добавьте следующий параметр ядра:
i915.enable_execlists=0
Это сломано как минимум в версии ядра 4.0.5.
Зависание Windows-гостя
Видеовывод гостевой системы Windows в VirtualBox иногда зависает, пока хост не заставит обновить экран (например, перемещением курсора мыши). Удаление опции устраняет эту проблему.
Мерцание экрана
Panel Self Refresh (PSR), функция энергосбережения, используемая iGPU Intel, вызывает мерцание экрана в некоторых случаях FS#49371 . Временным решением является отключение этой функции с помощью параметра ядра .
OpenGL 2.1 с драйвером i915
Обновление mesa с версии 13.x до 17 может сломать поддержку OpenGL 2.1 на GPU Intel третьего поколения (GMA3100, смотрите здесь), как описано в этой статье, откатив его к OpenGL 1.4. Однако это можно восстановить вручную, установив в или такие параметры:
Проблема с KMS: консоль ограничена в небольшую площадь
Один из портов низкого разрешения видео может быть включен во время загрузки системы, в результате чего терминал использует маленькую часть экрана. Чтобы исправить это, отдельно отключите порт с помощью опции модуля i915 в параметрах командной строке ядра в загрузчике. Больше информации об этом доступно на странице Параметры ядра.
Если это не сработало, попробуйте выключить TV1 или VGA1 вместо SVIDEO-1. Имена портов можно узнать с помощью xrandr.
Не работает звук через HDMI на процессорах Haswell
Как описано в этом сообщении об ошибке в Linux, звук не будет выводиться через HDMI при . Для решения проблемы используйте следующий параметр ядра:
intel_iommu=on,igfx_off
Или вообще отключите IOMMU:
intel_iommu=off
Сбои/зависания на маломощных процессорах Intel
Процессоры Intel с низким энергопотреблением и/или процессоры ноутбуков имеют тенденцию к случайному зависанию или сбою из-за проблем с функциями управления питанием, присутствующими в маломощных чипах Intel. Если такой сбой произойдёт, вы не увидите никаких журналов, сообщающих об этой проблеме. Добавление следующих параметров ядра может помочь решить проблему.
intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1
ahci.mobile_lpm_policy=1
исправляет зависание на некоторых ноутбуках Lenovo и Acer из-за проблем с управлением питанием контроллера SATA. Это обходное решение не связано с графикой Intel, но оно решает связанные с этим проблемы. Добавление этого параметра ядра изменяет управление питанием соединения (link power management) со стандартного значения прошивки на максимальную производительность и также решает проблему зависания при изменении яркости дисплея на некоторых машинах Lenovo, но увеличивает потребление энергии в режиме ожидания на 1-1,5 Вт на современных ультрабуках. Для получения дополнительной информации, особенно о других состояниях, обратитесь к списку рассылки ядра Linux и документации Red Hat.
отключает управление питанием GPU. Это позволяет устранить случайные зависания на некоторых системах Intel, в частности на чипах Goldmount и Kaby Lake Refresh. Использование этого параметра приводит к более высокому энергопотреблению и сокращению времени работы от батареи на ноутбуках/ноутбуках.
ограничивает состояние сна процессора, он не позволяет процессору переходить в состояние глубокого сна. Это абсолютно не идеально и приводит к увеличению энергопотребления и снижению времени работы от батареи. Однако это решает проблему случайных зависаний на многих системах Intel. Используйте это, если у вас есть чип Intel Baytrail или Kaby Lake Refresh. Известно, что чипы Intel «Baytrail» произвольно зависают без этого параметра ядра из-за аппаратного дефекта.
Более подробную информацию о параметре max_cstate можно найти в документации ядра, а о cstates в целом — в статье на GitHub.
Если вы попробуете добавить одновременно intel_idle.max_cstate=1 i915.enable_dc=0 ahci.mobile_lpm_policy=1
в надежде исправить частые зависания и это решит проблему, то впоследствии вам следует удалять их по одному, чтобы посмотреть, какие из них действительно помогли решить проблему. Запуск с отключенными cstates и управлением питанием дисплея не рекомендуется, если проблема связана с управлением питанием SATA и ahci.mobile_lpm_policy=1
действительно решает её.
Более подробную информацию можно найти в Linux Reviews.
Поддержка мониторов 165Гц
Для некоторых 165-герцовых мониторов xrandr не отображает опцию 165Hz, и добавление нового режима не помогает. В таком случае смотрите i915-driver-stuck-at-40hz-on-165hz-screen.
Смотрите также
- https://01.org/linuxgraphics/documentation (includes a list of supported hardware)