Як я можу правильно встановити технологію nvidia-optimus на Ubuntu?
Як я можу правильно встановити технологію nvidia-optimus на Ubuntu?
Відповіді:
NB: Ця публікація є результатом багато днів, проведених за читанням різних матеріалів в Інтернеті, тому сприймайте це на свій страх і ризик. Він був протестований на Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (усі 64-бітні) з графічною карткою nVidia GT650M. Не соромтеся додавати коментарі та пропозиції
1. Перш за все, ми повинні видалити всі відеодрайвери на комп’ютері:
sudo apt-get remove --purge nvidia*
Потім джмелі на випадок, якщо ви його встановили раніше:
sudo apt-get remove --purge bumblebee*
Ми також повинні видалити всі драйвери nouveau за допомогою:
sudo apt-get --purge remove xserver-xorg-video-nouveau
Щоб переконатися, що ви видалили цілі файли, спробуйте ввести dpkg -l | grep nvidia
та dpkg -l | grep bumblebee
: він нічого не повинен повертати. Бо dpkg -l | grep nouveau
цілком ймовірно, що він повертає деякі рядки, що говорять libdrm-nouveauXXXXX
; поки що просто ігноруйте їх.
2. Тоді ми маємо запевнити, що всі заголовки набирають:
sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)
3. Наступне, що потрібно зробити, це зробити чорний список залишків драйверів nouveau та деяких інших пакетів, які можуть спричинити проблеми:
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
sudo gedit /etc/modprobe.d/blacklist.conf
Додавання наступних рядків у кінці файлу:
# Necessary to install nvidia drivers
blacklist nouveau
blacklist lbm-nouveau
blacklist nvidia-173
blacklist nvidia-96
blacklist nvidia-current
blacklist nvidia-173-updates
blacklist nvidia-96-updates
alias nvidia nvidia_current_updates
alias nouveau off
alias lbm-nouveau off
options nouveau modeset=0
Просто збережіть та вийдіть.
4. Тепер запустіть найкращі команди ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
5. Відтепер ми працюємо на tty. Відкрийте консоль tty1 за допомогою CTRL + ALT + F1 та увійдіть із своїм іменем користувача та паролем. Потім виконайте:
sudo service lightdm stop
Тепер ми встановимо драйвери. Виконати:
sudo apt-get install nvidia-XXX-updates nvidia-settings
де XXX - останні стабільні драйвери. Я використовую 331 драйвери, але я десь прочитав, що 343 доступні для завантаження (не знаю, чи вони стабільні).
Примітка. З останніми версіями драйверів він також встановлюється nvidia-prime
за замовчуванням. Ця технологія призначена для автоматичного перемикання між графічною карткою Intel та nVidia без втручання користувача. Для цього він залишає ввімкнені обидві карти. Optimus, з іншого боку, вмикає графічну карту nVidia лише з явним запитом користувача; це означає значно менший рівень споживання електроенергії на прайм.
Я особисто віддаю перевагу оптимусу над прем'єр-міністром, але якщо ви не турбуєтесь про величезні витрати енергії, зупиніться тут. В іншому випадку у вас є два варіанти:
повністю видалити prime ( sudo apt-get remove --purge nvidia-prime
);
залишити там прайм; у розділі "Prime з оптимумом" ми побачимо, як змусити optirun працювати також із встановленим праймом
6. Тепер нам потрібно встановити джмелі та пакунки virtualgl
sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
Потім ми повинні додати свого користувача в групу джмелів за допомогою:
sudo usermod -a -G bumblebee $USER
А потім перезавантажте ПК.
7. Увійдіть у свій обліковий запис користувача, відкрийте нове вікно терміналу та введіть:
cd /etc/bumblebee
ls -Al
Серед різних перерахованих файлів, має бути два , зокрема: bumblebee.conf
а xorg.nvidia.conf
. Давайте зробимо резервну копію обох за допомогою:
sudo cp FILE_NAME FILE_NAME.bak
Ви повинні замінити FILE_NAME фактичним іменем файлу. Потім переходимо до зміни першого файлу за допомогою sudo gedit bumblebee.conf
додавання (все без лапок)
Переконайтеся, що "XorgConfFile" під [nvidia-driver] дорівнює "/etc/bumblebee/xorg.conf.nvidia" (знову ж таки, без лапок), а потім збережіть і закрийте gedit.
Тепер нам слід відредагувати інший файл за допомогою sudo gedit xorg.conf.nvidia
(у цьому випадку ми також повинні вставити лапки !!). Замінити
Option "ConnectedMonitor" "DFP"
з Option "UseDisplayDevice" "none"
, зберегти і вийти.
8. Запустіть gedit /etc/modprobe.d/bumblebee.conf
і переконайтесь, що всі рядки, що містять blacklist <something>
, не коментуються (тобто вони не починаються з #
).
9. У цей момент запустіть наступну команду
sudo service bumblebeed start
Якщо він повертає помилку, спробуйте запустити команду ще раз із перезапуском, а не запуском. Якщо у вас все ще є помилки, щось на кшталт:
restart: Unknown job: bumblebeed
Напевно, щось не так у файлі bumblebee.conf; тому перевірте крок 7.
Якщо натомість результат схожий на:
bumblebeed start/running, process XXXXX
Ви скоро закінчите налаштування джмеля!
10. Тепер ми можемо просто запустити optirun glxspheres
або optirun glxspheres64
. Якщо все працює, як очікувалося, у вас є такий результат:
$ optirun glxspheres64
Polygons in scene: 62464
Visual ID of window: 0x20
Context is Direct
OpenGL Renderer: GeForce GT 650M/PCIe/SSE2
182.253407 frames/sec - 203.394802 Mpixels/sec
182.940725 frames/sec - 204.161849 Mpixels/sec
....
Щоб повторно перевірити, чи ми насправді використовуємо драйвери nvidia, відкрийте інший термінал під час optirun <application>
роботи, а потім введіть sudo lshw -c display | grep driver
. Результат повинен бути чимось таким.
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
Якщо, з іншого боку, ви закриєте всі програми, запущені з optirun
неї, повинен показувати лише драйвер Intel. Це воно!!
Завдяки цій відповіді Pavak Paul, ось інструкція додати користувальницький інтерфейс джмеля в Ubuntu 14.04 для керування програмами, відкритими за допомогою nVidia.
1. Встановіть програмний індикатор Python:
sudo apt-get install python-appindicator
2. Встановити Git:
sudo apt-get install git
3. Складіть каталог для git:
mkdir git && cd git
4. Ознайомтесь із сховищем:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL
5. Перейдіть до програм запуску та додайте джміль-індикатор [натисніть кнопку Додати, а потім введіть ім'я та коментар, який потрібно; вставити bumblebee-indicator
у поле команд та натиснути на Додати).
6. Перезавантажте.
Якщо ви хочете мати можливість також nvidia-prime
іноді використовувати , спробуйте дотримуватися наведених нижче інструкцій.
1. Щоб запобігти bumblebeed
запуску під час завантаження, виконайте:
echo "manual" | sudo tee /etc/init/bumblebeed.override
2. Цей момент є найбільш проблемним; це запобігає джмелі до чорного списку драйверів nVidia і має призвести до замерзання графічної сесії. Спробуйте на власний ризик! Виконати:
sudo gedit /etc/modprobe.d/bumblebee.conf
І прокоментуйте рядок, який містить ваші драйвери nVidia XXX. Це має спричинити щось подібне.
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
3. Перезавантажте систему та запустіть nvidia-settings
. Кінцева ситуація така:
Якщо ви вибрали "Intel (енергозбереження)" у налаштуваннях nvidia, у вас за замовчуванням увімкнена лише графічна карта Intel. Вам потрібно запустити додаток, optirun
щоб використовувати графічну карту nVidia
sudo service bumblebeed start
optirun <application>
Якщо замість цього ви хочете використовувати профіль "Nvidia (продуктивність)", виберіть його з налаштувань nvidia, потім увійдіть / вийдіть, і все має працювати автоматично. Єдине, що вам не доведеться запускати bumblebeed
демон із цим вибраним профілем, оскільки це може спричинити неприємності.
1. Якщо ви хочете використовувати лише nvidia-prime
:
sudo apt-get --purge remove bumblebee*
Потім перезавантажте.
2. Якщо ви хочете використовувати лише оптимус, не знімаючи nvidia-prime, відредагуйте ще раз попередній файл:
sudo gedit /etc/modprobe.d/bumblebee.conf
Відставлення коментарів (вилучення символу #) з попередньо змінених рядків:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
І перезавантаження. У цьому випадку ви можете залишити джміль під час завантаження:
sudo rm /etc/init/bumbebeed.override
vblank_mode=0 primusrun ./glxgears
або ми можемо використовувати vblank_mode=0 optirun -b primus ./glxgears
. дякую :)