Nvidia Optimus Bumblebeevel

A Ubuwiki wikiből

Az Nvidia Optimus technológia lehetővé teszi a váltást az alaplapi, energiatakarékos Intel grafikus vezérlő és a nagy teljesítmenyű Nvidia grafikus vezérlő között. A Windowsban automatikus a váltás, az Ubuntuban viszont nem az.

Akik a 12.04.2-es vagy korábbi cd-ről telepítették az Ubuntut, azoknak a gépén csak az alaplapi grafikus vezérlőt kapcsolja be az Ubuntu, így sokáig bírja ugyan az akkumulátor, de nem futnak jól a nagyobb grafikai igényű programok. Akik a 12.04.3-as dvd-ről telepítették, azoknak állandóan be van kapcsolva az Nvidia vezérlő, így minden jól fut, csak túl hamar lemerül az akkumulátor.

Az lenne optimális mosoly, ha a Windowshoz hasonlóan alapjáraton csak az energiatakarékos alaplapi grafikus vezérlő futna, de bármikor be lehetne kapcsolni az Nvidiát is. Erre való a Bumblebee.

Az itt közölt leírást a blogomról hoztam át.

A Bumblebee telepítése és beállítása

A Bumblebee telepítése

A Bumblebeeből nincs csomag az Ubuntu tárolóiban, ezért előbb fel kell vennünk a tárolóját. Indítsuk el a Terminált:

Terminál indítása

Másoljuk be az alábbi parancsot, és nyomjuk le az Entert:

sudo add-apt-repository ppa:bumblebee/stable 

A Terminál kérni fogja a jelszavunkat. Gépeljük be (nem fog látszani, de ez így jó), majd nyomjuk le az Entert. A Terminál röviden ismerteti, hogy mire való a Bumblebee, majd kiírja, hogy a folytatáshoz nyomjuk le az Entert, vagy visszakozzunk Ctrl+C-vel. Nyomjuk le az Entert.

A tároló sikeres hozzáadása után frissítsük a csomaglistát:

sudo apt-get update

Még mielőtt telepítenénk a Bumblebeet, távolítsuk el az nvidia-prime csomagot. Ez nem biztos, hogy telepítve van, de ha igen, zavarja a Bumblebeet:

sudo apt-get remove nvidia-prime

Most már telepíthetjük a Bumblebeet:

sudo apt-get install bumblebee virtualgl primus

Ubuntu 14.04-ben az nvidia-331 csomagot is telepíteni kell hozzá:

sudo apt-get install nvidia-331 bumblebee virtualgl primus

A Bumblebeet csak olyan felhasználó tudja használni, aki tagja a bumblebee csoportnak. Aki a Bumblebeet telepítette, az automatikusan tagja lesz, de a többiek nem. Ha másnak is van fiókja a gépen, és azt akarjuk, hogy ő is használhassa a Bumblebeet, így adhatjuk hozzá a bumblebee csoporthoz:

sudo gpasswd -a felhasznalonev bumblebee

Még ne indítsuk újra a gépet, mert előtte még szerkesztenünk kell az /etc/bumblebee/xorg.conf.nvidia fájlt.

[Tartalom]

Az xorg.conf.nvidia beállítófájl szerkesztése

A Bumblebee telepítése után még be kell írnunk az Nvidia grafikus vezérlő buszazonosítóját az /etc/bumblebee/xorg.conf.nvidia fájlba. Ha ezt elmulasztjuk, nem fogjuk tudni az Nvidiát használni.

Az /etc/bumblebee/xorg.conf.nvidia fájlt csak rendszergazdajoggal lehet szerkeszteni. Ezt a jogot a gksu programmal fogjuk majd megkapni. A gksu program az Ubuntu 12.04-ben alapból benne van, Ubuntu 14.04 alá viszont nekünk magunknak kell telepítenünk.

Terminál Terminálba gépeljük be az alábbi parancsot, és nyomjuk le az Entert:

lspci | grep -i nvidia

A Terminál ki fog írni egy sort, elején a grafikus vezérlő buszazonosítójával. Az én gépemen ezt írja ki:

01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 520M] (rev ff)

Ebből a 01:00.0 a buszazonosító.

Az Alt+F2 billentyűkombinációval hívjuk elő a Parancs futtatását:

Alt+F2: Parancs futtatása

Egyes laptopokon (pl. Lenovókon) az Fn billentyűt is lenyomva kell közben tartani: Fn+Alt+F2.

Gépeljük be, hogy gksu gedit, és nyomjuk le az Entert:

gksu gedit

Megnyitás Kattintsunk a Megnyitásra. A Fájlok megnyitása párbeszédablak Helyek panelében kattintsunk a Fájlrendszerre, a Név panelben pedig menjünk bele az /etc/bumblebee mappába, és nyissuk meg az xorg.conf.nvidia fájlt:

