Алексей Федорчук
Наш детектив под названием Дело о гибридном видео близится к развязке. Убедившись в работоспособности свежеустановленной openSUSE, я задался вопросом: а что эту работоспособность обеспечивает? Который из двух установленных в ней видеочипов?
Визуально было такое впечатление, что задействован чип от Nvidia: уж больно гладко выглядели все спецэффекты. Мой личный субъективный тест — игра extreme-tuxracer — по ощущениям показывал быстродействие как минимум не ниже, чем на большой машине с AMD Radeon HD 4250, который, не смотря на свою интегрированность, является всамделишним 3D-чипом.
Я, конечно, в курсе, что HD Graphics 3000, по сравнению со своими более старшими (то есть старыми) братьями во Intel’е в отношении трёхмерной графики был весьма усовершенствован. Однако, судя по виденным тестам, до «настоящих» Radeon’ов и и GeForce’иев всё-таки не дотягивает.
То есть по визуальным ощущениям я в данном ноуте имею дело с работой дискретного GeForce GT 520MX, причём, судя по отсутствию характерной заставки на старте системы, работа эта обеспечивается свободным драйвером nouveau.
Поскольку к этому времени я немножко теоретически подковался в вопросе о гибридном видео (о чём рассказано здесь), для начала пытаюсь выяснить, а не порылась ли здесь технология Nvidia Optimus? Для чего произвожу поиск соответствующего свободного её аналога:
$ zypper search bumblebee
Результат отрицательный — пакет с указанным именем не обнаруживается ни установленным в системе, ни в репозиториях. Из чего можно сделать вывод, что, ввиду отсутствия переключателя на корпусе или соответствующий опции в BIOS’е, в моём ноуте задействован механизм переключения между чипами в зависимости от заданного уровня энергопотребления.
После этого пытаюсь выяснить, какие модули, связанные с видеоподсистемой, у меня загружены:
$ lsmod | grep nouveau nouveau 778193 0 ttm 80953 1 nouveau mxm_wmi 12979 1 nouveau drm_kms_helper 42489 2 nouveau,i915 drm 252927 6 nouveau,ttm,i915,drm_kms_helper i2c_algo_bit 13423 2 nouveau,i915 video 19653 2 nouveau,i915 button 13949 2 nouveau,i915
Получается, что загружены оба — и для Intel’а (i915), и для Nvidia (nouveau). А вот какой из них «главней» — остаётся непонятным.
Ладно, вспоминаю, что я не где-нибудь, а в KDE, которое имеет средство просмотра аппаратной конфигурации — KinfoCenter. Запускаю его, нахожу вроде бы нужный пункт —Сведения о графике -> OpenGL и любуюсь его содержимым:
В коем фигурирует лишь драйвер для Intel’овского чипа — и ни малейшего намёка на на чип Nvidia.
Ну хорошо, думаю, а что нам скажет полковник Брежнев знаменитый YAST2, по слухам, содержащий все сведения о системе, которые тольк могут понадобиться.
А говорит он нам довольно странные вещи. Сначала выводит информацию про Intel’овский чип, из которой следует, что чип этот работает с модулем DRM, драйвер чипа называется i915 (положим, последнее я и так знал), и что соответствующий модуль активирован:
А вот про Nvidia имя соответствующего модуля хранится в тайне, и на счёт его активности выводятся противоречивые сведения:
Так и оставшись в недоумении, я начинаю рыскать по системе в поисках дополнительной информации. В частности, о возможных способах переключения между чипами. И в этом плане я не нашёл ничего лучшего, кроме как Управление питанием в Параметрах системы:
Здесь можно настроить параметры энергосбережения для одного из трёх профилей управления питанием:
- производительного, когда все опции энергосбережения отключены:
- энергосберегающего, с умеренными значения этих опций:
- агрессивно-энергосберегающего, при котором значения их максимальны:
Профили эти можно приписать к режимам работы ноутбука: подключению к сети, работе от аккумулятора, низком уровне заряда последнего, почти полной разрядке:
Численные значения уровней (в процентах от полного заряда) могут быть установлены пользователем:
Прямых указаний на то, что при смене профилей происходит переключение видеочипов, я нигде не нашёл. Однако эксперименты с
extreme-tuxracer’ом показали, что при производительном и энергосберегающем режимах пингвин отлавливает рыбку с одинаковой скоростью. А вот при агрессивном энергосбережении начинает несколько тормозить. Это позволяет предположить, что именно с переходом к максимальному энергосбережению отключается дискретный GeForce.
Разумеется, всё это основано на сугубо субъективных ощущениях. Хорошо бы подтвердить это каким-то количественными данными, но как — пока не придумал, ибо никогда не интересовался производительностью видеочипов и всем, к этому относящемуся. Разве что коллективный разум Джуйки поможет — тогда и вернусь к этому вопросу.
Так что в этом детективе ответа на традиционных вопрос — кто же преступник? — пока не будет. Хотя я склоняюсь к мнению, что главный злодей в этом сюжете — производитель, использующий новые технологии, не документируя их должным образом. Возможно, дальнейшие оперативно-розыскные мероприятия прольют свет на этот вопрос (и кое-что уже появилось).
А пока удовлетворюсь тем, что в openSUSE всё, связанное с графикой, работает, и работает хорошо. Так что в заметке, заключающей данный цикл, подведу итоги.
$ zypper search bublebee
Это очепятка где? Если в консоли — то оно же bumblebee :)
Аа насчёт работы якобы nvidia чипа — выгрузите его модуль и убедитесь, что ничего не меняется. Ну не работают дискретные чипы в линуксе, насколько я знаю. То, что у вас меняется производительность в экономе, это лишь следствие уменьшения частоты интеловского gpu.
2 Frank ачипятка здесь — проверил по history :)
> не работают дискретные чипы в линуксе
Если линукс просто не види GeForce — почему тогда нормально не грузятся Иксы в PCLinuxOS и в Fedora?
И от памяти интеловский чип ничего не отжирает. Он что, забирает память из того гигабайта, что на маме?
Скорей всего Иксы в PCLinuxOS и в Fedora как раз потому и повисают, что пытаются запинать дискретку. А насчёт памяти — дык, чип жрёт память динамически. Неужели free -m показывает полные 1024 или хотя бы 1023 метра?
Н у и в dmesg полезно заглянуть, вряд ли там будут упоминания nvidia в каком-либо виде.
Кстати, я в убунте когда-то на гибриде пытался активировать nvidia драйвер. После перезагрузки получалось такое сообщение: драйвер загружен и активирован, но не используется. И, разумеется, дискретна не работала.
Кстати, лучший вариант проверить, работает ли дискретка — запустить игру, юзающую opengl 2.0+ — интеловская дискретка выдаст себя отсутствующими текстурами. Что-то там про танки такое было…
Предлагаю запустить 0 A.D. — http://www.playdeb.net/software/0%20A.D. — на интеле должна жутко тормозить.
А, вот эти танки — http://www.playdeb.net/software/Zero%20Ballistics
Ну, придётся поискать сборки под зюзю…
Я думаю, здесь интел работает. В 3Д его очень производительным сделали. Кстати, наличие загруженных нивидиевских модулей не значит, что дискретка работает.
Вот как выглядит Oil Rush под интелом: http://ubuntuone.com/2QpF1QiuXFPoK3H2DCG2Kz
Такой же вид будет в Zero Ballistics на интеграшке, а если на дискретке — должно нормально выглядеть.