Intel/AMD Switchable graphics [Ubuntu 12.04 — 12.10]

Доброго времени суток!

Наконец-то получилось добиться адекватно работающей т. н. «Гибридной графики» на Ubuntu 12.04 LTS (справедливо и для 12.10, также наверняка по этому «мануалу» будет работать и для других Debian-based систем)

В сети есть решения, но честно говоря ни одно из них мне не помогло, сколько я не пробовал.
Например, есть мануал годовой давности от Alexislavie на «Ubuntu Forums» — честно говоря этот способ «убивал» систему 3 раза подряд. Скорее всего проблема в обновлении xorg предложенное там. Да и драйвер там приведен на данный момент весьма старый. Хотя эта инструкция и наиболее близка к правде. Собственно описанный мною способ буквально немного отличается :-) Но работает.

Итак, что же в итоге помогло добиться успеха:

1) Установленная (для чистоты эксперимента — с нуля) Ubuntu 12.04 LTS (х64) со всеми обновлениями по 10 мая 2013 года.

2) Далее берем на сайте производителя драйвер (в моем случае, последний доступный для моей линейки ВК, это amd-catalyst-13.4-linux-x86.x86_64.run).

3) Устанавливаем недостающие пакеты:
sudo apt-get install dpkg-dev execstack debhelper dh-modaliases lib32gcc1 libc6-i386 dkms

4) Далее выполняем: (Спасибо инструкции Alexislavie!)
 cd /usr ; sudo ln -svT lib /usr/lib64

5) Скаченному .run файлу даем права на выполнения:
chmod +x amd-catalyst-13.4-linux-x86.x86_64.run

6) Создаем пакеты:
sudo sh ./amd-catalyst-13.4-linux-x86.x86_64.run --buildpkg Ubuntu/precise

7) Устанавливаем
sudo dpkg -i fglrx*.deb

8) Конфигурируем Xserver:
sudo aticonfig --initial -f

9) Перезагрузка.

10) Проверяем переключение видео карт:
sudo aticonfig --px-dgpu

11) Перезагрузка.

12) Правим конфиг:
gksu gedit /etc/X11/Xsession.d/10fglrx

13) Добавляем к LIBGL_DRIVERS_PATH следующий каталог: /usr/lib/x86_64-linux-gnu/dri/ (разделитель «:»).

14) Перезагрузка. Теперь уже на дискретной ВК,

Переключение ВК выполняется следующими командами
aticonfig --pxl # List current activated GPU
sudo aticonfig --px-dgpu # Activate discrete GPU (High-Performance mode)
sudo aticonfig --px-igpu # Activate integrated GPU (Power-Saving mode)

Что бы изменения вступили в силу нужно перезагрузить Xserver! К сожалению «на горячую» решения нет :-(

Себе для удобства, в .bashrc я добавил пару aliases.
alias gpuamd='sudo aticonfig —px-dgpu && sudo pkill X' 
alias gpuint='sudo aticonfig —px-igpu && sudo pkill X'


Проверить используемый рендер можно например так:
glxinfo | egrep render


Да, чуть не забыл, НЕ пользуйтесь соответствующим пунктом (переключение ВК) в меню ССС!
Если же на каком-то этапе система не загружается, замирая «черным экраном» — идем в консоль, удаляем (или просто восстанавливаем backup) xorg.conf и перезагружаемся.

Если у Вас уже были установлены fglrx пакеты — обязательно нужно почистить от них систему, например так:
sudo apt-get purge fglrx*


Надеюсь, кому-то это поможет :-)

В моем случае используется след. железо:
CPU: Intel Core i5 2430m (Intel HD3000 GPU 0х0116)
VGA: AMD Radeon HD 6650m 2GB GDDR5

П.С.: На счет Ubuntu 12.10 — на сайте производителя заявлена поддержка 12.10, хотя и в стадии «beta»!
П.П.С: За убитую систему и/или потерю данных, если что-то пошло «не так», я не ручаюсь. Все на свой страх и риск.
Share post

