[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
ru:howtos:hardware:nvidia_optimus [2013/12/26 11:48 (UTC)] – создано bormantru:howtos:hardware:nvidia_optimus [2016/06/17 20:16 (UTC)] (текущий) – [Установка Шмеля] sync with En bormant
Строка 1: Строка 1:
-<!-- Reviewed 20130114 by hazel --> 
 ====== Nvidia Optimus ====== ====== Nvidia Optimus ======
 Некоторые современные ноутбуки оснащены  технологией «nVidia Optimus». Это гибридный графический процессор (GPU) nVidia и Intel; это НЕ два отдельных GPU в одном ноутбуке. Графика nVidia обеспечивает производительность, графика Intel — энергосбережение при обычном использовании. К сожалению, средства настройки или переключения не включены в проприетарные закрытые драйверы, в отличие от поставляемых Advanced Micro Devices Inc. (AMD). Некоторые современные ноутбуки оснащены  технологией «nVidia Optimus». Это гибридный графический процессор (GPU) nVidia и Intel; это НЕ два отдельных GPU в одном ноутбуке. Графика nVidia обеспечивает производительность, графика Intel — энергосбережение при обычном использовании. К сожалению, средства настройки или переключения не включены в проприетарные закрытые драйверы, в отличие от поставляемых Advanced Micro Devices Inc. (AMD).
Строка 6: Строка 5:
  
 <note> <note>
-Во избежание путаницыздесь и дальше мы будем использовать nVidia для ссылки на компанию и ''nvidia'' для ссылки на закрытый проприетарный драйвер.+Во избежание путаницы здесь и далее будем использовать nVidia для ссылки на компанию и ''nvidia'' для ссылки на закрытый проприетарный драйвер.
  
-В командах терминала на этой странице строки, начинающиеся с ''$'' означают команды, выполняемые обычным пользователем, а начинающиеся с ''#'' должны выполняться от суперпользователя root.+В командах терминала этой страницы начинающиеся с ''$'' строки означают команды, выполняемые обычным пользователем, а начинающиеся с ''#'' должны выполняться суперпользователем root.
  
-Также обратите внимание на разницу между Bumblebee и bumblebeedbumblebeed является демоном первого.+Также обратите внимание на разницу между Bumblebee и bumblebeebumblebee является демоном первого.
 </note> </note>
  
Строка 20: Строка 19:
 ==== Установка Шмеля ==== ==== Установка Шмеля ====
 ---- ----
 +=== Автоматизированный способ ===
 +Благодаря слакеру Ryan McQuen есть новый автоматизированный установки Шмеля.
 +<note warning>ИСПОЛЬЗОВАТЬ ТОЛЬКО НА СВОЙ РИСК!
 +Если вы правили слакбилды, скорее всего этот сценарий вам не подойдет.</note>
 +
 +Можно выполнить от root:
 +  curl https://​raw.githubusercontent.com/​ryanpcmcquen/​linuxTweaks/​master/​slackware/​crazybee.sh | sh
 +
 +Либо загрузите файл сценария и выполните его от root.
 +
 +Сценарий обнаруживает мультилиб, создает необходимую группу, добавляет пользователей и вносит изменения в /etc/rc.d/rc.local, а также поддерживает параметр STABLE:
 +
 +  curl https://raw.githubusercontent.com/​ryanpcmcquen/​linuxTweaks/​master/​slackware/​crazybee.sh | STABLE=yes sh 
 +
 +Он также использует ''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>
Строка 29: Строка 45:
 Вместо этого можно загрузить архив со слакбилдами: Вместо этого можно загрузить архив со слакбилдами:
 <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
Строка 50: Строка 66:
  
 === Сборка и установка Шмеля === === Сборка и установка Шмеля ===
-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>
  
 === Сборка и установка прочих зависимостей === === Сборка и установка прочих зависимостей ===
-Некоторые слакбилды поддерживают параметр COMPAT32 для [[slackware:multilib|мультибиблиотечных систем]]. Ниже показана сборка с и без 32-битной совместимости. Используйте один требуемый вариант и не забывайте об этом при сборке указанных пакетов.+Некоторые слакбилды поддерживают параметр COMPAT32 для [[ru:slackware:multilib|мультибиблиотечных систем]]. Ниже показана сборка с и без 32-битной совместимости. Используйте один требуемый вариант и не забывайте об этом при сборке указанных пакетов.
 <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>
Строка 93: Строка 149:
 <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>
  
Строка 122: Строка 154:
 Если хотите использовать проприетарные драйверы 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
Строка 135: Строка 167:
 # 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
Строка 146: Строка 179:
 </code> </code>
  
-3. Сборка и установка: nvidia-kernel+2. Сборка и установка: nvidia-kernel
 <code sh> <code sh>
 # cd ../nvidia-kernel # cd ../nvidia-kernel
Строка 152: Строка 185:
 # upgradepkg --install-new nvidia-kernel-*.t?z # upgradepkg --install-new nvidia-kernel-*.t?z
 </code> </code>
-<code> +
-# COMPAT32=yes ./nvidia-kernel.SlackBuild # OТолько для систем x86_64, поддержка 32-битных библиотек и файлов. +
-</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>
  
Строка 191: Строка 221:
 Несколько общих правок etc/bumblee/bumblebee.conf (скорее всего, подойдут всем): Несколько общих правок etc/bumblee/bumblebee.conf (скорее всего, подойдут всем):
 <code sh> <code sh>
-# Если вначале добавили пользователя в отличную от «bumblebee» группу, изменте соответственно строку «ServerGroup=»+# Если вначале добавили пользователя в отличную от «bumblebee» группу, измените соответственно строку «ServerGroup=»
 # Здесь мы полагаем «ImAllergicToBees» (у меня аллергия на пчёл): # Здесь мы полагаем «ImAllergicToBees» (у меня аллергия на пчёл):
 ServerGroup=ImAllergicToBees ServerGroup=ImAllergicToBees
Строка 222: Строка 252:
 **__4. В:__** Что такое мультилиб/compat32 и нужно ли мне это? **__4. В:__** Что такое мультилиб/compat32 и нужно ли мне это?
  
-**О:** Это не особенность шмеля и зависит от вашего решения. Прочтите  [[http://docs.slackware.com/ru:slackware:multilib|про мультибиблиотечность]] и решите, нужно это вам или нет.+**О:** Это не особенность шмеля и зависит от вашего решения. Прочтите  [[ru:slackware:multilib|про мультибиблиотечность]] и решите, нужно это вам или нет.
  
 ==== Отдельные модели ноутбуков и GPU nVidia ==== ==== Отдельные модели ноутбуков и GPU nVidia ====
Строка 240: Строка 270:
   * Вики проекта Шмель: [[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]]
 ru:howtos:hardware:nvidia_optimus ()