Intel graphics (Русский)

С тех пор как Intel предоставляет и поддерживает только свободные драйвера, видеокарты Intel graphics работают "из коробки".

Состояние перевода: На этой странице представлен перевод статьи Intel graphics. Дата последней синхронизации: 26 июня 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Всеобъемлющий список моделей видеокарт и соответствующих чипсетов и процессоров доступен в английской Википедии и Gentoo:Intel#Feature support.

Примечание: Основанные на PowerVR видеокарты GMA 3600 серии) не поддерживаются свободными драйверами.

Установка

Установите пакет , который предоставляет драйвер DRI для 3D-ускорения.

  • Для поддержки 32 битных приложений, установите из репозитория multilib.
  • Для DDX драйвера (который обеспечивает 2D-ускорение в Xorg) установите пакет . (Не рекомендуется, см. Примечание ниже.)
  • Для поддержки Vulkan (Ivy Bridge и новее) установите пакет .

Смотрите также Аппаратное ускорение видео.

Примечание: Некоторые (Debian & Ubuntu, Fedora, KDE) рекомендуют не устанавливать xf86-video-intel драйвер, и вместо этого возвращаются на драйвер modesetting для графических процессоров Gen4 и более новых (GMA 3000 из 2006 и новей). Смотрите , , Xorg (Русский)#Установка, и modesetting(4). Однако драйвер modesetting может вызвать такие проблемы, как Chromium Issue 370022 и vsync jitter/video stutter in mpv.

Загрузка

Модуль ядра 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 контролируется параметром ядра . Он используется следующим образом:

Значение enable_gucGuC SubmissionHuC Firmware LoadingПо умолчанию для платформПоддерживается на платформах
0Tiger Lake, Rocket Lake и Pre-Gen12 Все
1Alder Lake-P (Mobile) и новее
2Alder Lake-S (Desktop) Gen9 и новее
3Alder Lake-P (Mobile) и новее

Если GuC submission или HuC firmware loading не включены по умолчанию для вашего GPU, вы можете включить их вручную.

Важно: Ручное включение портит (taint) ядро, даже если эта функция не поддерживается. Более того, включение загрузки прошивок GuC/HuC может вызвать проблемы на некоторых системах; отключите её, если у вас случаются зависания (например, после возвращения из спящего режима).

В первую очередь убедитесь, что пакет установлен.

Если ваша система настроена на поздний запуск 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

Примечание: Этот параметр включен по умолчанию на Skylake и более новых, а также на Bay- и Cherry-Trail начиная с Linux 5.1.

Цель 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

Где это , или .

Примечание: На данный момент эта опция работает только для внутренних мониторов (LVDS, eDP) и не работает для внешних (VGA, DVI, HDMI, DP).

Декодирование 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.

Примечание: Можно сообщать о любой известной версии OpenGL, даже такой, которую GPU не поддерживает. Некоторые приложения могут перестать сбоить, некоторые могут начать сбоить — не стоит устанавливать эту переменную глобально.

Просмотр использования GPU

Смотрите Аппаратное ускорение видео#Проверка.

Управление яркостью и гаммой

Смотрите Backlight (Русский).

Решение проблем

Тиринг

У некоторых пользователей случается тиринг из-за метода ускорения SNA. Чтобы исправить это, включите опцию в файле настроек Xorg:

См. отчёт об ошибке за подробной информацией.

Note:
  • Данная опция может не работать если 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, попробуйте следующее:

Ядро сбоит с ядрами 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.

Смотрите также

gollark: As always, yes.
gollark: If servers do have that, they're wrong.
gollark: It would be HIGHLY efficient. You can use a unikernel thing.
gollark: If you were to install an OS for some silly reason, utilize Arch Linux ARM, or Void Linux, beeoid.
gollark: Oh, yes, how silly of me, just bit-bang ethernet on one of the GPIO pins.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.