Come titolo, come posso impostare correttamente la tecnologia nvidia-optimus su Ubuntu?
Come titolo, come posso impostare correttamente la tecnologia nvidia-optimus su Ubuntu?
Risposte:
NB: questo post è il risultato di molti giorni trascorsi a leggere vari articoli sul Web, quindi prendilo a tuo rischio. È stato testato su Ubuntu 12.04 / 12.10 / 13.04 / 13.10 / 14.04 (tutti a 64 bit) con la scheda grafica nVidia GT650M. Sentiti libero di aggiungere commenti e suggerimenti
1. Prima di tutto, dobbiamo eliminare tutti i driver video sul computer:
sudo apt-get remove --purge nvidia*
Quindi bumblebee nel caso in cui sia stato installato in precedenza:
sudo apt-get remove --purge bumblebee*
Dobbiamo anche eliminare tutti i driver nouveau con:
sudo apt-get --purge remove xserver-xorg-video-nouveau
Per essere sicuro di aver eliminato tutti gli elementi, prova a digitare dpkg -l | grep nvidia
e dpkg -l | grep bumblebee
: non dovrebbe restituire nulla. Perché dpkg -l | grep nouveau
è probabile che ritorni alcune righe dicendo libdrm-nouveauXXXXX
; per ora, ignorali.
2. Quindi, dobbiamo assicurare che tutte le intestazioni digitino:
sudo apt-get install linux-source && sudo apt-get install linux-headers-$(uname -r)
3. La prossima cosa da fare è inserire nella blacklist i driver nouveau rimanenti e alcuni altri pacchetti che potrebbero causare problemi:
sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak
sudo gedit /etc/modprobe.d/blacklist.conf
Aggiunta delle seguenti righe alla fine del file:
# 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
Salva ed esci.
4. Ora, esegui i comandi Ubuntu più conosciuti
sudo apt-get update && sudo apt-get dist-upgrade -y
5. Da adesso, lavoriamo su tty. Apri la console tty1 con CTRL + ALT + F1 e accedi con il tuo nome utente e password. Quindi eseguire:
sudo service lightdm stop
Ora installeremo i driver. Eseguire:
sudo apt-get install nvidia-XXX-updates nvidia-settings
dove XXX è l'ultimo driver stabile. Sto usando i 331 driver, ma ho letto da qualche parte che i 343 sono disponibili per il download (non so se sono stabili).
NB: con le ultime versioni dei driver, si installa anche nvidia-prime
per impostazione predefinita. Questa tecnologia ha lo scopo di passare automaticamente tra la scheda grafica Intel e nVidia senza l'intervento dell'utente. Per fare questo, lascia entrambe le carte accese. Optimus, d'altra parte, accende la scheda grafica nVidia solo con esplicita richiesta dell'utente; si traduce in un consumo energetico significativamente inferiore rispetto a prime.
Personalmente preferisco optimus piuttosto che prime, ma se non ti preoccupi dell'enorme spreco di energia, fermati qui. Altrimenti, hai due opzioni:
elimina completamente prime ( sudo apt-get remove --purge nvidia-prime
);
lascia prime lì; nella sezione "Prime con optimus" vedremo come far funzionare Optirun anche con Prime installato
6. Ora, dobbiamo installare bumblebee e i pacchetti virtualgl con
sudo apt-get install bumblebee bumblebee-nvidia virtualgl virtualgl-libs virtualgl-libs-ia32:i386 virtualgl-libs:i386
Quindi, dobbiamo aggiungere il nostro utente nel gruppo calabrone con:
sudo usermod -a -G bumblebee $USER
E quindi riavviare il PC.
7. Accedi al tuo account utente, apri una nuova finestra del terminale e digita:
cd /etc/bumblebee
ls -Al
Tra i vari file elencati, dovrebbero essercene due in particolare: bumblebee.conf
e xorg.nvidia.conf
. Facciamo una copia di backup di entrambi con:
sudo cp FILE_NAME FILE_NAME.bak
È necessario sostituire FILE_NAME con il nome effettivo del file. Quindi, andiamo a modificare il primo file con sudo gedit bumblebee.conf
, aggiungendo (tutto senza virgolette)
Assicurati che "XorgConfFile" in [nvidia-driver] sia uguale a "/etc/bumblebee/xorg.conf.nvidia" (di nuovo, senza virgolette), quindi salva e chiudi gedit.
Ora dobbiamo modificare l'altro file con sudo gedit xorg.conf.nvidia
(in questo caso dobbiamo inserire anche le virgolette !!). Sostituisci
Option "ConnectedMonitor" "DFP"
con Option "UseDisplayDevice" "none"
, salva ed esci.
8. Esegui gedit /etc/modprobe.d/bumblebee.conf
e assicurati che tutte le righe che contengono blacklist <something>
non siano commentate (ovvero non iniziano con #
).
9. A questo punto, eseguire il comando seguente
sudo service bumblebeed start
Se restituisce un errore, provare a eseguire nuovamente il comando con riavvio anziché con avvio. Se hai ancora errori, qualcosa del tipo:
restart: Unknown job: bumblebeed
Probabilmente c'è qualcosa che non va nel file bumblebee.conf; quindi, ricontrollare il passaggio 7.
Se invece il risultato è simile a:
bumblebeed start/running, process XXXXX
Presto hai finito di installare il calabrone!
10. Ora possiamo semplicemente eseguire optirun glxspheres
o optirun glxspheres64
. Se tutto funziona come previsto, hai un output come questo:
$ 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
....
Per ricontrollare che stiamo effettivamente utilizzando i driver nvidia, aprire un altro terminale mentre optirun <application>
è in esecuzione, quindi digitare sudo lshw -c display | grep driver
. Il risultato dovrebbe essere qualcosa del genere.
configuration: driver=nvidia latency=0
configuration: driver=i915 latency=0
Se, d'altra parte, si chiude tutta l'applicazione avviata con optirun
esso dovrebbe mostrare solo il driver Intel. Questo è tutto!!
Grazie a questa risposta di Pavak Paul, ecco le istruzioni per aggiungere l'interfaccia utente di bumblebee su Ubuntu 14.04 per gestire le app da aprire usando nVidia.
1. Installa l'indicatore dell'app Python:
sudo apt-get install python-appindicator
2. Installa Git:
sudo apt-get install git
3. Crea una directory per git:
mkdir git && cd git
4. Dai un'occhiata al repository:
git clone https://github.com/Bumblebee-Project/bumblebee-ui.git
cd bumblebee-ui
sudo ./INSTALL
5. Vai su Startup Applications e aggiungi bumblebee-indicatore [fai clic su Aggiungi, quindi inserisci il Nome e il commento che desideri; inserire bumblebee-indicator
nella casella di comando e fare clic su Aggiungi).
6. Riavvia.
Se vuoi avere l'opzione di usare anche a nvidia-prime
volte, prova a seguire le istruzioni qui sotto.
1. Per impedire l' bumblebeed
avvio all'avvio, eseguire:
echo "manual" | sudo tee /etc/init/bumblebeed.override
2. Questo punto è il più problematico; impedisce al calabrone di inserire nella lista nera i driver nVidia e dovrebbe provocare il blocco della sessione grafica. Provalo a tuo rischio e pericolo! Correre:
sudo gedit /etc/modprobe.d/bumblebee.conf
E commenta la riga contenente i tuoi driver nVidia XXX. Dovrebbe risultare in qualcosa del genere.
# XXX
#blacklist nvidia-XXX
#blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
3. Riavviare il sistema e avviare nvidia-settings
. La situazione finale è questa:
Se si seleziona "Intel (Risparmio energetico)" nelle impostazioni NVIDIA, per impostazione predefinita è attivata solo la scheda grafica Intel. Devi ancora eseguire un'applicazione con optirun
per usare la scheda grafica nVidia
sudo service bumblebeed start
optirun <application>
Se invece vuoi usare il profilo "Nvidia (Prestazioni)", selezionalo dalle impostazioni nvidia, quindi accedi / disconnetti e tutto dovrebbe funzionare automaticamente. L'unica cosa è che non è necessario avviare il bumblebeed
demone con questo profilo selezionato perché potrebbe causare problemi.
1. Se si desidera utilizzare solo nvidia-prime
:
sudo apt-get --purge remove bumblebee*
Quindi riavviare.
2. Se si desidera utilizzare solo optimus senza rimuovere nvidia-prime, modificare nuovamente il file precedente:
sudo gedit /etc/modprobe.d/bumblebee.conf
Senza commenti (rimuovendo il carattere #) dalle righe precedentemente modificate:
# XXX
blacklist nvidia-XXX
blacklist nvidia-XXX-updates
blacklist nvidia-experimental-XXX
E riavvio. In questo caso, puoi lasciare bumblebeed in esecuzione all'avvio:
sudo rm /etc/init/bumbebeed.override
vblank_mode=0 primusrun ./glxgears
o possiamo usare vblank_mode=0 optirun -b primus ./glxgears
. grazie :)