Bumblebee 3.0 for Ubuntu
Jakiś czas temu opisywałem program Ironhide do przełączania hybrydowych kart graficznych pod Linuksem - Linux Hybrid Graphics. W dzisiejszym wpisie chciałbym przedstawić kolejny programik - Bumblebee 3.0, za pomocą którego możemy również korzystać z naszej dedykowanej karty graficznej Nvidia, a nie tylko zintegrowanej z procesorem karty graficznej Intel HD Graphics. Ponieważ jest to najbardziej aktualny projekt, jeśli chodzi o technologie NVIDIA Optimus w systemach spod znaku pingwina.
Instalacja
Pierwszą czynnością, jaką powinniśmy najpierw wykonać, to odinstalować bieżący sterownik nvidia-current. Dlatego trzeba zrobić to teraz, bo później zostanie zainstalowany aktualny własnościowy sterownik wraz z programem Bumblebee. Wpisując w konsoli następujące polecenie:
sudo apt-get purge nvidia-current
Kolejną sprawą jest dodanie dwóch repozytoriów, w których znajdują się odpowiednie sterowniki dla naszego systemu, czyli znowu w konsoli:
sudo add-apt-repository ppa:bumblebee/stable sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
Następnie musimy zaktualizować pakiety oraz uaktualnić system:
sudo apt-get update sudo apt-get upgrade
Ostatnią i najważniejszą rzeczą jest zainstalowanie programu Bumblebee, który jak wspominałem wcześniej instaluje również aktualne sterowniki do karty graficznej Nvidia. Ponownie w konsoli wpisujemy:
sudo apt-get install bumblebee bumblebee-nvidia
Po zakończonej instalacji musimy jeszcze tylko w konsoli pozwolić na używanie Bumblebee:
sudo usermod -a -G bumblebee $USER
Dokładniej chodzi o to, że w miejsce $USER wpisujemy swój login i naciskamy enter. Wskutek czego, nie pozostaje nam nic innego, jak wykonać restart systemu.
Test
Dla porównania osiągów obydwu kart graficznych (Nvidia+Intel) możemy wykonać krótki sprawdzian programu Bumblebee, czyli najpierw w konsoli dla karty Intel:
glxspheres
A teraz dla karty Nvidia:
optirun glxspheres
Wyświetli się nam taki oto benchmark do testowania kart graficznych pod Linuksem.
W konsoli znowuż otrzymamy takie wyniki.
Karta graficzna Intel:
mariusz@Aspire:~$ glxspheres Polygons in scene: 62464 Visual ID of window: 0x94 Context is Direct OpenGL Renderer: Mesa DRI Intel(R) Sandybridge Mobile 60.029694 frames/sec - 66.993139 Mpixels/sec 60.167125 frames/sec - 67.146512 Mpixels/sec 60.188161 frames/sec - 67.169987 Mpixels/sec 60.156691 frames/sec - 67.134868 Mpixels/sec 60.181373 frames/sec - 67.162412 Mpixels/sec 60.158374 frames/sec - 67.136746 Mpixels/sec 60.167689 frames/sec - 67.147141 Mpixels/sec 60.132842 frames/sec - 67.108252 Mpixels/sec 60.136533 frames/sec - 67.112371 Mpixels/sec 59.211018 frames/sec - 66.079496 Mpixels/sec 60.149711 frames/sec - 67.127078 Mpixels/sec 60.132187 frames/sec - 67.107520 Mpixels/sec 60.066042 frames/sec - 67.033703 Mpixels/sec 60.281549 frames/sec - 67.274209 Mpixels/sec mariusz@Aspire:~$
Karta graficzna Nvidia:
mariusz@Aspire:~$ optirun glxspheres Polygons in scene: 62464 Visual ID of window: 0x21 Context is Direct OpenGL Renderer: GeForce GT 540M/PCIe/SSE2 95.820743 frames/sec - 106.935949 Mpixels/sec 100.468399 frames/sec - 112.122734 Mpixels/sec 105.005553 frames/sec - 117.186198 Mpixels/sec 102.770278 frames/sec - 114.691631 Mpixels/sec 108.868920 frames/sec - 121.497715 Mpixels/sec 148.306886 frames/sec - 165.510485 Mpixels/sec 148.856496 frames/sec - 166.123849 Mpixels/sec 148.558642 frames/sec - 165.791445 Mpixels/sec 147.905952 frames/sec - 165.063043 Mpixels/sec 148.047507 frames/sec - 165.221017 Mpixels/sec 147.886924 frames/sec - 165.041808 Mpixels/sec 148.385959 frames/sec - 165.598730 Mpixels/sec 146.777540 frames/sec - 163.803735 Mpixels/sec 148.439393 frames/sec - 165.658363 Mpixels/sec 145.090807 frames/sec - 161.921341 Mpixels/sec 121.980878 frames/sec - 136.130660 Mpixels/sec mariusz@Aspire:~$
Oczywiście jest to tylko przykład, jakie osiągi posiadają moje karty graficzne: zintegrowana z procesorem i5 Intel® HD Graphics 3000 (Sandy Bridge) oraz dedykowana karta graficzna nVidia GT540M CUDA (2 GB).
Poza tym możemy, także sprawdzić, że dzięki temu programowi całkowicie wyłączona jest karta graficzna Nvidia, bo jak wiadomo czemu, żeby po prostu móc dłużej pracować na baterii. Tak więc otwieramy konsole i wpisujemy taką formułę:
sudo lshw -c display
mariusz@Aspire:~$ sudo lshw -c display [sudo] password for mariusz: *-display description: VGA compatible controller product: 2nd Generation Core Processor Family Integrated Graphics Controller vendor: Intel Corporation physical id: 2 bus info: pci@0000:00:02.0 version: 09 width: 64 bits clock: 33MHz capabilities: msi pm vga_controller bus_master cap_list rom configuration: driver=i915 latency=0 resources: irq:42 memory:d1400000-d17fffff memory:c0000000-cfffffff ioport:3000(size=64) mariusz@Aspire:~$
Wyniku tego polecenia wyświetli się nam własnie taki powyższy komunikat, w którym będzie pokazane, że używamy wyłącznie zintegrowaną kartę graficzną Intel. W tym momencie druga karta jest niewidoczna przez system, a jeśli chcemy uruchomić jakiś program na tejże karcie graficznej (Nvidia), to w konsoli wpisujemy np. :
optirun gedit
Dlaczego?
Bowiem, że po sieci krążą różne poradniki na temat, jak używać hybrydowe karty graficzne pod Linuksem. Nie do końca poprawnie i wyczerpująco opisujące, to zagadnienie lub są po prostu źle przetłumaczone z języka angielskiego. Niektórzy pewnie posiadają jakąś super teoretyczną wiedzę, ale to nie ma nic wspólnego z praktyką. Toteż mam nadzieję, że komuś przyda się mój przepis testowany na własnej skórze. Tym bardziej, że jak na razie jest cicho sza, jeśli chodzi o Hybrid Graphics for Linux i trzeba właśnie tak kombinować. Może przyłożą się w końcu do roboty i w najbliższej przyszłości się to zmieni, czyli będzie to pełna automatyka, tak jak w najnowszych systemach Windows.
Pozdrawiam.