Intel graphics (Русский)
Ссылки по теме
С тех пор как Intel предоставляет и поддерживает только свободные драйвера, видеокарты Intel graphics работают "из коробки".
Всеобъемлющий список моделей видеокарт и соответствующих чипсетов и процессоров доступен в английской Википедии.
Contents
- 1 Установка
- 2 Конфигурация
- 3 Kernel Mode Setting
- 4 Опции модуля для энергосбережения
- 5 Советы и рекомендации
-
6 Решение проблем
- 6.1 Проблемы SNA
- 6.2 Пустой экран во время загрузки системы на этапе "Loading modules"
- 6.3 Видео без рывков
- 6.4 X freeze/crash with intel driver
- 6.5 Adding undetected resolutions
- 6.6 Weathered colors (colorspace problem)
- 6.7 Backlight is not adjustable
- 6.8 Disabling frame buffer compression
- 6.9 Corruption/Unresponsiveness in Chromium and Firefox
- 7 See also
Установка
Prerequisite: Xorg.
Установите пакет xf86-video-intel из официальных репозиториев. Пакет предоставляет драйвер DDX для 2D ускорения и устанавливает пакет intel-dri[broken link: replaced by mesa] как зависимость, который предоставляет драйвер DRI для 3D ускорения.
Для поддержи 32-битного 3D ускорения на x86_64, установите lib32-intel-dri[broken link: replaced by lib32-mesa] из репозитория multilib.
Установите драйвер VA-API и необходимую библиотеку с помощью пакетов libva-intel-driver и libva соответственно. На старых видеокартах, это предоставляет драйвер 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 обязательным[1]. KMS обычно инициализируется сразу после стадии initramfs. Однако, есть возможность активировать KSM во время стадии initramfs.
Для этого добавьте модуль 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
, однако ваша видеокарта может их не поддерживать [2].
Сжатие буфера кадров может оказаться ненадёжным на старых поколениях видеокарт Intel (Каких?). В результате чего подобные сообщения выводятся в системный журнал:
kernel: drm: not enough stolen space for compressed buffer, disabling.
Советы и рекомендации
Отключение вертикальной синхронизации (VSYNC)
Драйвер intel использует тройную буферизацию для вертикальной синхронизации, что позволяет без потерь в производительности избежать разрывы кадров. Чтобы отключить вертикальную синхронизацию (например, для "бенчмаркинга") создайте файл .drirc в вашей домашней директории со следующим содержимым:
~/.drirc
<device screen="0" driver="dri2"> <application name="Default"> <option name="vblank_mode" value="0"/> </application> </device>
Не используйте driconf для создания этого файла, так как он выставит неправильное название драйвера.
Настройка режима масштабирования
Это может быть полезно для некоторых полноэкранных приложений:
$ 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 работало удовлетворительно [3]. Это подтверждает и опыт других пользователей [4].
Управление яркостью и гаммой
Следующий пример демонстрирует использование виртуальную файловую систему /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
Согласно man 4 intel
:
- There are a couple of backends available for accelerating the DDX. "UXA" (Unified Acceleration Architecture) is the mature backend that was introduced to support the GEM driver model. It is in the process of being superseded by "SNA" (Sandybridge's New Acceleration). Until that process is complete, the ability to choose which backend to use remains for backwards compatibility.
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
Пустой экран во время загрузки системы на этапе "Loading modules"
Если вы используете "поздний старт" KMS и во время загрузки системы наблюдаете пустой экран. Исправить проблему можно добавив i915
и intel_agp
в initramfs. Смотрите раздел #Kernel Mode Setting выше.
Либо можно добавить следующее в параметры ядра:
video=SVIDEO-1:d
Если необходим вывод в VGA, попробуйте следующее:
video=VGA-1:1280x800
Видео без рывков
Для некоторых пользователей рывки видео происходят из-за метода ускорения SNA. Чтобы исправить это, включите опцию "Tearfree"
в драйвере:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
См. отчёт об ошибке за подробной информацией.
X freeze/crash with intel driver
Some issues with X crashing, GPU hanging, or problems with X freezing, can be fixed by disabling the GPU usage with the NoAccel
option:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "NoAccel" "True" EndSection
Alternatively, try to disable the 3D acceleration only with the DRI
option:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "DRI" "False" EndSection
If you experience crashes and have
Option "TearFree" "true" Option "AccelMethod" "sna"
in your config file, in most cases these can be fixed by adding
i915.semaphores=1
to your boot parameters.
Adding undetected resolutions
This issue is covered on the Xrandr page.
Weathered colors (colorspace problem)
Kernel 3.9 contains the Intel driver changes allowing easy RGB Limited range settings which can cause weathered colors in some cases. It is related to the new "Automatic" mode for the "Broadcast RGB" property.
One can force mode e.g. xrandr --output <HDMI> --set "Broadcast RGB" "Full"
(replace <HDMI>
with the appropriate output device, verify by running xrandr
). You can add it into your .xprofile
, make it executable to run the command before it will start the graphical mode.
Also there are other related problems which can be fixed editing GPU registers. More information can be found [5] and [6].
Backlight is not adjustable
After resuming from suspend, the hotkeys for changing the screen brightness do not take effect. Using the following kernel parameters can potentially solve the problem.
acpi_backlight=vendor
Either in addition to the above mentioned parameter, or on its own, add one of the following two parameters:
acpi_osi=Linux acpi_osi="!Windows 2012"
Another parameter available:
video.use_native_backlight=1
If neither of those solve the problem, edit or create /etc/X11/xorg.conf.d/20-intel.conf
with the following content:
/etc/X11/xorg.conf.d/20-intel.conf
Section "Device" Identifier "card0" Driver "intel" Option "Backlight" "intel_backlight" BusID "PCI:0:2:0" EndSection
If using the SNA acceleration as mentioned above, create the file as follows:
/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
Disabling frame buffer compression
On some cards such as Intel Corporation Mobile 4 Series Chipsets, enabling frame buffer compression results in endless error messages:
$ 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
The solution is to disable frame buffer compression which will slightly increase power consumption. In order to disable it add i915.enable_fbc=0
to the kernel line parameters. More information on the results of disabled compression can be found here.
Corruption/Unresponsiveness in Chromium and Firefox
If you experience corruption or unresponsiveness in Chromium and/or Firefox set the AccelMethod to "uxa"
See also
- https://01.org/linuxgraphics/documentation (includes a list of supported hardware)
- Arch Linux forums: Intel 945GM, Xorg, Kernel - performance