HybridGraphicsAMD

Материал из ALT Linux Wiki

HybridGraphics

Многие современные ноутбуки снабжены двумя видеокартами, сочетая интегрированную карту от Интел и высокопроизводительную дискретную видео-карту АМД или Nvidia. Увидеть какие карты установлены на вашем компьютере можно путем выполнения в консоли следующей команды:

 lspci -vnnn | grep VGA

При этом в выводе мы увидим что-то типа:

00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Madison [Radeon HD 5000M Series] [1002:68c1] (prog-if 00 [VGA controller])

АМД+Интел

Ниже предполагается что в bios отсутствует возможность аппаратного отключения одной из видеокарт. В принципе существует возможность использовать либо драйвера от АМД про настройку которых в ALT Linux можно посмотреть на [1], либо использовать свободный драйвер и vgaswitcheroo. Статус поддержки гибридной графики в АМД драйвере можно посмотреть, например на [2]. Из чего следует, что на момент написания данного текста (18.12.2011), и в драйверах АМД версии 11.10-11.12, поддержка гибридных видеокарт с программным переключением не работает! После загрузки вы увидите черный экран с диагностикой вида:

(WW) PowerXpress feature is not supported on A+I Mux platform.
Please uninstall fglrx driver.

vgaswitheroo

Ниже описана процедура настройки ноутбука HP ENVY-1210NR, имеющего на борту две видеокарты, интегрированную от Интел и дискретную от АМД (HD 5650M, "Redwood"), см выше. Информация по настройке взята с [3] и [4].

Пререквизиты:

1) Ядро с поддержкой vgaswithcheroo. Текущие ядра версии std-def, например, ALT Linux P6 (3.0.4-std-def-alt0.M60P.2) и Sisyphus (3.1.5-std-def-alt1) имеют эту поддержку. Поддержка графических карт radeon и intel в Xorg (в АЛьте идет по умолчанию).

2) Обязательно монтирование каталога /sys/kernel/debug при загрузке. Для этого переходим в режим суперпользователя и в fstab добавляем строчку (незабывая добавить еще одну пустую после, незнаю насколько это актуально сейчас!):

 debugfs              /sys/kernel/debug    debugfs    auto                0 0

Кроме того создаем файл /etc/rc.d/rc.local следующего содержания:

#!/bin/bash
chown "username" /sys/kernel/debug/vgaswitcheroo/switch 
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

где вместо "username" должно стоять имя пользователя. После, нужно присвоить этому файлу метку "исполняемый", путем:

chmod +x /etc/rc.d/rc.local

3) Поставить пакеты gxmessage и xmessage


4) Скачать иконки переключения

$ wget -P /home/"$USER"/.local/share/icons/ http://lh4.ggpht.com/_Dw3SC8gD9Jk/S-MGVcEfaiI/AAAAAAAAAIA/Pguy_uSeqSk/s800/hardware_down.png
$ wget -P /home/"$USER"/.local/share/icons/ http://lh5.ggpht.com/_Dw3SC8gD9Jk/S-MGVSO0JbI/AAAAAAAAAIE/_mdAnW7UiCQ/s800/hardware_up.png
$ wget -P /home/"$USER"/.local/share/icons/ http://lh4.ggpht.com/_Dw3SC8gD9Jk/TNbQXzK6hrI/AAAAAAAAAJ8/YlqK46MusuE/s800/hardware.png
$ wget -P /home/"$USER"/.local/share/icons/ http://lh5.ggpht.com/_Dw3SC8gD9Jk/S41DjuMt_MI/AAAAAAAAAF4/5pQm2-dX6Sg/s800/switch_before_shutdown.png

5) Создать скрипт переключения "switch_between_cards.sh" данный по ссылке : [5] и скопировать этот скрипт в /usr/bin

После перезагрузки переключение можно выполнять либо из консоли либо создать стандартными средствами иконку с приложением "switch_between_cards.sh". Для переключения между картами требуется перезагрузка Xorg. При работе с интегрированной видеокартой существенно экономится энергопотребление. Температура процессоров в спокойном состоянии практически на уровне проприоретарных драйверов от АМД. Вероятно есть дополнительные возможности для энергосбережения при задании дополнительных опций ядра при загрузке см советы от John Freed на [6]:

Обязательные опции (к слову у меня все работает без этого): i915.i915_enable_fbc=1 i915.i915_enable_rc6=1 video.allow_duplicates=1
Опции энергопотребления (не знаю, не пробовал): i915.lvds_downclock=1 radeon.dynclks=1
Могут понадобиться (также не пробовал): acpi_osi=Linux pcie_aspm=force

Эти опиции можно попытаться добавить вовремя загрузки, посмотреть на результат и после отредактировать /etc/sysconfig/grub2