# Intel graphics (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ссылки по теме

- Intel GMA3600
- Xorg
- Kernel mode setting
- Xrandr
- Hybrid graphics

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

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

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

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

## Установка

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

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

Установите драйвер 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` в параметрах командной строке ядра в загрузчике. Больше информации об этом доступно на странице Kernel parameters.

Если это не сработало, попробуйте выключить 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].

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

Следующий пример демонстрирует использование виртуальную файловую систему `/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` должна быть добавлена к параметрам загрузки.

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

- https://01.org/linuxgraphics/documentation (includes a list of supported hardware)
- Arch Linux forums: Intel 945GM, Xorg, Kernel - performance

Categories:

- Graphics (Русский)
- X server (Русский)