Jak w tytule mogę poprawnie skonfigurować technologię nvidia-optimus na Ubuntu?
Jak w tytule mogę poprawnie skonfigurować technologię nvidia-optimus na Ubuntu?
Odpowiedzi:
Uwaga: ten post jest wynikiem wielu dni spędzonych na czytaniu różnych rzeczy w Internecie, więc weź go na własne ryzyko. Został przetestowany na Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (wszystkie 64-bitowe) z kartą graficzną nVidia GT650M. Dodaj komentarze i sugestie
1. Przede wszystkim musimy usunąć wszystkie sterowniki wideo na komputerze:
sudo apt-get remove --purge nvidia*
Następnie trzmiel, jeśli wcześniej go zainstalowałeś:
sudo apt-get remove --purge bumblebee*
Musimy również usunąć wszystkie sterowniki nouveau za pomocą:
sudo apt-get --purge remove xserver-xorg-video-nouveau
Aby mieć pewność, że zostały usunięte wszystkie pliki, spróbuj wpisać : dpkg -l | grep nvidia
i dpkg -l | grep bumblebee
nic nie powinno zwracać. Dla dpkg -l | grep nouveau
prawdopodobne jest, że zwraca kilka linii z napisem libdrm-nouveauXXXXX
; na razie po prostu je zignoruj.
2. Następnie musimy upewnić się, że wszystkie nagłówki wpisują:
sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)
3. Następną rzeczą do zrobienia jest umieszczenie na czarnej liście pozostałych sterowników w stylu secesyjnym i niektórych innych pakietów, które mogą powodować problemy:
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
sudo gedit /etc/modprobe.d/blacklist.conf
Dodanie następujących wierszy na końcu pliku:
# 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
Po prostu zapisz i wyjdź.
4. Teraz uruchom najlepiej znaną komendę Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
5. Od teraz pracujemy na tty. Otwórz konsolę tty1 za pomocą CTRL + ALT + F1 i zaloguj się za pomocą swojej nazwy użytkownika i hasła. Następnie wykonaj:
sudo service lightdm stop
Teraz zainstalujemy sterowniki. Wykonać:
sudo apt-get install nvidia-XXX-updates nvidia-settings
gdzie XXX to najnowsze stabilne sterowniki. Używam sterowników 331, ale gdzieś przeczytałem, że 343 można pobrać (nie wiem, czy są stabilne).
Uwaga: w najnowszych wersjach sterowników instaluje się również nvidia-prime
domyślnie. Ta technologia ma na celu automatyczne przełączanie między kartami graficznymi Intel i nVidia bez interwencji użytkownika. Aby to zrobić, obie karty są włączone. Z drugiej strony Optimus włącza kartę graficzną nVidia tylko na wyraźne życzenie użytkownika; przekłada się to na znacznie mniejsze zużycie energii w stosunku do liczby głównej.
Osobiście wolę Optimus od liczby pierwszej, ale jeśli nie przejmujesz się ogromnym marnotrawstwem energii, zatrzymaj się tutaj. W przeciwnym razie masz dwie opcje:
całkowicie usuń prime ( sudo apt-get remove --purge nvidia-prime
);
zostaw tam prime; w sekcji „Prime with optimus” zobaczymy, jak sprawić, by optirun działał również z zainstalowaną wersją Prime
6. Teraz musimy zainstalować pakiet bumblebee i virtualgl
sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
Następnie musimy dodać naszego użytkownika do grupy trzmieli za pomocą:
sudo usermod -a -G bumblebee $USER
Następnie uruchom ponownie komputer.
7. Zaloguj się do swojego konta użytkownika, otwórz nowe okno terminala i wpisz:
cd /etc/bumblebee
ls -Al
Wśród różnych wymienionych plików powinny być w szczególności dwa: bumblebee.conf
i xorg.nvidia.conf
. Zróbmy kopię zapasową obu z:
sudo cp FILE_NAME FILE_NAME.bak
Powinieneś zastąpić FILE_NAME rzeczywistą nazwą pliku. Następnie przejdźmy do zmodyfikowania pierwszego pliku za pomocą sudo gedit bumblebee.conf
, dodając (wszystko bez cudzysłowów)
Upewnij się, że „XorgConfFile” w [nvidia-driver] jest równy „/etc/bumblebee/xorg.conf.nvidia” (ponownie, bez cudzysłowów), następnie zapisz i zamknij gedit.
Teraz musimy edytować drugi plik za pomocą sudo gedit xorg.conf.nvidia
(w tym przypadku musimy również wstawić cudzysłowy !!). Wymień
Option "ConnectedMonitor" "DFP"
się Option "UseDisplayDevice" "none"
zapisać i wyjść.
8. Uruchom gedit /etc/modprobe.d/bumblebee.conf
i upewnij się, że wszystkie wiersze zawierające blacklist <something>
nie są komentowane (tzn. Nie zaczynają się od #
).
9. W tym momencie uruchom następujące polecenie
sudo service bumblebeed start
Jeśli zwraca błąd, spróbuj ponownie uruchomić polecenie z restartem, a nie startem. Jeśli nadal występują błędy, coś takiego:
restart: Unknown job: bumblebeed
Prawdopodobnie coś jest nie tak w pliku bumblebee.conf; więc ponownie sprawdź krok 7.
Jeśli zamiast tego wynik jest podobny do:
bumblebeed start/running, process XXXXX
Wkrótce skończyłeś konfigurować trzmiela!
10. Teraz możemy po prostu uruchomić optirun glxspheres
lub optirun glxspheres64
. Jeśli wszystko działa zgodnie z oczekiwaniami, masz wynik podobny do tego:
$ 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
....
Aby dokładnie sprawdzić, czy faktycznie korzystamy ze sterowników nvidia, otwórz inny terminal podczas optirun <application>
pracy, a następnie wpisz sudo lshw -c display | grep driver
. Wynik powinien być mniej więcej taki.
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
Z drugiej strony, jeśli zamkniesz całą aplikację, która została uruchomiona optirun
, powinna pokazywać tylko sterownik Intel. Otóż to!!
Dzięki tej odpowiedzi od Pavaka Paula, oto instrukcje dodawania interfejsu użytkownika trzmiela na Ubuntu 14.04 w celu zarządzania aplikacjami, które mają być otwierane za pomocą nVidii.
1. Zainstaluj Python App Indicator:
sudo apt-get install python-appindicator
2. Zainstaluj Git:
sudo apt-get install git
3. Utwórz katalog dla git:
mkdir git && cd git
4. Sprawdź repozytorium:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL
5. Przejdź do aplikacji startowych i dodaj wskaźnik trzmiela [kliknij Dodaj, a następnie wstaw żądaną nazwę i komentarz; wstaw bumblebee-indicator
w polu poleceń i kliknij Dodaj).
6. Uruchom ponownie.
Jeśli chcesz mieć opcję korzystania również nvidia-prime
czasami, spróbuj wykonać poniższe instrukcje.
1. Aby zapobiec bumblebeed
uruchomieniu w czasie rozruchu, wykonaj:
echo "manual" | sudo tee /etc/init/bumblebeed.override
2. Ten punkt jest najbardziej problematyczny; zapobiega trzmielowi na czarnej liście sterowników nVidia i powinien spowodować zawieszenie sesji graficznej. Wypróbuj na własne ryzyko! Biegać:
sudo gedit /etc/modprobe.d/bumblebee.conf
I skomentuj wiersz zawierający sterowniki nVidia XXX. Powinno to doprowadzić do czegoś takiego.
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
3. Uruchom ponownie system i uruchom nvidia-settings
. Ostateczna sytuacja jest następująca:
Jeśli wybierzesz „Intel (Oszczędzanie energii)” w ustawieniach NVIDIA, domyślnie włączona będzie tylko karta graficzna Intel. Nadal musisz uruchomić aplikację, optirun
aby korzystać z karty graficznej nVidia
sudo service bumblebeed start
optirun <application>
Jeśli zamiast tego chcesz użyć profilu „Nvidia (wydajność)”, wybierz go z ustawień nvidia, a następnie zaloguj się / wyloguj i wszystko powinno działać automatycznie. Jedyną rzeczą jest to, że nie musisz uruchamiać bumblebeed
demona z wybranym profilem, ponieważ może to powodować problemy.
1. Jeśli chcesz używać tylko nvidia-prime
:
sudo apt-get --purge remove bumblebee*
Następnie uruchom ponownie.
2. Jeśli chcesz używać tylko Optimusa bez usuwania nvidia-prime, edytuj ponownie poprzedni plik:
sudo gedit /etc/modprobe.d/bumblebee.conf
Cofnięcie komentarza (usunięcie znaku #) z wcześniej zmodyfikowanych linii:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
I ponowne uruchomienie. W takim przypadku możesz pozostawić działanie trzmiela podczas uruchamiania:
sudo rm /etc/init/bumbebeed.override
vblank_mode=0 primusrun ./glxgears
lub możemy użyć vblank_mode=0 optirun -b primus ./glxgears
. dzięki :)