Intel graphics (Русский)
С тех пор как Intel предоставляет и поддерживает только свободные драйвера, видеокарты Intel graphics работают "из коробки".
Всеобъемлющий список моделей видеокарт и соответствующих чипсетов и процессоров доступен в английской Википедии.
Установка
Установите пакет 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.
Конфигурация
Для запуска 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.
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.
Советы и рекомендации
Видео без тиринга (горизонтального разрыва)
Для некоторых пользователей рывки видео происходят из-за метода ускорения 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 содержит изменения, позволяющие драйверу Intel легко настраивать глубину RGB, что в некоторых случаях может привести к проблемам цвета. Это связано с новым "Автоматическим" режимом на "Broadcast RGB».
Можно заставить использовать режим, например, xrandr --output <HDMI> --set "Broadcast RGB" "Full"
(замените <HDMI>
на соответствующее устройство вывода, проверьте запустив xrandr
). Вы можете добавить его в свой .xprofile
и сделать его исполняемым, чтобы запускать команду, прежде чем он запустит графический режим.
Также есть и другие связанные с ними проблемы, которые могут быть исправлены редактированием регистров 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