Gentoo Linux, 2 видеокарты в ноутбуке и Nvidia Optimus

Так получилось, что мой новый железный друг имеет на борту как обычную размазанную видеокарту, так и мощную дискретную. Беда состояла в том, что при загрузке они обе были включены и дискретная nvidia gt520 очень активно съедала аккумулятор, при этом не принимая активного участия.

Первым моим желанием было научиться переключаться между видеокартами, ну или хотя бы одну из них просто обесточить программно. На многих форумах рассказывалось о такой опции ядра как vgaswitcheroo, которая давала возможность управлять видеокартами ноутбука на свое усмотрение.

Этот метод имеет два минуса

  1. После переключения видеокарт нужно перезапускать иксы, т.к. они на лету не умеют между видеокартами переключаться.
  2. (Об этом я узнал чуть позднее). Для того, чтобы в /proc появился нужный файлик, нужно для обеих видеокарт выставить modeset=1. Проблема заключается в том, что бинарные драйвера от nvidia такой возможности не дают, а nouveau меня не вдохновляют =).

Читая форумы я натолкнулся на второй и, в моем случае, успешный вариант.

Мой ноутбук, как оказалось поддерживает технологию nvidia optimus, суть которой в том, что основной видеокартой работает размазанная интеловская, а дискретная карточка включается по требованию для обработки вывода отдельных приложений.

Включением/выключением видеокарт занимается программа bumblebee, запущенная в режиме демона.

Для запуска приложений с использованием дискретной видеокарты используется утилита optirun.

Итак…

emerge -av bumblebee
emerge -av bbswitch
/etc/init.d/bumblebee start

Что мы видим после этого в dmesg:

[349281.482985] video LNXVIDEO:00: Restoring backlight state
[349281.483079] video LNXVIDEO:01: Restoring backlight state
[349281.483296] bbswitch: disabling discrete graphics
[349281.483639] bbswitch: Result of Optimus _DSM call: 11000059
[349281.483672] pci 0000:01:00.0: PCI INT A disabled
[349281.496110] pci 0000:01:00.0: power state changed by ACPI to D3

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

А вот, что мы видим при запуске программы через optirun

[349276.478405] bbswitch: enabling discrete graphics
[349276.902596] pci 0000:01:00.0: power state changed by ACPI to D0
[349276.903619] pci 0000:01:00.0: power state changed by ACPI to D0
[349276.904671] pci 0000:01:00.0: restoring config space at offset 0x1 (was 0x100006, writing 0x100007)
[349276.904689] pci 0000:01:00.0: power state changed by ACPI to D0
[349276.905670] pci 0000:01:00.0: power state changed by ACPI to D0
[349276.905678] pci 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[349276.905682] pci 0000:01:00.0: setting latency timer to 64

Основной целью этого исследования было — снизить расход батареи в автономном режиме работы ноутбука. И, надо сказать, цель была достигнута. Время работы от батареи существенно увеличилось.

Запись опубликована в рубрике Железо, Программное обеспечение, Увлечения с метками , , , , , , . Добавьте в закладки постоянную ссылку.

Комментарии запрещены.