Intel graphics (Русский)

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

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

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

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

Установка

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

Установите драйвер VA-API и необходимую библиотеку с помощью пакета libva-intel-driver. На старых видеокартах, это предоставляет драйвер XvMC, который включён в драйвер DDX.

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

Конфигурация

Для запуска X конфигурация не требуется.

Полный список опций доступен в документации $ man intel.

Kernel Mode Setting

Совет: Если вы наблюдаете проблемы с разрешением экрана, обратитесь к этой странице.

Kernel Mode Setting (KMS) необходим для запуска X и среды рабочего стола. KMS поддерживается чипсетами Intel, которые используют драйвер i915 DRM включенный по умолчанию. Версии драйвера xf86-video-intel 2.10 и новее больше не поддерживают UMS (за исключением очень старых чипсетов 810 серии), что делает использование KMS обязательным[3]. KMS обычно инициализируется сразу после стадии initramfs. Однако, есть возможность активировать KSM во время стадии initramfs.

Примечание: Users must remove any deprecated references to vga or nomodeset from boot configuration.

Для этого добавьте модуль i915 в строку MODULES в файле /etc/mkinitcpio.conf:

MODULES=i915

Если вы используете собственный, нестандартный, файл EDID], вам также необходимо вставить его в initramfs:

/etc/mkinitcpio.conf
FILES="/lib/firmware/edid/your_edid.bin"

Теперь перегенерируйте initramfs:

# mkinitcpio -p linux

Изменения вступят в силу после следующей перезагрузки.

Опции модуля для энергосбережения

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

Для проверки, какие опции в данный момент включены, воспользуйтесь командой

# for i in /sys/module/i915/parameters/*; do echo $i=$(cat $i); done

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

$ modinfo i915 | grep parm

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

/etc/modprobe.d/i915.conf
options i915 i915_enable_rc6=1 i915_enable_fbc=1 lvds_downclock=1

Вы можете поэкспериментировать со более большими значениями enable_rc6, однако ваша видеокарта может их не поддерживать [4].

Сжатие буфера кадров может оказаться ненадёжным на старых поколениях видеокарт Intel (Каких?). В результате чего подобные сообщения выводятся в системный журнал:

kernel: drm: not enough stolen space for compressed buffer, disabling.

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

Видео без тиринга (горизонтального разрыва)

Совет: Если вы используете окружение рабочего стола GNOME, наиболее простой и предпочтительный, с точки зрения производительности, способ можно найти на странице GNOME/Troubleshooting#Tear-free video with Intel HD Graphics.

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

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

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

Примечание:
  • Данная опция может не работать если SwapbuffersWait выставлена на false.
  • Данная опция может создать дополнительные проблемы в некоторых приложениях, например Super Meat Boy.
  • Данная опция не работает с методом ускорения UXA, только с SNA.

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

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

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

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

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

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

$ xrandr --output LVDS1 --set PANEL_FITTING param

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

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

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

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

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

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

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

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

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

Пакет libva-intel-driver предоставляет декодирование MPEG-2 только для GMA 4500 серии видеокарт. Поддержка декодирования H.264 сопровождается в отдельной ветке под названием g45-h264, которой можно воспользоваться установив пакет libva-intel-driver-g45-h264AUR, доступный в AUR. Однако имейте в виду, что данная поддержка экспериментально и в данный не ведётся активная разработка. Использование VA-API с этим драйвером на GMA 4500 серии видеокарт уменьшит нагрузку на центральный процессор, однако не гарантируется плавное воспроизведение в сравнении с программным декодированием. Тестирование с использованием mplayer показало что использование vaapi для воспроизведения закодированного в H.264 1080p видео снизило нагрузку на процессор, однако воспроизведение происходит с рывками, в то время как воспроизведение 720p работало удовлетворительно [5]. Это подтверждает и опыт других пользователей [6][устаревшая ссылка 2021-11-11].

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

Следующий пример демонстрирует использование виртуальную файловую систему /sys для выставления уровня яркости на уровне драйвера. Максимальная яркость указана в файле /sys/class/backlight/intel_backlight/max_brightness. Имейте в виду, что это значение может отличаться в зависимости от разной конфигурации оборудования.

# cd /sys/class/backlight/intel_backlight
# cat max_brightness
4437
# echo 2200 > brightness

Яркость также можно выставить используя пакет xorg-xbacklight.

$ xbacklight -set 50  # sets brightness to 50% of maximum

Вместо абсолютных значений можно использовать инкрементирующие, например:

$ xbacklight -inc 10  # increase brightness by 10%
$ xbacklight -dec 10  # decrease brightness by 10%

Гамму можно выставить используя пакет xorg-xrandr, либо xorg-xgamma. Следующие команды делают одно и то же.

