Intel graphics (Русский)

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

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

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

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

Установка

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

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

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

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

Загрузка

Модуль ядра Intel должен автоматически загрузиться при запуске системы.

Если он не загрузился, то:

  • Убедитесь, что вы не используете параметр ядра nomodeset, так как kernel mode-setting обязателен для Intel.
  • Также проверьте, что модуль не добавлен в чёрный список в каталогах /etc/modprobe.d/ или /usr/lib/modprobe.d/.

Ранний запуск KMS

Kernel mode setting (KMS) поддерживается чипсетами Intel, использующими драйвер i915 DRM; он обязателен и включен по умолчанию.

Как включить KMS как можно раньше при загрузке, описано в статье Kernel mode setting (Русский)#Ранний запуск KMS.

Загрузка прошивки GuC / HuC

Начиная с 9 поколения графики (Skylake и новее) используется Graphics micro (μ) Controller (GuC) для следующей функциональности [3][устаревшая ссылка 2023-09-16 ⓘ]:

  • Вынос некоторых задач по декодированию медиа на HEVC/H.265 micro (µ) Controller (HuC). Используется только вместе с intel-media-driver для аппаратного ускорения видео. Появилось в Gen9.
  • Использование GuC для планирования, передачи контекста и управления питанием. Введено в Alder Lake-P (Mobile), в рамках Gen12.

Для использования этих возможностей нужно загрузить прошивку GuC. Что касается поддержки HuC, некоторые функции видео (например, CBR rate control в режиме кодирования с низким энергопотреблением SKL) также требуют загрузки прошивки HuC [4]. Файлы прошивок GuC и HuC предоставляются пакетом linux-firmware.

Функциональность GuC контролируется параметром ядра i915.enable_guc. Он используется следующим образом:

Значение enable_guc GuC Submission HuC Firmware Loading По умолчанию для платформ Поддерживается на платформах
0 Нет Нет Tiger Lake, Rocket Lake и Pre-Gen12 [5] Все
1 Да Нет Alder Lake-P (Mobile) и новее
2 Нет Да Alder Lake-S (Desktop) [6] [7] Gen9 и новее
3 Да Да Alder Lake-P (Mobile) и новее

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

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

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

Если ваша система настроена на поздний запуск KMS (по умолчанию), вы можете вручную включить эти возможности, установив параметр i915.enable_guc, как описано в статье Параметры ядра.