Comments 43

    0
    Могу добавить, что иногда простое переключение видеокарты в amdconfig и перезагрузка иксов может не сработать, так как у amd может быть свой конфиг иксов, с которы intel работать не захочет. Так что в алиасе на переключение в intel можно добавить нечто:
    mv /etc/X11/Xorg.conf /etc/X11/Xorg.conf.copy
    При обратном переключении нужно будет снова восстановить конфиг.
    PS: Говорю про себя, ибо система Debian, и конкретные видеокарты другие.
      0
      Такой проблемы не встречал.
      Часто проявляется? Возможно и не заметил ещё, хотя «туда» «сюда» переключал ради теста уже с сотню раз.

      В любом случае если что, спасибо за наводку! :-)
        0
        перечитал свой xorg.conf
        В общем-то указанной Вами проблемы возникнуть не должно.
        потому что встройка от Интел работает БЕЗ xorg.conf.
        А для AMD/ATi в нем жестко указан BusID — соответственно при переключении на встройку этот файл бесполезен. Поправте, если ошибаюсь
          0
          Ну просто у меня Debian, возможно версия Xorg другая, так что ответственности за первый пост не несу =). Просто у меня Intel запускался без конфига, но когда конфиг был — иксы не стартовали. Но еще раз говорю, что ситуация было немного другая =)
      +1
      > К сожалению «на горячую» решения нет :-(
      Есть. Используйте свободный драйвер (vgaswitcheroo для включения/выключения дискретной видеокарты и DRI_PRIME для offloading rendering).
        0
        честно говоря vgaswitcheroo ни разу завести не удалось.
        возможно что-то делал не так, но пробовал не однократно, по многим мануалам. В общем-то тех, у кого он заработал, я тоже встречал единицы.
          0
          Вы им наверное видеокарту переключить пытались, да?
            0
            До этого даже не дошло, у меня и модуль то сам не завелся
              0
              Значит проприетарный не до конца удалили, либо в используемой версии ядра нет поддержки вашей платформы.
                0
                да, возможно и так… будет время еще раз посмотрю в его сторону повнимательнее. Спасибо :-)
                  +1
                  Небольшой набор советов:
                  0. Убедитесь, что BIOS/UEFI у вас последней версии, там могут быть полезные исправления для ACPI. Эксперименты проводите на последней версии дистрибутива с последним ядром — там могут быть полезные костыли под баги ACPI вашего ноутбука. Смысла проверять всё это на старых версиях нет, вы можете столкнуться с багами, которые давно исправлены вендором или разработчиками ядра.
                  1. Для снижения температуры держите дискретку по-умолчанию выключенной, для этого поместите строку
                  echo «OFF» > /sys/kernel/debug/vgaswitcheroo/switch
                  в /etc/rc.local (не забудьте поменять кавычки на обычные).
                  2. При необходимости включайте её, выполнив
                  echo «ON» > /sys/kernel/debug/vgaswitcheroo/switch
                  под sudo -i (не забудьте поменять кавычки на обычные).
                  3. Steam запускайте так (либо отредактируйте ярлык)
                  DRI_PRIME=1 steam
                  4. С Mesa 9.1.1 (в Ubuntu 13.04 пока не обновили до Mesa 9.1.2, но обновят) вы можете столкнуться с багом HyperZ: bugs.freedesktop.org/show_bug.cgi?id=60969
                  Если столкнётесь, то запускайте Steam так:
                  R600_HYPERZ=0 DRI_PRIME=1 steam
                  5. Можно воспользоваться экспериментальным компилятором шейдеров: www.phoronix.com/scan.php?page=news_item&px=MTM2NzM
                  Для этого обновитесь из Xorg Edgers PPA и добавьте переменную «R600_DEBUG=sb» в строку запуска Steam.
                  В случае проблем с версией драйвера и Mesa из Xorg Edgers PPA установите ppa-purge и выполните откат:
                  sudo ppa-purge xorg-edgers
                  6. Изменение политики работы процессора оказывает серьёзное влияние на производительность: bugs.freedesktop.org/show_bug.cgi?id=51787#c6
                  Так что попробуйте performance вместо ondemand: forum.ubuntu.ru/index.php?topic=124234.0
                    0
                    Спасибо посмотрим. Пару моментов — игры не интересуют (стим — тем более), убунта только ЛТС, так что пока что никаких 13-ых :-)

                    UEFI я вообще могу и отключить — это как раз не беда — биос модифицированный :-)
                    Конкретно мой ноут с дискретной картой греется ни чуть не больше (хорошая СО), разве что от батареи живет почти в двое меньще :-)

                    Хотя что-то я сомневаюсь что vgaswitcheroo всетаки заработает :-)
                      0
                      > UEFI я вообще могу и отключить
                      Этой настройкой вы отключаете не UEFI а меняете режим загрузки с совместимого с UEFI на Legacy. т.е. UEFI у вас в любом случае работает, меняется только способ, которым UEFI запускает ОС. В случае проблемных UEFI это даже может привести к ухудшению результата.

                      > пока что никаких 13-ых
                      > я сомневаюсь что vgaswitcheroo всетаки заработает
                      Если не собираетесь обновляться — то можно даже не пробовать, так как ядро и Иксы годичной давности. В частности поддержка DRI_PRIME заработала только начиная с 13.04.
                        0
                        нет. именно так, как я написал — отключить.

                        заработала только начиная с 13.04.

                        это многое обьясняет :-) Вот и прояснилось. Спасибо. Вопрос решен в таком случае :-) Жду 13.ХХ LTS
                          0
                          > нет. именно так, как я написал — отключить.
                          У вас в прошивке на материнской плате не отдельно BIOS и отдельно UEFI, а просто UEFI с поддержкой Legacy-загрузки.

                          > это многое обьясняет :-) Вот и прояснилось. Спасибо. Вопрос решен в таком случае :-) Жду 13.ХХ LTS
                          Ближайший LTS через год. Вообще всё это можно проверить с LiveCD, даже не прибегая к играм, а лишь сверив вывод
                          DRI_PRIME=0 glxinfo | grep renderer
                          DRI_PRIME=1 glxinfo | grep renderer
                            0
                            У вас в прошивке на материнской плате не отдельно BIOS и отдельно UEFI, а просто UEFI с поддержкой Legacy-загрузки.


                            Вы меня конечно извините но думается мне что я лучше знаю что было зашито мною же. Учитывая что в оригинале на этой машинке был самый обыкновенный биос, и что такое UEFI он знать не знал :-) Далее производитель это дело исправил вместе с оффером на Вин8. Уже появились и режимы загрузки, и EFI, и прочие «плюшки». Но вот незадача. Оно мне было не нужно в виду накатанной МакОС которая просто отказывалась загрузиться (исправить это было хоть и возможно но очень лениво). Далее на биос-модс был найден интересный вариант патчиного биоса под мою модель, позволяющий почти все что надо любителю именно ПК а не *буков. Разгон, тайминги и т.п. :-) Позже по аналогии был прикручен «выключатель» этого безобразия под названием UEFI. Можно сказать 2 биоса. Во всяком случае выглядит это примерно так :-) Спасибо производителю за возможность такого «мода» :-)
                              0
                              > Во всяком случае выглядит это примерно так :-)
                              Именно, «выглядит» — это ключевое слово. Вы сильно удивитесь, если я скажу, что под капотом UEFI уже несколько лет в мамках, но поддержку загрузки в режиме UEFI пользователям дали выбрать лишь в прошлом году (из-за Windows 8) а до этого UEFI выглядели как BIOS и загрузку предоставляли только в Legacy-режиме?
                                0
                                действительно очень удивлюсь если увижу «доказательство» :-)
                                Не в том смысле что не верю, а в том что по-подробнее бы… Поищу :-)
        –1
        бред.
          +3
          sudo gksu

          омг
            0
            Нет, конечно же так не делалось — это уже тут «натупил». Исправил, спасибо
          • UFO just landed and posted this here
              0
              Оптимус устроен совсем иначе :-(

              Заставить так работать амд+интел насколько я понял не получится, во всяком случае пока-что
              • UFO just landed and posted this here
              0
              У кого-нибудь получилось установить таким образом драйвера для Radeon X1250?
                0
                Насколько я помню для неё требуется даунгрейд иксов до какой-то весьма старенькой версии, к сожалению начиная с какой он не будет работать я уже и не помню
                  0
                  Зачем, если система уже использует написанный AMD для этого железа драйвер R300g?
                    0
                    как раз проприентарный драйвер для указанной ВК и не работает с новым х-сервер.
                    Разве это уже не так? Или речь идет не о ноутбучной ВК?
                      0
                      Разве я где-то писал про проприетарный драйвер?
                        +1
                        понял, прошу прощения.
                        А смысл в открытом? Хотя мало ли, каждому свое :-)
                          0
                          Какая-то странная постановка вопроса. Вот значит установлен обычный дистрибутив Linux, уже по-умолчанию работает официальный (свободный) драйвер от вендора. И тут вы спрашиваете «А смысл в открытом?» Я прямо теряюсь… что на это можно ответить? То есть вы хотите предложить даунгрейдить Иксы до версии 2009 года и ядро за компанию, лишь для того, чтобы поставить устаревший проприетарный драйвер? А смысл?

                          Теперь короткая версия ответа на ваш вопрос:
                          > А смысл в открытом?
                          Свободный быстрее* проприетарного.

                          * актуальная версия драйвера R300g в среднем быстрее проприетарного драйвера на железе, поддерживаемом R300g. Возможны исключения по причине багов, о которых следует сообщать разработчикам драйвера.
                            0
                            Со свободным ноутбук как раз не очень быстро работает с внешним монитором 1920x1080 (при воспроизведении видео).
                            Или, например, $ glxgears на весь экран 1920x1080:
                            38 frames in 5.1 seconds =  7.430 FPS
                            36 frames in 5.1 seconds =  7.044 FPS
                            

                            Но если свободный действительно быстрее, то дело, видимо, в устаревшем железе, а не в драйвере. Спасибо :)
                              0
                              > Со свободным ноутбук как раз не очень быстро работает с внешним монитором 1920x1080 (при воспроизведении видео).
                              Убедитесь, что ваш процессор действительно вытягивает воспроизводимое видео. Стоит попробовать различные плееры и поверхности вывода видео (VLC, вывод на xv или на GLX; SMPlayer вывод на xv, или gl_nosw, и галка «Прямой рендеринг») а так же отключите эффекты для полноэкранных приложений (в Compiz по-умолчанию начиная с Ubuntu 12.10 но на всякий случай проверьте в настройках, что галка стоит; в KWin включается галкой в настройках эффектов).
                              Если пользуетесь KWin то стоило бы поставить KWin GLES и в /etc/environment добавить переменную KDEWM=kwin_gles — будет пошустрее, мне в аналогичных случаях (необходимость тянуть композитинг на внешнем мониторе со слабой карточкой) помогало.
                      0
                      ну, например, потому что этот драйвер работает с ужасными артефактами
                        0
                        Ядро/драйвер свежие? Багрепорты написаны?
                          0
                          ubuntu 12.04 из коробки.
                          с багрепортами не заморачивался еще, думал, своими силами справлюсь. пока не справился.
                            0
                            Для начала проверьте с LiveCD 13.10.
                              0
                              вау! итс е кайнд оф меджик. 13.10 узнала карточку. видео воспроизводится без глюков. но некоторые артефакты в виде горизонтальных полос по верхней границе десктопа остались.
                              как правильно писать багрепорт??
                                +1
                                bugs.freedesktop.org/enter_bug.cgi?product=Mesa
                                Component: Gallium/r300
                                Указывайте версию ядра, пакета с драйвером, Mesa, прикладывайте скриншоты с артефактами.

                                > но некоторые артефакты в виде горизонтальных полос по верхней границе десктопа остались.
                                А с LiveCD Kubuntu 13.10 можете проверить? Для сравнения.
                                  0
                                  c кубунтой можно жить. до тех пор, когда кубунта суспендится, — проснувшись, графика опять глючит.
                                  теперь живу без суспенда :))
                                    0
                                    Тогда заполните багрепорт про артефакты после суспенда.
                    0
                    Зачем так жестоко с иксами, в убунте при логауте всеравно иксы перезапускаются. При убивании тоже ведь выпадает в логин?
                      0
                      Да, тоже в логин

                      Честно говоря так жестоко с иксами лишь по причине не знания другого пути, желательно такого же быстрого :-) Переключаюсь я крайне редко, и без запущенного какого-либо софта.

                      В любом случае указанные алиасы лишь пример, который полностью меня устраивает :-)

                    Only users with full accounts can post comments. Log in, please.