/etc/bumblebee/xorg.conf.nvidia megnyitása

A fájlban ez után:

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

írjuk be a buszazonosítót (példánkban 01:00.0) úgy, hogy a pontot cseréljük benne kettőspontra (01:00:0):

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    BusID       "PCI:01:00:0"

Ne a példából írjuk be a buszazonosítót, hanem ennek a parancsnak a kimenetéből:

lspci | grep -i nvidia

Mentés Mentsük a fájlt, lépjünk ki a szövegszerkesztőből, és indítsuk újra a gépet.

[Tartalom]

A Bumblebee használata

Miután telepítettük a Bumblebeet, és újraindítottuk a gépet, alapból az energiatakarékos integrált grafikus vezérlő fog futni, de bármely programot indíthatunk úgy, hogy bekapcsoljuk hozzá az Nvidiát. Az alábbi példákban a GLX Spheres tesztprogramot fogjuk különféle módokon indítani.

Indítsuk el a Terminál Terminált, gépeljük az alábbi parancsot, és nyomjuk le az Entert:

glxspheres64

32 bites rendszeren csak annyit gépeljünk be, hogy glxspheres

Így, hogy csak a parancsot gépeltük be, a GLX Spheres az alaplapi grafikus vezérlőt fogja használni. Hagyjuk pár másodpercig futni, majd zárjuk be, és indítsuk el így:

optirun glxspheres64

Így már az Nvidia grafikus vezérlőt fogja használni a GLX Spheres (minden más viszont továbbra is az energiatakarékos Intel grafikus vezérlőt).

Az Nvidia grafikus vezérlő bekapcsolásának egy másik módja a primusrun:

primusrun glxspheres64

Azon az alapon, hogy az LCD-kijelzők egyébként sem váltanak másodpercenként 60-nál többször képet, a primusrun nem viszi ennél feljebb a képkockarátát, hacsak nem így indítjuk:

vblank_mode=0 primusrun glxspheres64

De így csak azt érjük el, hogy szaggatni fog a kép, és gyorsabban merül az akkumulátor.

GLX Spheres

[Tartalom]

Parancsikonok szerkesztése

Ahhoz, hogy a nagyobb grafikai igényű programok (ilyen például a Google Föld vagy az Ubuntu szoftverközpontból telepíthető gl-117 repülőgép-szimulátor) ne csak Terminálból indítva használhassák az Nvidia grafikus vezérlőt, hanem a Dashből vagy az Indítóból indítva is, szerkesztenünk kell a parancsikonjukat.

Dash & Indító

De ne essünk túlzásba! Azokhoz a programokhoz, amelyek jól elfutnak az Intel grafikus vezérlővel is (és a legtöbb program ilyen) teljesen fölösleges bekapcsolni az Nvidiát, mert gyorsabbak nem lesznek tőle, csak az akkumulátor fog sokkal hamarabb lemerülni.

A parancsikonokat a saját fiókunkban és rendszerszinten is szerkeszthetjük. Mindkettőnek megvan az előnye és a hátránya. A saját fiókban szerkesztett parancsikont nem írják felül a programfrissítések, viszont többfelhasználós gépen minden fiókban külön meg kell csinálni (vagy legalábbis mindenki fiókjába át kell másolni a mienkből). A rendszerszintű módosítás minden felhasználót érint, de ha frissül a program, ismét át kell írni a parancsikont.

[Tartalom]

Parancsikon szerkesztése saját fiókban

Kattintsuk a Dash-ikonra, gépeljük be, hogy gedit, és nyomjuk le az Entert:

Szövegszerkesztő indítása

Megnyitás Nyissuk meg a szerkeszteni kívánt parancsikont, pl. a gl-117 repülőgép-szimulátorét. A Fájlok megnyitása párbeszédablak Helyek panelében kattintsunk a Fájlrendszerre, a Név panelben pedig menjünk bele a /usr/share/applications mappába, és nyissuk meg a gl-117.desktop-ot:

gl-117.desktop megnyitása

Az Exec sorban szúrjuk be a parancs elé azt, hogy optirun (vagy primusrun):

Exec=optirun gl-117

Az optirun és a parancs között legyen szóköz.

A fájlt ne a Mentés Mentésre kattintva mentsük (arra hiába is kattintanánk, rendszergazdajog nélkül úgysem menthetünk a /usr/share/applications mappába), hanem vigyük fel az egérmutatót a menüsorig, és a Fájl menüben válasszuk azt, hogy Mentés másként:

Mentés másként

A Mentés másként párbeszédablak Helyek panelében kattintsunk a felhasználónevünkre, majd jobb gombbal kattintsunk bele a Név panelbe, és bal gombbal kattintsunk arra, hogy Rejtett fájlok megjelenítése:

