Parę dni temu nabyłem nowego laptopa. Na pokładzie znajduje się NVIDIA GF525m z 2GB ramu oraz dodatkowo karta Intela. Oparte oczywiście o technologię Optimus, o której zapomniałem. Dokładniej to wygląda tak:
eshlox@almawet:~$ lspci | grep VGA00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)01:00.0 VGA compatible controller: nVidia Corporation Device 0df5 (rev a1)
Jako, że laptop ma dość dobre parametry, a nie chce mi się bawić w konfigurację to zainstalowałem sobie kubuntu. Dzisiaj postanowiłem przetestować to na jakiejś grze. Kiedyś grałem w Urban Terror więc postanowiłem odświeżyć kontakt z tą grą. Ku mojemu zdziwieniu grafika w grze uniemożliwiała.. jakąkolwiek widoczność, wszystko się zamazywało. Przeszukałem internet w poszukiwaniu rozwiązania jednak żadne ze znalezionych nie dało oczekiwanych rezlutatów. Aplikacje glxinfo, glxgears itp wypluwały błędy. Po czasie przypomniało mi się, że może nie jest używana NVIDIA. I rzeczywiście tak było. Zacząłem poszukiwania informacji w jaki sposób przełączać się między kartami graficznymi.
Natknąłem się na projekt o nazwie Bumblebee-Project. Jest to przepisany od nowa wcześniejszy projekt o nazwie Bumblebee. Dzięki temu możemy uruchomić aplikacje używając do tego drugiej karty, czyli NVIDIA. Instalacja nie jest trudna.
Pierwsze co musimy wykonać to dodać repozytoria bumblebee.
sudo add-apt-repository ppa:bumblebee/stable
Jeśli chcemy nowsze sterowniki niż te, które standardowo znajdują się w systemie to dodajmy także drugie repozytorium. Ja oczywiście je dodałem ;-)
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
Aktualizujemy i instalujemy bumblebee.
sudo apt-get updatesudo apt-get install bumblebee
Dodajemy także użytkownika do grupy bumblebee.
sudo usermod -a -G bumblebee TWOJA_NAZWA_UŻYTKOWNIKA
Gotowe. Restartujemy system.
U mnie po tych opracjach od razu glxinfo pokazało poprawne informacje, włączony direct rendering itp. Nie wiem w sumie czy to przez bumblebee czy przez nowsze sterowniki.
Jak to działa? Jeśli uruchomimy aplikację normalnie to będzie dla niej używana karta podstawowa czyli tutaj Intel. Jeśli przed uruchomioną aplikacją dodamy optirun
to będzie używała drugiej karty czyli NVIDIA.
Mimo, że mam uruchomione teraz dużo aplikacji to zrobię mały test za pomocą glxinfo (tak, wiem, że to mało wiarygodny test ;-))
Pierwsze uruchomienie - standardowo czyli używana będzie karta Intela.
eshlox@almawet:~$ glxgearsRunning synchronized to the vertical refresh. The framerate should beapproximately the same as the monitor refresh rate.303 frames in 5.0 seconds = 60.512 FPS302 frames in 5.0 seconds = 60.363 FPS302 frames in 5.0 seconds = 60.351 FPS
Drugie uruchomienie - użycie optirun czyli NVIDIA zamiast Intela.
eshlox@almawet:~$ optirun glxgears2131 frames in 5.0 seconds = 426.114 FPS2097 frames in 5.0 seconds = 419.212 FPS2160 frames in 5.0 seconds = 431.826 FPS
Jak widać różnica jest ;-) Bumblebee daje radę. Ja akurat gry uruchamiam raz na miesiąc więc w 99% wystarcza mi praca na karcie Intela. Jednak dobrze wiedzieć, że optimus w miarę działa. Oczywiście nie ma jeszcze automatycznej zmiany używanej karty, wyłączania nieużywanej karty i innych fajerwerków dostępnych dla użytkowników systemu Windows, aczkolwiek myślę, że potrzeba na to tylko czasu ;-)