Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияПоследняя версияСледующая версия справа и слева |
ru:howtos:hardware:nvidia_optimus [2013/12/26 11:53 (UTC)] – Ссылки bormant | ru:howtos:hardware:nvidia_optimus [2015/01/25 18:05 (UTC)] – [Установка Шмеля] fix typo bormant |
---|
| |
<note> | <note> |
Во избежание путаницы, здесь и дальше мы будем использовать nVidia для ссылки на компанию и ''nvidia'' для ссылки на закрытый проприетарный драйвер. | Во избежание путаницы здесь и далее будем использовать nVidia для ссылки на компанию и ''nvidia'' для ссылки на закрытый проприетарный драйвер. |
| |
В командах терминала на этой странице строки, начинающиеся с ''$'' означают команды, выполняемые обычным пользователем, а начинающиеся с ''#'' должны выполняться от суперпользователя root. | В командах терминала этой страницы начинающиеся с ''$'' строки означают команды, выполняемые обычным пользователем, а начинающиеся с ''#'' должны выполняться суперпользователем root. |
| |
Также обратите внимание на разницу между Bumblebee и bumblebeed. bumblebeed является демоном первого. | Также обратите внимание на разницу между Bumblebee и bumblebee. bumblebee является демоном первого. |
</note> | </note> |
| |
==== Установка Шмеля ==== | ==== Установка Шмеля ==== |
---- | ---- |
| === Автоматизированный способ === |
| Благодаря слакеру Ryan McQuen есть новый автоматизированный установки Шмеля. |
| <note warning>ИСПОЛЬЗОВАТЬ ТОЛЬКО НА СВОЙ РИСК! |
| Если вы правили слакбилды, скорее всего этот сценарий вам не подойдет.</note> |
| |
| Можно выполнить от root: |
| curl https://raw.githubusercontent.com/ryanpcmcquen/linuxTweaks/master/slackware/crazybee.sh | sh |
| |
| Либо загрузите файл сценария и выполните его от root. |
| |
| Сценарий обнаруживает мультилиб, создает необходимую группу, добавляет пользователей и вносит изменения в /etc/rc.d/rc.local. |
| |
| Он также использует ''upgradepkg %%--%%reinstall %%--%%install-new'' после обновлений ядра. |
| |
| === Ручной способ === |
=== Получение слакбилдов === | === Получение слакбилдов === |
Слакер jgeboski предоставил слакбилды для Шмеля в целом соответствующие требованиям [[http://www.slackbuilds.org/guidelines/|SlackBuilds.org]] на [[https://github.com/jgeboski/Bumblebee-SlackBuilds|github]]. Не забудьте сперва проверить текущий каталог, поскольку именно в него будет производиться загрузка. Теперь, когда готовы, слакбилды могут быть получены командой ''git clone'' как обычно. Затем мы перейдём в новый каталог и приступим к сборке. | Уважаемый слакер jgeboski изначально предоставил слакбилды для Шмеля в соответствии с требованиями [[http://www.slackbuilds.org/guidelines/|SlackBuilds.org]]. Теперь другой слакер продолжил начатое в своём [[https://github.com/WhiteWolf1776/Bumblebee-SlackBuilds|репозитории github]]. Не забудьте сперва проверить текущий каталог, поскольку именно в него будет производиться загрузка. Теперь, когда готовы, слакбилды могут быть получены командой ''git clone'' как обычно. Затем мы перейдём в новый каталог и приступим к сборке. |
<code> | <code> |
$ git clone https://github.com/jgeboski/Bumblebee-SlackBuilds.git | $ git clone https://github.com/whitewolf1776/Bumblebee-SlackBuilds.git |
$ cd Bumblebee-SlackBuilds | $ cd Bumblebee-SlackBuilds |
</code> | </code> |
Вместо этого можно загрузить архив со слакбилдами: | Вместо этого можно загрузить архив со слакбилдами: |
<code> | <code> |
$ wget --content-disposition https://github.com/jgeboski/Bumblebee-SlackBuilds/tarball/master | $ wget --content-disposition https://github.com/whitewolf1776/Bumblebee-SlackBuilds/tarball/master |
$ tar xf jgeboski-Bumblebee-SlackBuilds-<шестнадцатеричная строка> # Полезно автодополнение по Tab. | $ tar xf whitewolf1776-Bumblebee-SlackBuilds-<шестнадцатеричная строка> # Полезно автодополнение по Tab. |
$ cd jgeboski-Bumblebee-SlackBuilds | $ cd whitewolf1776-Bumblebee-SlackBuilds |
</code> | </code> |
Файл README прилагается, но поскольку вряд ли захотите читать ещё и его в дополнение к этой инструкции, приведём здесь основные моменты. | Файл README прилагается, но поскольку вряд ли захотите читать ещё и его в дополнение к этой инструкции, приведём здесь основные моменты. |
| |
=== Получение зависимостей === | === Получение исходных файлов === |
Зависимости по обыкновению для слакбилдов нужно вручную загрузить и разместить в соответствующих каталогах. Файл SLACKBUILDS.TXT содержит ссылки на файлы для загрузки и их контрольные суммы MD5 для проверки целостности. Для их загрузки и проверки можно воспользоваться предоставленным сценарием: | Исходные файлы по обыкновению для слакбилдов нужно вручную загрузить и разместить в соответствующих каталогах. В составе репозиториев есть файл SLACKBUILDS.TXT, содержащий ссылки на исходные файлы и их контрольные суммы MD5 для проверки целостности. Для их загрузки и проверки можно воспользоваться предоставленным сценарием: |
<code sh> | <code sh> |
./download.sh | ./download.sh |
| |
=== Сборка и установка Шмеля === | === Сборка и установка Шмеля === |
1. Сборка и установка: bbswitch (необязательно, но настоятельно рекомендуется), libbsd и bumblebeed в указанном порядке. | 1. Сборка и установка: bbswitch (необязательно, но настоятельно рекомендуется). |
<code> | <code> |
# cd bbswitch # ''cd'' не обязательно от root, но кому захочется потом каждый раз ''su''? | # cd bbswitch # ''cd'' не обязательно от root, но кому захочется потом каждый раз ''su''? |
# ./bbswitch.SlackBuild | # ./bbswitch.SlackBuild |
# upgradepkg --install-new bbswitch-*.t?z | # upgradepkg --install-new bbswitch-*.t?z |
| </code> |
| |
| 2. Сборка и установка: libbsd (обязательно). |
| <code> |
# cd ../libbsd | # cd ../libbsd |
# ./libbsd.SlackBuild | # ./libbsd.SlackBuild |
# upgradepkg --install-new libbsd-*.t?z | # upgradepkg --install-new libbsd-*.t?z |
# cd ../bumblebeed | </code> |
# ./bumblebeed.SlackBuild | |
| 3. Сборка и установка: bubmlebee (очевидно обязательно). |
| <code> |
| # cd ../bumblebee |
| # ./bumblebee.SlackBuild |
# upgradepkg --install-new bumblebee-*.t?z | # upgradepkg --install-new bumblebee-*.t?z |
</code> | </code> |
<note>Шмель может использовать primusrun (требует пересборку mesa в Slackware 14.0 и ранее) или собственный optirun. Выберите, чем будете пользоваться (можно поставить оба). У каждого есть свои плюсы и минусы. | <note>Шмель может использовать primusrun (требует пересборку mesa в Slackware 14.0 и ранее) или собственный optirun. Выберите, чем будете пользоваться (можно поставить оба). У каждого есть свои плюсы и минусы. |
</note> | </note> |
| |
| === Primus === |
| Primus, как и optirun (инструкции ниже) можно использовать для запуска выбранной программы через Шмеля. Primus также поддерживает параметр COMPAT32. |
| |
| <note warning> |
| Если используете Slackware 14.0 или старше, потребуется пересобрать mesa. Новый репозиторий github не не предоставляет слакбилды mesa для Slackware 14.0 и старше. Поэтому необходимо использовать Slackware 14.1 или новее, либо пересобирать mesa вручную другим сценарием. Возможно выбрать старый репозиторий и соответственно поправить слакбилд, либо добавить ''%%--%%enable-shared-glapi'' в mesa.SlackBuild как в новой версии Slackware. |
| |
| <code> |
| # # Для старого репозитория выполните: |
| # cd ../mesa |
| # ./mesa.SlackBuild |
| </code> |
| |
| У mesa нет параметра COMPAT32, поскольку это официальный пакет Slackware, но создать пакет compat32 после оригинального несложно: |
| <code> |
| # ./mesa-compat32.SlackBuild # только для старого репозитория |
| </code> |
| </note> |
| |
| 1. Сборка и установка: primus |
| <code> |
| # cd ../primus |
| # ./primus.SlackBuild |
| # upgradepkg --install-new primus-*.t?z |
| </code> |
| <code> |
| # COMPAT32=yes ./primus.SlackBuild |
| </code> |
| |
=== VirtualGL === | === VirtualGL === |
| <note warning> |
| Хотя VirtualGL (и его зависимость libjpeg-turbo) ещё поддерживаются проектом Шмель и сопровождается его разработчиками, новый репозиторий слакбилдов для этих пакетов не содержит. Этот раздел для старого репозитория github от jgeboski. Если вам нужен VirtualGL (скажем, у вас тот редкий случай, когда VirtualGL производительнее, чем primus), то можете использовать эти (устаревшие) или собственные слакбилды. |
| </note> |
| |
1. Сборка и установка: libjpeg-turbo (доступна поддержка 32 бит) | 1. Сборка и установка: libjpeg-turbo (доступна поддержка 32 бит) |
<code> | <code> |
<code> | <code> |
# COMPAT32=yes ./VirtualGL.SlackBuild | # COMPAT32=yes ./VirtualGL.SlackBuild |
</code> | |
| |
=== Primus === | |
Primus -- другая программа для использования по аналогии с optirun. Однако, primus не требует VirtualGL (а поэтому не требует и libjpeg-turbo), требует только mesa с --enable-shared-glapi (Slackware 14.0 и ранее требуют пересборки mesa). Primus поддерживает параметр COMPAT32. | |
| |
1. Пересоберите mesa, если используете Slackware 14.0 или ранее | |
<code> | |
# cd ../mesa | |
# ./mesa.SlackBuild | |
</code> | |
| |
у mesa нет параметра COMPAT32, поскольку это официальный пакет Slackware, но создать пакет compat32 после оригнального несложно: | |
<code> | |
# ./mesa-compat32.SlackBuild # расположен в каталоге с mesa.SlackBuild | |
</code> | |
| |
2. Сборка и установка: primus | |
<code> | |
# cd ../primus | |
# ./primus.SlackBuild | |
# upgradepkg --install-new primus-*.t?z | |
</code> | |
<code> | |
# COMPAT32=yes ./primus.SlackBuild | |
</code> | </code> |
| |
Если хотите использовать проприетарные драйверы nVidia, необходим отказ от nouveau, поскольку они конфликтуют друг с другом. Возможные варианты: удалить nouveau, установить xf86-video-nouveau-blacklist из /extra, вручную занести nouveau в чёрный список. | Если хотите использовать проприетарные драйверы nVidia, необходим отказ от nouveau, поскольку они конфликтуют друг с другом. Возможные варианты: удалить nouveau, установить xf86-video-nouveau-blacklist из /extra, вручную занести nouveau в чёрный список. |
| |
<note> | |
Эта часть целиком необязательна. Slackware 13.37 и последующие поставляются с xf86-video-nouveau, открытым драйвером для видеокарт nVidia. Если используете его, закрытые проприетарные драйверы nVidia не нужны. Однако, если хотите использовать закрытый драйвер, установите перечисленные в этом разделе пакеты, прежде чем продолжить. | Эта часть целиком необязательна. Slackware 13.37 и последующие поставляются с xf86-video-nouveau, открытым драйвером для видеокарт nVidia. Если используете его, закрытые проприетарные драйверы nVidia не нужны. Однако, если хотите использовать закрытый драйвер, установите перечисленные в этом разделе пакеты, прежде чем продолжить. |
| |
<note warning> | <note warning> |
Некоторые версии драйвера nvidia несовместимы с отдельными версиями ядра. Например, драйвер nvidia 319.32 и ядра 3.10.*. Для использования официального проприетарного драйвера nvidia 319.32 с ядрами 3.10.* необходимо применение заплатки: http://sprunge.us/UaaH, либо воспользуйтесь новой версией драйвера, поддерживающей данную версию ядра. Можно также действовать по [[http://www.slackbuilds.org/faq/#version_update|инструкции SlackBuilds.org на случай выхода новой версии и бездействия сопровождающего]]. | Некоторые версии драйвера nvidia несовместимы с отдельными версиями ядра и наоборот по различным причинам. Как правило, лучше использовать пакет драйвера nvidia, совместимый с пакетами ядра Slackware. Можно действовать по [[http://www.slackbuilds.org/faq/#version_update|инструкции SlackBuilds.org]] для самостоятельного ручного обновления версий отдельных пакетов. |
</note> | </note> |
| |
1. Сборка и установка: libvdpau (Требуется для помощи в сборке новых пакетов nvidia-bumblebee) | <note> |
| Если используете Slackware 14.1 или старше, нужно установить libvdpau. Более новые выпуски Slackware уже содержат libvdpau. |
<code> | <code> |
# cd ../libvdpau | # cd ../libvdpau |
# upgradepkg --install-new libvdpau-*.t?z | # upgradepkg --install-new libvdpau-*.t?z |
</code> | </code> |
| </note> |
| |
2. Сборка и установка: nvidia-bumblebee | 1. Сборка и установка: nvidia-bumblebee |
<code sh> | <code sh> |
# cd ../nvidia-bumblebee | # cd ../nvidia-bumblebee |
</code> | </code> |
| |
3. Сборка и установка: nvidia-kernel | 2. Сборка и установка: nvidia-kernel |
<code sh> | <code sh> |
# cd ../nvidia-kernel | # cd ../nvidia-kernel |
</code> | </code> |
<code> | <code> |
# COMPAT32=yes ./nvidia-kernel.SlackBuild # OТолько для систем x86_64, поддержка 32-битных библиотек и файлов. | # COMPAT32=yes ./nvidia-kernel.SlackBuild # Только для систем x86_64, поддержка 32-битных библиотек и файлов. |
</code> | </code> |
</note> | |
==== После установки ==== | ==== После установки ==== |
Превосходно. Пора сделать послеустановочные настройки. Пакет bumblebeed предоставляет сценарий rc.bumblebeed в /etc/rc.d, где расположены и остальные стартовые сценарии. Не забудьте сделать его исполняемым и, при желании, запустить! | Превосходно. Пора сделать послеустановочные настройки. Пакет bumblebee предоставляет сценарий rc.bumblebee в /etc/rc.d, где расположены и остальные стартовые сценарии. Не забудьте сделать его исполняемым и, при желании, запустить! |
<code> | <code> |
# chmod +x /etc/rc.d/rc.bumblebeed | # chmod +x /etc/rc.d/rc.bumblebee |
# /etc/rc.d/rc.bumblebeed start | # /etc/rc.d/rc.bumblebee start |
</code> | </code> |
| |
Если хотите автоматически запускать демона шмеля при старте системы, можете добавить в /etc/rc.d/rc.local следущее: | Если хотите автоматически запускать демона Шмеля при старте системы, можете добавить в /etc/rc.d/rc.local следующее: |
<code sh> | <code sh> |
[ -x /etc/rc.d/rc.bumblebeed ] && /etc/rc.d/rc.bumblebeed start | [ -x /etc/rc.d/rc.bumblebee ] && /etc/rc.d/rc.bumblebee start |
</code> | </code> |
| |
Можете пойти ещё дальше, добавив остановку демона шмеля в /etc/rc.d/rc.local_shutdown. Если последний отсутствует, можете создать. | Можете пойти ещё дальше, добавив остановку демона Шмеля в /etc/rc.d/rc.local_shutdown. Если последний отсутствует, можете создать. |
<code sh> | <code sh> |
[ -x /etc/rc.d/rc.bumblebeed ] && /etc/rc.d/rc.bumblebeed stop | [ -x /etc/rc.d/rc.bumblebee ] && /etc/rc.d/rc.bumblebee stop |
</code> | </code> |
| |
Несколько общих правок etc/bumblee/bumblebee.conf (скорее всего, подойдут всем): | Несколько общих правок etc/bumblee/bumblebee.conf (скорее всего, подойдут всем): |
<code sh> | <code sh> |
# Если вначале добавили пользователя в отличную от «bumblebee» группу, изменте соответственно строку «ServerGroup=» | # Если вначале добавили пользователя в отличную от «bumblebee» группу, измените соответственно строку «ServerGroup=» |
# Здесь мы полагаем «ImAllergicToBees» (у меня аллергия на пчёл): | # Здесь мы полагаем «ImAllergicToBees» (у меня аллергия на пчёл): |
ServerGroup=ImAllergicToBees | ServerGroup=ImAllergicToBees |
* Вики проекта Шмель: [[https://github.com/Bumblebee-Project/Bumblebee/wiki]] | * Вики проекта Шмель: [[https://github.com/Bumblebee-Project/Bumblebee/wiki]] |
* Создание страницы стало возможным благодаря: [[https://github.com/jgeboski/|jgeboski]] | * Создание страницы стало возможным благодаря: [[https://github.com/jgeboski/|jgeboski]] |
* Слакбилды: https://github.com/jgeboski/Bumblebee-SlackBuilds | * Исходные слакбилды: https://github.com/jgeboski/Bumblebee-SlackBuilds |
| * Новые слакбилды: https://github.com/whitewolf1776/Bumblebee-SlackBuilds |
* Автор: [[wiki:user:tommyc | TommyC]] | * Автор: [[wiki:user:tommyc | TommyC]] |
* Перевод: [[wiki:user:bormant | Serg Bormant]] | * Перевод: [[wiki:user:bormant | Serg Bormant]] |