Если же вы добавили модуль i915 в initramfs (смотрите Kernel mode setting (Русский)#Ранний запуск KMS), то вместо этого вы должны установить эти опции через файл в каталоге /etc/modprobe.d/, например:

/etc/modprobe.d/i915.conf
options i915 enable_guc=2

И затем пересобрать образ initramfs.

При следующей загрузке можно проверить, что GuC и HuC включены, с помощью dmesg:

# dmesg
[30130.586970] i915 0000:00:02.0: [drm] GuC firmware i915/icl_guc_33.0.0.bin version 33.0 submission:disabled
[30130.586973] i915 0000:00:02.0: [drm] HuC firmware i915/icl_huc_9.0.0.bin version 9.0 authenticated:yes

Если они не поддерживаются вашим графическим адаптером, вы увидите:

# dmesg
[    0.571339] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - GuC is not supported!
[    0.571340] i915 0000:00:02.0: [drm] Incompatible option enable_guc=2 - HuC is not supported!

Также для проверки можно использовать:

# cat /sys/kernel/debug/dri/0/gt/uc/guc_info
# cat /sys/kernel/debug/dri/0/gt/uc/huc_info
Примечание: Использование виртуализации графики GVT-g путём установки enable_gvt=1 не поддерживается в linux 4.20.11, если GuC/HuC тоже включен. Модуль i915 не сможет инициализироваться, что будет показано в системном журнале.
# journalctl
... kernel: [drm:intel_gvt_init [i915]] *ERROR* i915 GVT-g loading failed due to Graphics virtualization is not yet supported with GuC submission
... kernel: i915 0000:00:02.0: [drm:i915_driver_load [i915]] Device initialization failed (-5)
... kernel: i915: probe of 0000:00:02.0 failed with error -5
... kernel: snd_hda_intel 0000:00:1f.3: failed to add i915 component master (-19)

Обратите внимание, что соответствующее предупреждение не является фатальным, как объясняется в [8]:

# journalctl -b 
... kernel: i915 0000:00:02.0: Direct firmware load for i915/gvt/vid_0x8086_did_0x5916_rid_0x02.golden_hw_state failed with error -2

Настройка Xorg

Примечание: Описанные ниже настройки требуют наличия драйвера xf86-video-intel.

Для запуска Xorg никакой специальной настройки обычно не требуется.

Если он всё-таки не запускается или вы хотите изменить какие-то настройки драйвера, можно создать примерно такой файл настроек Xorg:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
  Identifier "Intel Graphics"
  Driver "intel"
EndSection

Дополнительные опции добавляются в строках ниже Driver. Полный список доступных опций описан в intel(4).

Примечание: Возможно, понадобится добавить больше секций Device, чем указано выше. Это будет указано там, где это необходимо.

AccelMethod

Согласно intel(4) § CONFIGURATION DETAILS:

Есть несколько движков для ускорения DDX. "UXA" (Архитектура Единого Ускорения) является зрелой базовой, которая была введена для поддержки модели драйвера GEM. Именно в процессе заменены "SNA" (новое ускорение в SandyBridge). Cпособность выбора использовать базовую остается для обратной совместимости.

Вам может понадобиться прописать Option "AccelMethod" при создании файла конфигурации. Классическими вариантами являются UXA, SNA (по умолчанию) и BLT.

Если у вас возникают проблемы со стандартным SNA (например, пикселированная графика, повреждённый текст и т.д.), попробуйте использовать вместо него UXA, что можно сделать, добавив следующую строку в файл настроек Xorg:

Option      "AccelMethod"  "uxa"

Настройка модуля ядра

Модуль ядра i915 можно настраивать через опции модуля. Часть этих опций модуля влияют на энергосбережение.

Список всех опций с кратким их описанием и значения по умолчанию можно получить командой:

$ modinfo -p i915

Чтобы проверить, какие опции в данный момент включены, выполните

# systool -m i915 -av

Вы можете заметить, что многие опции по умолчанию имеют значение -1, что означает использование настроек энергосбережения по умолчанию для чипа. Однако можно настроить более агрессивное энергосбережение с помощью опций модуля.

Примечание: Использование нестандартных настроек пометит ядро как испорченное (tainted), начиная с Linux 3.18 и далее. Это означает, что использование опций, отличных от настроек по умолчанию для чипа, считается экспериментальным и не поддерживается разработчиками.

Сжатие буфера кадров (enable_fbc)

Использование сжатия буфера кадров (Framebuffer compression, FBC) позволяет снизить энергопотребление и уменьшить пропускную способность памяти, необходимую для обновления экрана.

Для включения FBC добавьте параметр ядра i915.enable_fbc=1 или пропишите его в файле /etc/modprobe.d/i915.conf:

/etc/modprobe.d/i915.conf
options i915 enable_fbc=1
Примечание: Сжатие буфера кадров может работать нестабильно или не работать на старых GPU Intel до Sandy Bridge (поколение 6). Его использование приведёт к появлению примерно таких сообщений в системном журнале:
kernel: drm: not enough stolen space for compressed buffer, disabling.

Или таких:

# dmesg
[ 2360.475430] [drm] not enough stolen space for compressed buffer (need 4325376 bytes), disabling
[ 2360.475437] [drm] hint: you may be able to increase stolen memory size in the BIOS to avoid this

Решением является отключение сжатия буфера кадров, что слегка увеличит энергопотребление (около 0,06 Вт). Для его отключения добавьте i915.enable_fbc=0 в параметры ядра. Более подробную информацию о результатах отключения сжатия можно найти здесь.

Fastboot

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

Цель Intel Fastboot — сохранить буфер кадров, настроенный BIOS или загрузчиком, чтобы избежать мерцания до запуска Xorg.[12][13]

Чтобы включить fastboot на платформах, где он ещё не используется по умолчанию, добавьте i915.fastboot=1 в параметры ядра или в /etc/modprobe.d/i915.conf:

/etc/modprobe.d/i915.conf
options i915 fastboot=1

Поддержка виртуализации графики Intel GVT-g

Смотрите Intel GVT-g.

Включение performance support

Начиная с Gen6 (Sandy Bridge более новые), GPU Intel предоставляют счётчики производительности, используемые для предоставления драйверам внутренних данных о производительности. Драйверы и аппаратные регистры называют эту инфраструктуру Observation Architecture («OA») [14], но в документации Intel она также обозначается как Observability Performance Counters [15][устаревшая ссылка 2023-09-16 ⓘ] [16][устаревшая ссылка 2023-09-16 ⓘ].

По умолчанию использовать observation architecture могут только программы, запущенные с привилегиями CAP_SYS_ADMIN (эквивалент root) или CAP_PERFMON. [17] [18] Большинство приложений будут нормально работать и без них, но будет появляться следующее предупреждение:

MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0

Чтобы включить performance support без использования привилегий (или root), укажите этот параметр с помощью sysctl.

Важно: Ограничивающие значения по умолчанию для опций perf_event_paranoid используются потому, что существует риск, связанный с предоставлением приложениям доступа к данным производительности [19]. При этом dev.i915.perf_stream_paranoid влияет только на доступ к счётчикам производительности GPU, что несёт меньший риск, чем, например, регистры архитектурного контекста выполнения CPU.

Если установка значения 0 в файле /etc/sysctl.d/*.conf приводит к следующей ошибке при загрузке:

sysctl: cannot stat /proc/sys/dev/i915/perf_stream_paranoid: No such file or directory

то нужно добавить модуль i915 в initramfs для раннего запуска KMS.

Советы и рекомендации

Настройка режима масштабирования

Это может быть полезно для некоторых полноэкранных приложений:

$ xrandr --output LVDS1 --set PANEL_FITTING param

Где param одно из следующих значений:

  • center: разрешение экрана не будет меняться, масштабирование отключено,
  • full: масштабировать разрешение экрана для использования всего места на экране или
  • full_aspect: максимально масштабировать разрешение экрана, но соблюдать соотношение сторон.

Если это не сработало, попробуйте:

$ xrandr --output LVDS1 --set "scaling mode" param

Где param это "Full", "Center" или "Full aspect".

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

Декодирование H.264 на GMA 4500

Пакет libva-intel-driver предоставляет только декодирование MPEG-2 для некоторых GPU серии GMA 4500. Чтобы проверить, касается ли это вашего конкретного GPU, установите этот драйвер и пакет libva-utils, а затем проверьте вывод команды vainfo на наличие записей, начинающихся с VAProfileH264.

Поддержка декодирования H.264 сопровождается в отдельной ветке под названием g45-h264, которой можно воспользоваться, установив пакет libva-intel-driver-g45-h264AUR. Однако имейте в виду, что данная поддержка экспериментальна и в данный момент не ведётся активная разработка. Использование VA-API с этим драйвером на GMA 4500 серии видеокарт уменьшит нагрузку на центральный процессор, однако не гарантируется плавное воспроизведение в сравнении с программным декодированием. Тестирование с использованием mplayer показало что использование vaapi для воспроизведения закодированного в H.264 1080p видео снизило нагрузку на процессор, однако воспроизведение происходит с рывками, в то время как воспроизведение 720p работало удовлетворительно [21]. Это подтверждает и опыт других пользователей [22]. Установка большего размера выделяемой видеопамяти в BIOS приводит к гораздо лучшему воспроизведению с аппаратным декодированием. Даже 1080p h264 работает хорошо после этого[23]. Плавное воспроизведение (1080p/720p) работает также с mpv-gitAUR в сочетании с ffmpeg-gitAUR и libva-intel-driver-g45-h264AUR. С помощью MPV и плагина Firefox "Send to MPV player"[24] можно смотреть видео с аппаратным ускорением на YouTube.

Старый драйвер OpenGL (i965)

В Mesa 20.0 для Gen8+ по умолчанию используется новый OpenGL-драйвер Iris. Некоторые приложения работают с ним быстрее. Вы можете отключить его и вернуться к использованию старого драйвера i965, установив переменную окружения MESA_LOADER_DRIVER_OVERRIDE=i965 перед запуском любого приложения OpenGL. Эта настройка не влияет на приложения Vulkan.

Примечание: О багах и регрессиях, связанных с драйвером Iris, можно сообщать здесь.

Переопределение сообщаемой версии OpenGL

Переменная окружения MESA_GL_VERSION_OVERRIDE может использоваться для переопределения версии OpenGL, которая будет сообщаться приложению. Например, при установке MESA_GL_VERSION_OVERRIDE=4.5 будет сообщаться версия OpenGL 4.5.

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

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

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

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

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

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

Тиринг

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

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "TearFree"    "true"
EndSection

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

Note:
  • Данная опция может не работать если SwapbuffersWait выставлена на false.
  • Данная опция может значительно увеличить выделение памяти и снизить производительность. [25]
  • Данная опция может создать дополнительные проблемы в некоторых приложениях, например Super Meat Boy.
  • Данная опция не работает с методом ускорения UXA, только с SNA.
  • Для Intel UHD 620 или 630 может понадобиться добавить Option "TripleBuffer" "true" для работы TearFree.

Отключение вертикальной синхронизации (VSYNC)

Полезно, когда:

  • Chromium/Chrome лагает или тормозит из-за GPU, а с опцией --disable-gpu работает гладко
  • тест glxgears не показывает желаемой производительности

Драйвер intel использует тройную буферизацию[устаревшая ссылка 2023-07-30 ⓘ] для вертикальной синхронизации, что позволяет без потерь в производительности избежать разрывы кадров. Чтобы отключить вертикальную синхронизацию (например, для "бенчмаркинга") создайте файл .drirc в вашей домашней директории со следующим содержимым:

~/.drirc
<device screen="0" driver="dri2">
	<application name="Default">
		<option name="vblank_mode" value="0"/>
	</application>
</device>

Не используйте driconfAUR[ссылка недействительна: package not found] для создания этого файла, так как он выставит неправильное название драйвера.

Проблемы с DRI3

Драйвер xf86-video-intel по умолчанию использует DRI3. На некоторых системах это может вызвать проблемы, подобные этой. Чтобы переключиться на DRI2, добавьте следующую строку в файл настроек Xorg:

Option "DRI" "2"

Для драйвера modesetting это не сработает. Вместо этого укажите переменную окружения LIBGL_DRI3_DISABLE=1.

Повреждение шрифтов и экрана в приложениях GTK (пропадают глифы при возвращении из ждущего/спящего режима)

Если вы столкнулись с проблемой пропадания символов в приложениях GTK, вам может помочь следующее обходное решение. Отредактируйте файл /etc/environment и добавьте следующую строку:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

Смотрите также FreeDesktop bug 88584.

Пустой экран во время загрузки системы на этапе "Loading modules"

Если вы используете "поздний старт" KMS и во время загрузки системы наблюдаете пустой экран, может помочь добавление i915 и intel_agp в initramfs. Смотрите раздел #Ранний запуск KMS выше.

Либо можно добавить следующее в параметры ядра:

video=SVIDEO-1:d

Если необходим вывод в VGA, попробуйте следующее:

video=VGA-1:1280x800

X зависает/падает с драйверами intel

Некоторые проблемы со сбоем X, зависания GPU, или проблемы с зависанием X, могут быть решены путем отключения использования GPU с опцией NoAccel:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "NoAccel" "True"
EndSection

Кроме того, попробуйте отключить 3D-ускорение только с опцией DRI:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier "Intel Graphics"
   Driver "intel"
   Option "DRI" "False"
EndSection

Добавление неопределённых разрешений

Этот вопрос рассматривается в Xrandr page.

Подсветка не регулируется

Если после возвращения из ждущего режима яркость экрана не регулируется, проверьте свою конфигурацию в соответствии со статьёй Backlight (Русский).

Если проблема остаётся, использование одного из следующих параметров ядра может помочь:

acpi_osi=Linux
acpi_osi="!Windows 2012"
acpi_osi=

Также убедитесь, что вы не используете fastboot (параметр ядра i915.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 иногда зависает, пока хост не заставит обновить экран (например, перемещением курсора мыши). Удаление опции enable_fbc=1 устраняет эту проблему.

Мерцание экрана

Panel Self Refresh (PSR), функция энергосбережения, используемая iGPU Intel, вызывает мерцание экрана в некоторых случаях FS#49628 FS#49371 FS#50605. Временным решением является отключение этой функции с помощью параметра ядра i915.enable_psr=0.

OpenGL 2.1 с драйвером i915

Обновление mesa с версии 13.x до 17 может сломать поддержку OpenGL 2.1 на GPU Intel третьего поколения (GMA3100, смотрите здесь), как описано в этой статье, откатив его к OpenGL 1.4. Однако это можно восстановить вручную, установив в /etc/drirc или ~/.drirc такие параметры:

/etc/drirc
<driconf>
...
    <device driver="i915">
        <application name="Default">
            <option name="stub_occlusion_query" value="true" />
            <option name="fragment_shader" value="true" />
        </application>
    </device>
...
</driconf>
Примечание: Причиной этого шага назад стал неудачный опыт Chromium и других приложений. При необходимости вы можете отредактировать файл drirc в «специфическом для приложений» стиле, смотрите здесь, чтобы, например, отключить gl2.1 для исполняемого файла Chromium.

Проблема с KMS: консоль ограничена в небольшую площадь

Один из портов низкого разрешения видео может быть включен во время загрузки системы, в результате чего терминал использует маленькую часть экрана. Чтобы исправить это, отдельно отключите порт с помощью опции модуля i915 video=SVIDEO-1:d в параметрах командной строке ядра в загрузчике. Больше информации об этом доступно на странице Параметры ядра.

Если это не сработало, попробуйте выключить TV1 или VGA1 вместо SVIDEO-1. Имена портов можно узнать с помощью xrandr.

Не работает звук через HDMI на процессорах Haswell

Как описано в этом сообщении об ошибке в Linux, звук не будет выводиться через HDMI при intel_iommu=on. Для решения проблемы используйте следующий параметр ядра:

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.

i915.enable_dc=0 отключает управление питанием GPU. Это позволяет устранить случайные зависания на некоторых системах Intel, в частности на чипах Goldmount и Kaby Lake Refresh. Использование этого параметра приводит к более высокому энергопотреблению и сокращению времени работы от батареи на ноутбуках/ноутбуках.

intel_idle.max_cstate=1 ограничивает состояние сна процессора, он не позволяет процессору переходить в состояние глубокого сна. Это абсолютно не идеально и приводит к увеличению энергопотребления и снижению времени работы от батареи. Однако это решает проблему случайных зависаний на многих системах Intel. Используйте это, если у вас есть чип Intel Baytrail или Kaby Lake Refresh. Известно, что чипы Intel «Baytrail» произвольно зависают без этого параметра ядра из-за аппаратного дефекта[26]. Более подробную информацию о параметре 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.

Примечание: Помимо создания файла /etc/initramfs-tools/hooks/edid, для Arch Linux нужно создать примерно такой файл:
/etc/initcpio/install/edid
#!/bin/bash

build() {
    add_file /lib/firmware/edid/edid.bin
}

help() {
    cat <<HELPEOF
This hook add support for 165Hz
HELPEOF
}

Затем добавьте edid в параметр HOOKS в файле /etc/mkinitcpio.conf, примерно так:

/etc/mkinitcpio.conf
HOOKS=(... fsck edid)

Затем пересоздайте образ initramfs

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