$ xrandr --output LVDS1 --gamma 1.0:1.0:1.0
$ xgamma -rgamma 1 -ggamma 1 -bgamma 1

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

Проблемы SNA

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

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

SNA — стандартный метод ускорения в xf86-video-intel. Если вы наблюдаете проблемы с SNA, попробуйте переключить на UXA. Для этого нужно создать файл конфигурации X со следующим содержимым:

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

Можно также воспользоваться Glamor:

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

Font and screen corruption in GTK+ applications (missing glyphs after suspend/resume)

Should you experience missing font glyphs in GTK+ applications, the following workaround might help. Edit /etc/environment to add the following line:

/etc/environment
COGL_ATLAS_DEFAULT_BLIT_MODE=framebuffer

See also FreeDesktop bug 88584.

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

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

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

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

Если у вас есть сбои при

Option "TearFree" "true"
Option "AccelMethod" "sna"

в файле настроек, в большинстве случаев это может быть исправлено добавлением

i915.semaphores=1

к вашим параметрам загрузки.

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

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

Проблема цвета

Примечание: Эта проблема связана с изменениями в ядре 3.9. Эта проблема до сих пор остается в ядре 3.10

Ядро 3.9 содержит изменения, позволяющие драйверу Intel легко настраивать глубину RGB, что в некоторых случаях может привести к проблемам цвета. Это связано с новым "Автоматическим" режимом на "Broadcast RGB». Можно заставить использовать режим, например, xrandr --output <HDMI> --set "Broadcast RGB" "Full" (замените <HDMI> на соответствующее устройство вывода, проверьте запустив xrandr). Вы можете добавить его в свой .xprofile и сделать его исполняемым, чтобы запускать команду, прежде чем он запустит графический режим.

Примечание: Некоторые телевизоры могут отображать только цвета из диапазона 16-255, поэтому установка на Full вызовет ограничение цвета в диапазоне 0-15, так что лучше оставить его в автоматическом режиме, который будет автоматически определять необходимость сокращать цветовое пространство для телевизора.

Также есть и другие связанные с ними проблемы, которые могут быть исправлены редактированием регистров GPU. Больше информации можно найти [7] и [8].

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

После возобновления из режима ожидания, горячие клавиши для изменения яркости экрана не работают. Использование следующих параметров ядра потенциально может решить проблему.

acpi_backlight=vendor

Устройствам Samsung с гибридной графикой (таким как 770Z5E) нужно указать acpi_backlight=video в качестве параметра ядра, при использовании ядра >= 3.17

acpi_backlight=video

Либо в дополнение к вышеуказанному параметру, либо по своей инициативе, добавьте один из следующих двух параметров:

acpi_osi=Linux
acpi_osi="!Windows 2012"

Другой доступный параметр:

video.use_native_backlight=1

Если не один из них не решает проблему, отредактируйте или создайте /etc/X11/xorg.conf.d/20-intel.conf со следующим содержимым:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
        Identifier  "card0"
        Driver      "intel"
    Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"

EndSection

При использовании ускорения SNA, как упоминалось выше, создайте файл следующим образом:

/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "AccelMethod"  "sna"
        Option      "Backlight"    "intel_backlight"
        BusID       "PCI:0:2:0"

EndSection

Отключение сжатия буфера кадров

На некоторых картах, таких как Intel Corporation Mobile 4 Series Chipsets, включение сжатия буфера кадров в результате приведёт к потоку ошибок:

# dmesg |tail 
[ 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

Решение заключается в отключении сжатия буфера кадров, которое будет немного увеличивать расход энергии. Для того, чтобы отключить его добавьте i915.enable_fbc=0 в строку параметров ядра. Более подробная информация о результатах отключения сжатия может быть найдена здесь[устаревшая ссылка 2020-08-02].

Искажение/Зависание в Chromium и Firefox

Если у вас проявляются искажения или зависания в Chromium и/или Firefox поменяйте AccelMethod на "uxa"

Проблема с искажениями в Chromium в Gnome-shell на sna решается включением настройки "Использовать системные рамки и строку заголовка".

Розовые и зелёные артефакты на видео или выводе Веб-камеры

На машинах с Broadwell, приложения использующие вывод xv или Intel Textured Video (в частности Skype и VLC), видеопоток выдаёт розовые и залёные артефакты. Это общая проблема Broadwell, которая была зафиксирована 16.04.2015 [9]. Обновите xf86-video-intel чтобы исправить её.

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

Драйвер не работает на чипах Intel Skylake

Для работы драйвера на новом Intel Skylake (6-е поколение) GPU, строка i915.preliminary_hw_support=1 должна быть добавлена к параметрам загрузки.

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