Rejtett fájlok megjelenítése

Menjünk bele a láthatóvá vált .local mappába, azon belül pedig a share-be. Nézzük meg, hogy van-e benne applications mappa. Ha van, menjünk bele, és mentsük a fájlt. Ha nincs, kattintsunk arra, hogy Mappa létrehozása, adjuk az új mappának azt a nevet, hogy applications, és mentsük bele a fájlt:

~/.local/share/applications

[Tartalom]

Hol vannak még .desktop fájlok?

Van, hogy egy alkalmazásnak van parancsikonja a Dashben, de nincs meg a hozzá tartozó .desktop fájl a /usr/share/applications mappában. Ilyenkor két helyen érdemes még körülnézni. A forrásból fordított programok (és néhány 3. féltől származó program) a /usr/local/share/applications mappába telepítik a parancsikonjukat. A saját fiókba települő, 3. féltől származó programok pedig a ~/.local/share/applications mappába (a ~ a saját mappa unixos rövidítése).

Heroes of Newerth

[Tartalom]

Parancsikon szerkesztése rendszerszinten

Ez nem a legjobb ötlet, mert a program frissítésekor a frissítés lecseréli az általunk szerkesztett .desktop fájlt a csomagban levőre, de többfelhasználós gépen van annyi előnye, hogy nem kell külön-külön minden felhasználó fiókjában megcsinálni.

Az Alt+F2 billentyűkombinációval hívjuk elő a Parancs futtatását, gépeljük be, hogy gksu gedit, és nyomjuk le az Entert:

Alt+F2: gksu gedit

Megnyitás Kattintsunk a Megnyitásra. A Fájlok megnyitása párbeszédablak Helyek panelében kattintsunk a Fájlrendszerre, a Név panelben pedig menjünk bele a /usr/share/applications mappába, és nyissuk meg a szerkeszteni kívánt .desktop fájlt:

Fájl megnyitása

Az Exec sorban szúrjuk be a parancs elé azt, hogy optirun (vagy primusrun):

Exec=optirun gl-117

Az optirun és a parancs között legyen szóköz.

Mentés Mentsük a fájlt.

[Tartalom]

Amikor nem a parancsikont kell szerkeszteni

Steames játékok indítása

Azt, hogy melyik steames játékhoz legyen bekapcsolva az Nvidia grafikus vezérlő, a Steam kezelőfelületén a Könyvtár menüben lehet beállítani.

Jobb gombbal kattintsunk a kiválasztott játékra, bal gombbal pedig a Tulajdonságokra:

Champions of Regnum: Tulajdonságok

Kattintsunk az Indítási opciók beállítására:

Indítási opciók beállítása

Gépeljük be, hogy primusrun %command% (vagy optirun %command%):

primusrun %command%

OK, majd zárjuk be a Tulajdonságokat.

[Tartalom]

Wrapper scripttel induló programok: Ryzom

Vannak olyan programok, amelyeknek hiába szerkesztjük a parancsikonjukat, nem váltanak át Nvidiára. Ha ennek csak az az oka, hogy a .desktop fájlba beírt parancs nem közvetlenül, hanem egy ún. wrapper scripten keresztül indítja a programot, akkor megpróbálhatjuk a wrapper scriptben bekapcsolni az Nvidiát.

Ilyen, wrapper scripttel induló program az Ubuntu szoftverközpontból telepíthető Ryzom. A Ryzom wrapper scriptje az /opt/ryzom mappában van, ezért a szerkesztéséhez rendszergazdajogot kell szereznünk.

Az Alt+F2 billentyűkombinációval hívjuk elő a Parancs futtatását, gépeljük be, hogy gksu gedit, és nyomjuk le az Entert:

Alt+F2: gksu gedit

Megnyitás Nyissuk meg az /opt/ryzom/ryzom.sh fájlt, és tekerjünk le egészen idáig:

# Launch Ryzom client if it exists
if [ -f $RYZOM_CLIENT ]
then
  echo "Launching Ryzom..."

  $RYZOM_CLIENT $1 $2 $3
fi

A $RYZOM_CLIENT $1 $2 $3 elé írjuk be, hogy optirun (vagy primusrun):

# Launch Ryzom client if it exists
if [ -f $RYZOM_CLIENT ]
then
  echo "Launching Ryzom..."

  optirun $RYZOM_CLIENT $1 $2 $3
fi

Mentés Mentsük a fájlt.

[Tartalom]

Honnan kapta a nevét a Bumblebee és a Primus?

Az Nvidia Optimusról Optimus Fővezér jutott a fejlesztők eszébe, róla pedig egy másik autobot, Űrdongó (angolul Bumblebee). Primus a transzformerek teremtője.

[Tartalom]

Személyes eszközök