Difference between revisions of "Bumblebee (Italiano)"
m (→Installare Bumblebee con Intel/NVidia) |
(pagina allineata) |
||
(20 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Graphics (Italiano)]] | [[Category:Graphics (Italiano)]] | ||
[[Category:X Server (Italiano)]] | [[Category:X Server (Italiano)]] | ||
− | + | [[en:Bumblebee]] | |
+ | [[es:Bumblebee]] | ||
[[fr:Bumblebee]] | [[fr:Bumblebee]] | ||
− | + | [[ru:Bumblebee]] | |
+ | [[tr:Bumblebee]] | ||
+ | [[zh-CN:Bumblebee]] | ||
Tratto da Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]: | Tratto da Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]: | ||
Line 12: | Line 15: | ||
La [http://www.nvidia.com/object/optimus_technology.html Tecnologia Optimus] è un'implementazione ''[http://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics grafica ibrida]'' senza hardware multiplexer. La GPU integrata gestisce il display, mentre la GPU dedicata gestisce il rendering più impegnativo ed invia il risultato alla GPU integrata per la visualizzazione. Quando il portatile è alimentato a batteria, la GPU dedicata si spegne per risparmiare energia e aumentare l'autonomia. | La [http://www.nvidia.com/object/optimus_technology.html Tecnologia Optimus] è un'implementazione ''[http://hybrid-graphics-linux.tuxfamily.org/index.php?title=Hybrid_graphics grafica ibrida]'' senza hardware multiplexer. La GPU integrata gestisce il display, mentre la GPU dedicata gestisce il rendering più impegnativo ed invia il risultato alla GPU integrata per la visualizzazione. Quando il portatile è alimentato a batteria, la GPU dedicata si spegne per risparmiare energia e aumentare l'autonomia. | ||
− | Bumblebee è un'implementazione software | + | Bumblebee è un'implementazione software composta di due parti: |
− | + | * Il rendering di programmi off-screen sulla scheda video dedicata e visualizzati sullo schermo utilizzando la scheda video integrata. Questo bridge è fornito da VirtualGL o primus (leggere di seguito) e si connette a un server X avviato per la scheda video dedicata. | |
+ | * Disattivare la scheda video dedicata quando non è in uso (si veda il paragrafo [[#Gestione energetica|Gestione energetica]]). | ||
− | + | Si cerca di imitare il comportamento della tecnologia Optimus, utilizzando la GPU dedicata per il rendering quando necessario e spegnerlo quando non in uso. Le versioni attuali supportano solo il rendering su richiesta, l'avvio automatico di un programma con la scheda video dedicata in base al carico di lavoro non è implementata. | |
{{Attenzione|Bumblebee è un attualmente ancora in fase di sviluppo. Ogni aiuto per il suo sviluppo è il benvenuto.}} | {{Attenzione|Bumblebee è un attualmente ancora in fase di sviluppo. Ogni aiuto per il suo sviluppo è il benvenuto.}} | ||
Line 22: | Line 26: | ||
==Installazione== | ==Installazione== | ||
− | Prima di procedere all'installazione di Bunblebee controllare il vostro BIOS e attivare l'opzione | + | Prima di procedere all'installazione di Bunblebee controllare il vostro BIOS e attivare l'opzione Optimus (nei vecchi computer portatili è chiamato "switchable"), se disponibile (non tutti i BIOS forniscono questa possibilità), e assicurarsi di installare il [[Intel (Italiano)|driver Intel]] per la scheda video secondaria. |
− | + | Sono disponibili diversi pacchetti per un setup completo : | |
− | + | * {{aur|bumblebee}} -il pacchetto principale che fornisce il demone e programmi client. | |
+ | * (opzionale) {{aur|bbswitch}} (o {{aur|dkms-bbswitch}}) -consigliato per il risparmio energetico disabilitando la scheda Nvidia | ||
+ | * (opzionale ) Se si desidera più di un semplice risparmio energetico, per un rendering di programmi sulla scheda Nvidia dedicata, è inoltre necessario: | ||
+ | ** Un driver per la scheda Nvidia. Il driver open-source {{ic|nouveau}} o il driver proprietario {{ic|nvidia}}. Vedere la sottosezione. | ||
+ | ** Un bridge per il rendering e la visualizzazione. Attualmente sono disponibili due pacchetti che sono in grado di farlo, {{aur|primus-git}} e {{aur|virtualgl}}. Solo uno di loro è necessario, ma possono essere installati ugualmente entrambi. | ||
− | + | {{Note|Se si desidera eseguire una applicazione a 32 bit su un sistema a 64 bit è necessario installare le opportune librerie lib32-* per il programma. inoltre è necessario anche installare {{AUR|lib32-virtualgl}} o {{aur|lib32-primus-git}}, in base a cosa avete scelto per effettuare il bridge del rendering.}} | |
− | + | === Installare Bumblebee con Intel/nvidia === | |
− | + | {{Attenzione|Non installare il pacchetto originale {{Pkg|nvidia-utils}} con Bunblebee - potrebbe causare un blocco del sistema!}} | |
− | |||
− | {{ | + | * Installare il pacchetto speciale {{aur|nvidia-utils-bumblebee}} per bumblebee da [[AUR (Italiano)|AUR]]. Se si desidera eseguire applicazioni a 32 bit (come i giochi con wine) in un sistema a 64 bit è necessario anche il pacchetto {{AUR|lib32-nvidia-utils-bumblebee}}. |
+ | * Installare il modulo del kernel {{AUR|nvidia-bumblebee}}. A differenza del pacchetto {{pkg|nvidia}}, questo non dipende da {{pkg|nvidia-utils}}. Se si installa {{AUR|dkms-nvidia}} o {{pkg|nvidia}}, non continuare l'aggiornamento se vi viene chiesto di sostituire {{AUR|nvidia-utils-bumblebbe}} con {{pkg|nvidia-utils}}. | ||
− | |||
− | === Installare Bumblebee con Intel/ | + | {{nota|Se si desidera eseguire applicazioni a 32-bit (come i giochi su wine) su sistemi a 64-bit, è necessario il pacchetto addizionale {{AUR|lib32-nvidia-utils-bumblebee}} reperibile su AUR.}} |
+ | |||
+ | === Installare Bumblebee con Intel/nouveau === | ||
Installare i driver nouveau e i pacchetti richiesti: | Installare i driver nouveau e i pacchetti richiesti: | ||
Line 47: | Line 56: | ||
* {{Pkg|nouveau-dri}} Mesa classic DRI + driver Gallium3D | * {{Pkg|nouveau-dri}} Mesa classic DRI + driver Gallium3D | ||
* {{Pkg|mesa}} librerie grafiche Mesa 3-D | * {{Pkg|mesa}} librerie grafiche Mesa 3-D | ||
− | |||
− | |||
− | |||
==Avviare Bumblebee== | ==Avviare Bumblebee== | ||
Line 55: | Line 61: | ||
Per poter utilizzare Bumblebee è necessario innanzitutto aggiungere il proprio utente (anche altri eventuali utenti) al gruppo Bumblebee: | Per poter utilizzare Bumblebee è necessario innanzitutto aggiungere il proprio utente (anche altri eventuali utenti) al gruppo Bumblebee: | ||
− | # | + | # gpasswd -a $USER bumblebee |
+ | |||
+ | dove {{ic|$USER}} è il nome di login dell'utente da aggiungere. Ri-effettuare il login per rendere effettive le modifiche. | ||
− | + | Successivamente per avviare automaticamente Bumbleebee all'avvio abilitare il servizio {{ic|bumblebeed}}: | |
− | + | # systemctl enable bumblebeed.service | |
− | |||
− | Ora riavviare il sistema e utilizzare il programma {{ic|[[#Utilizzo|optirun]]}} da un terminale per usufruire della tecnologia Optimus | + | Ora riavviare il sistema e utilizzare il programma {{ic|[[#Utilizzo|optirun]]}} da un terminale per usufruire della tecnologia Optimus NVIDIA per il rendering. |
== Utilizzo== | == Utilizzo== | ||
− | La riga di comando programma {{ic|optirun}} fornito con | + | La riga di comando programma {{ic|optirun}} fornito con Bumblebee è il vostro migliore amico per l'esecuzione di applicazioni sulla scheda NVIDIA Optimus. |
È possibile testare Bumblebee con questo comando: | È possibile testare Bumblebee con questo comando: | ||
{{bc|$ optirun glxgears}} | {{bc|$ optirun glxgears}} | ||
− | Se il programma viene eseguito con successo e il terminale fornisce informazioni sulla scheda | + | Se il programma viene eseguito con successo e il terminale fornisce informazioni sulla scheda NVIDIA, allora significa che Optimus con Bumblebee è funzionante. |
Per avviare un'applicazione utilizzando la scheda grafica dedicata: | Per avviare un'applicazione utilizzando la scheda grafica dedicata: | ||
Line 77: | Line 84: | ||
Alcuni esempi: | Alcuni esempi: | ||
− | |||
− | |||
− | |||
− | |||
Avviare applicazioni Windows con Optiumus | Avviare applicazioni Windows con Optiumus | ||
Line 86: | Line 89: | ||
$ optirun wine <windows application>.exe | $ optirun wine <windows application>.exe | ||
− | Utilizzare | + | Utilizzare NVIDIA Settings con Optimus |
$ optirun nvidia-settings -c :8 | $ optirun nvidia-settings -c :8 | ||
− | Per un elenco di opzioni per {{ic|optirun}}: | + | Per un elenco di opzioni per {{ic|optirun}} vedere la sua pagina man: |
− | {{ | + | |
+ | $ man optirun | ||
+ | |||
+ | Un nuovo programma in futuro diventerà la scelta predefinita, poichè apporta migliori prestazioni, vale a dire primus. Attualmente è necessario eseguire il programma a parte (che non accetta le opzioni a differenza di {{ic|optirun }}), ma in futuro sarà avviato automaticamente da optirun. | ||
+ | |||
+ | Utilizo: | ||
+ | |||
+ | $ primusrun glxgears | ||
== Configurazione == | == Configurazione == | ||
Line 97: | Line 107: | ||
È possibile configurare alcune variabili nel file {{ic|/etc/bumblebee/bumblebee.conf}}. | È possibile configurare alcune variabili nel file {{ic|/etc/bumblebee/bumblebee.conf}}. | ||
− | === Ottimizzare la velocità === | + | === Ottimizzare la velocità quando si utilizza VirtualGL come bridge === |
Bumblebee gestisce il rendering dei fotogrammi per la scheda NVIDIA Optimus in un server X invisibile con VirtualGL e li trasporta di nuovo al vostro Server X visibile. | Bumblebee gestisce il rendering dei fotogrammi per la scheda NVIDIA Optimus in un server X invisibile con VirtualGL e li trasporta di nuovo al vostro Server X visibile. | ||
Line 121: | Line 131: | ||
... | ... | ||
</nowiki>}} | </nowiki>}} | ||
+ | |||
+ | Si può anche fare in modo che VirtualGL legga i pixel dalla vostra scheda grafica. Impostare la variabile di ambiente {{ic|VGL_READBACK}} in {{ic|pbo}} dovrebbe aumentare le prestazioni. In confronto: | ||
+ | |||
+ | # PBO dovrebbe essere più veloce | ||
+ | VGL_READBACK=pbo optirun glxspheres | ||
+ | #Il valore predefinito è sync | ||
+ | VGL_READBACK=sync optirun glxspheres | ||
{{Note|CPU frequency scaling influisce direttamente sulle prestazioni rendering}} | {{Note|CPU frequency scaling influisce direttamente sulle prestazioni rendering}} | ||
Line 126: | Line 143: | ||
=== Gestione energetica === | === Gestione energetica === | ||
− | L'obiettivo di gestione dell'alimentazione è quello di spegnere la scheda | + | L'obiettivo di gestione dell'alimentazione è quello di spegnere la scheda NVIDIA quando non viene utilizzata da nessuna applicazione, e riaccenderla quando è necessario. Se bbswitch è installato, verrà rilevato automaticamente quando si avvia il demone Bumblebee. Nessuna configurazione aggiuntiva è necessaria. |
− | + | ==== Risparmio energetico predefinito della scheda NVIDIA con bbswitch ==== | |
− | {{ | + | Il comportamento predefinito di bbswitch è di lasciare lo stato di alimentazione della scheda invariata. {{ic|bumblebeed}} non fa altro che disabilitare la scheda quando viene avviato, in tal modo, quanto segue è necessario solo se si utilizza bbswitch senza bumblebeed . |
− | Impostare | + | Impostare le opzioni dei moduli {{ic|load_state}} e {{ic|unload_state}} in base alle vostre esigenze (si veda la [https://github.com/Bumblebee-Project/bbswitch documentazione di bbswitch]). |
− | {{hc|/etc/ | + | {{hc|/etc/modprobe.d/bbswitch.conf|<nowiki> |
− | + | options bbswitch load_state=0 unload_state=1 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</nowiki>}} | </nowiki>}} | ||
− | + | ==== Abilitare la scheda NVIDIA durante lo spegnimento ==== | |
− | + | La scheda NVIDIA non viene inizializzata correttamente durante la fase di boot se la scheda è stata spenta quando il sistema è stato arrestato l'ultima volta. Una soluzione è impostare l'opzione {{ic|TurnCardOffAtExit=false}} in {{ic|/etc/bumblebee/bumblebee.conf}}, tuttavia questo consentirà alla scheda di fermare ogni volta il demone Bumblebee, anche se fatto manualmente. Per assicurare che la scheda NVIDIA rimanga sempre accesa durante l'arresto, aggiungere il seguente [[Arch_Boot_Process_%28Italiano%29#Hook_personalizzati|hook personalizzato]] (se state utilizzando {{AUR|bbswitch}}): | |
+ | |||
+ | {{hc|/etc/rc.d/functions.d/nvidia-card-enable|<nowiki> | ||
+ | nvidia_card_enable() { | ||
+ | BBSWITCH=/proc/acpi/bbswitch | ||
+ | |||
+ | stat_busy "Enabling NVIDIA GPU" | ||
+ | |||
+ | if [ -w ${BBSWITCH} ]; then | ||
+ | echo ON > ${BBSWITCH} | ||
+ | stat_done | ||
+ | else | ||
+ | stat_fail | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | add_hook shutdown_poweroff nvidia_card_enable | ||
+ | </nowiki>}} | ||
=== Monitor multipli === | === Monitor multipli === | ||
+ | |||
+ | {{Nota|Questa configurazione è valida solo per i portatili, dove è cablato l 'uscita supplementare per la scheda intel. Purtroppo questo non è il caso per alcuni (o più?) computer portatili, in cui l'uscita HDMI è cablato alla scheda NVIDIA. In questo caso non esiste soluzione ideale, come qui mostrato. Ma potete impostare la vostra uscita supplementare per essere utilizzabile con le istruzioni Bumblebee [https://github.com/Bumblebee-Project/Bumblebee/wiki/Multi-monitor-setup wiki page].}} | ||
È possibile impostare più monitor con xorg.conf. Si possono impostarli per utilizzare la scheda Intel, ma con Bumblebee è ancora possibile utilizzare la scheda NVIDIA. Un esempio di configurazione, qui di seguito, mostra l'uso di due schermi identici con risoluzione 1080p e con connessione HDMI. | È possibile impostare più monitor con xorg.conf. Si possono impostarli per utilizzare la scheda Intel, ma con Bumblebee è ancora possibile utilizzare la scheda NVIDIA. Un esempio di configurazione, qui di seguito, mostra l'uso di due schermi identici con risoluzione 1080p e con connessione HDMI. | ||
Line 215: | Line 243: | ||
In questo esempio il BusID è 0:2:0 | In questo esempio il BusID è 0:2:0 | ||
+ | |||
+ | ==CUDA senza Bumblebee== | ||
+ | |||
+ | Non vi è una chiara documentazione in proposito, ma non è necessario che Bumblebee utilizzi CUDA e può funzionare anche su macchine in cui non riesce optirun. Per una guida su come farlo funzionare con il Lenovo IdeaPad Y580 (che utilizza il GeForce 660M), si veda: https://wiki.archlinux.org/index.php/Lenovo_IdeaPad_Y580#NVIDIA_Card . Queste istruzioni molto probabilmente funzioneranno anche con altre macchine (ad eccezione della parte acpi-manico-hack , che non può essere tralasciata). | ||
== Risoluzione dei problemi == | == Risoluzione dei problemi == | ||
Line 228: | Line 260: | ||
$ optirun bash | $ optirun bash | ||
$ optirun wine <windows program>.exe | $ optirun wine <windows program>.exe | ||
+ | |||
+ | Se state utilizzando il driver NVIDA, una soluzione a questo problema è quello di modificare {{ic|/etc/bumblebee/xorg.conf.nvidia}} e cambiare l'opzione {{ic|ConnectedMonitor}} su {{ic|CRT-0}}. | ||
=== [ERROR]Cannot access secondary GPU === | === [ERROR]Cannot access secondary GPU === | ||
+ | |||
+ | ==== Nessun dispositivo rilevato ==== | ||
In alcuni casi, l'esecuzione di optirun ritorna il seguente errore: | In alcuni casi, l'esecuzione di optirun ritorna il seguente errore: | ||
− | {{ | + | {{bc| |
− | + | [ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected. | |
+ | |||
[ERROR]Aborting because fallback start is disabled.}} | [ERROR]Aborting because fallback start is disabled.}} | ||
In questo caso sarà necessario spostare il file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} da qualche altra parte, o rimuoverlo se non utilizzato. Riavviare il demone bumblebeed e l'errore non dovrebbe più ripresentarsi. | In questo caso sarà necessario spostare il file {{ic|/etc/X11/xorg.conf.d/20-intel.conf}} da qualche altra parte, o rimuoverlo se non utilizzato. Riavviare il demone bumblebeed e l'errore non dovrebbe più ripresentarsi. | ||
+ | |||
+ | Potrebbe anche essere necessario commentare la linea riguardante il driver nel file {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}. | ||
+ | |||
+ | Se si sta utilizzando il driver nouveau si potrebbe provare a passare al driver nVidia . | ||
+ | |||
+ | ==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ==== | ||
+ | |||
+ | Se ottenete un errore simile nella console: | ||
+ | |||
+ | {{bc| | ||
+ | [ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0 | ||
+ | [ERROR]Aborting because fallback start is disabled. | ||
+ | }} | ||
+ | |||
+ | Potete cambiare questa linea in {{ic|/etc/bumblebee/xorg.conf.nvidia}} da: | ||
+ | |||
+ | {{bc| | ||
+ | Option "ConnectedMonitor" "DFP" | ||
+ | }} | ||
+ | |||
+ | a | ||
+ | |||
+ | {{bc| | ||
+ | Option "ConnectedMonitor" "CRT" | ||
+ | }} | ||
+ | |||
+ | === Fatal IO error 11 (Risorsa temporaneamente non disponibile) sul server X === | ||
+ | |||
+ | Cambiare {{ic|KeepUnusedXServer}} in {{ic|/etc/bumblebee/bumblebee.conf}} da {{ic|false}} a {{ic|true}}. Bumblebee non era in grado di riconoscere i vostri programmi forzati in background. | ||
=== Video tearing === | === Video tearing === | ||
Line 247: | Line 313: | ||
Le voci {{ic|1=X Server XVideo Setings -> Sync to VBlank}} e {{ic|1=OpenGL Settings -> Sync to VBlank}} dovrebbero essere entrambi attivati. | Le voci {{ic|1=X Server XVideo Setings -> Sync to VBlank}} e {{ic|1=OpenGL Settings -> Sync to VBlank}} dovrebbero essere entrambi attivati. | ||
La scheda Intel ha in generale meno problemi di tearing, in questo modo potrebbe essere utilizzata per la riproduzione video. In particolare utilizzando VA-API per la decodifica video (ad esempio {{ic|mplayer-vaapi}} e con il parametro {{ic|-vsync}}). Fare riferimento all'articolo [[Intel (Italiano)#Video_tearing| Intel]] su come risolvere i problemi di tearing sulla scheda Intel. Se non è ancora risolto, provate a disabilitare il compositing dal proprio ambiente desktop. Una ulteriore soluzione , potrebbe essere quella di disabilitare il triple buffering. | La scheda Intel ha in generale meno problemi di tearing, in questo modo potrebbe essere utilizzata per la riproduzione video. In particolare utilizzando VA-API per la decodifica video (ad esempio {{ic|mplayer-vaapi}} e con il parametro {{ic|-vsync}}). Fare riferimento all'articolo [[Intel (Italiano)#Video_tearing| Intel]] su come risolvere i problemi di tearing sulla scheda Intel. Se non è ancora risolto, provate a disabilitare il compositing dal proprio ambiente desktop. Una ulteriore soluzione , potrebbe essere quella di disabilitare il triple buffering. | ||
+ | |||
+ | ===Bumblebee si lamenta che non appartenete al gruppo anche se lo siete=== | ||
+ | |||
+ | Per prima cosa, verificare che si è in realtà nel gruppo ; {{ic | groups}}. Se non si è nel gruppo di aggiungere se stessi (come sopra) disconnettersi dalla sessione ed effettuare nuovamente il login. | ||
+ | |||
+ | In caso contrario, la rimozione del file {{ic|/var/run/bumblebeed.socket}} potrebbe aiutare. [https://bbs.archlinux.org/viewtopic.php?pid=1178729#p1178729 (discussione sul forum)] | ||
==Ulteriori risorse== | ==Ulteriori risorse== | ||
+ | |||
* [http://www.bumblebee-project.org Bumblebee Project repository] | * [http://www.bumblebee-project.org Bumblebee Project repository] | ||
* [http://wiki.bumblebee-project.org/ Bumblebee Project Wiki] | * [http://wiki.bumblebee-project.org/ Bumblebee Project Wiki] |
Revision as of 19:22, 5 November 2012
zh-CN:Bumblebee Tratto da Bumblebee's FAQ:
Bumblebee è una soluzione per rendere la tecnologia di Nvidia Optimus, presente sui computer portatili predisposti, disponibile nei sistemi GNU/Linux. Tale caratteristica coinvolge due schede grafiche con due differenti profili di consumo di alimentazione, che collegati in modo stratificato condividono un singolo framebuffer.
Contents
- 1 Bumblebee: Tecnologia Optimus per Linux
- 2 Installazione
- 3 Avviare Bumblebee
- 4 Utilizzo
- 5 Configurazione
- 6 CUDA senza Bumblebee
- 7 Risoluzione dei problemi
- 8 Ulteriori risorse
Bumblebee: Tecnologia Optimus per Linux
La Tecnologia Optimus è un'implementazione grafica ibrida senza hardware multiplexer. La GPU integrata gestisce il display, mentre la GPU dedicata gestisce il rendering più impegnativo ed invia il risultato alla GPU integrata per la visualizzazione. Quando il portatile è alimentato a batteria, la GPU dedicata si spegne per risparmiare energia e aumentare l'autonomia.
Bumblebee è un'implementazione software composta di due parti:
- Il rendering di programmi off-screen sulla scheda video dedicata e visualizzati sullo schermo utilizzando la scheda video integrata. Questo bridge è fornito da VirtualGL o primus (leggere di seguito) e si connette a un server X avviato per la scheda video dedicata.
- Disattivare la scheda video dedicata quando non è in uso (si veda il paragrafo Gestione energetica).
Si cerca di imitare il comportamento della tecnologia Optimus, utilizzando la GPU dedicata per il rendering quando necessario e spegnerlo quando non in uso. Le versioni attuali supportano solo il rendering su richiesta, l'avvio automatico di un programma con la scheda video dedicata in base al carico di lavoro non è implementata.
Installazione
Prima di procedere all'installazione di Bunblebee controllare il vostro BIOS e attivare l'opzione Optimus (nei vecchi computer portatili è chiamato "switchable"), se disponibile (non tutti i BIOS forniscono questa possibilità), e assicurarsi di installare il driver Intel per la scheda video secondaria.
Sono disponibili diversi pacchetti per un setup completo :
- bumblebeeAUR -il pacchetto principale che fornisce il demone e programmi client.
- (opzionale) bbswitchAUR (o dkms-bbswitchAUR) -consigliato per il risparmio energetico disabilitando la scheda Nvidia
- (opzionale ) Se si desidera più di un semplice risparmio energetico, per un rendering di programmi sulla scheda Nvidia dedicata, è inoltre necessario:
- Un driver per la scheda Nvidia. Il driver open-source
nouveau
o il driver proprietarionvidia
. Vedere la sottosezione. - Un bridge per il rendering e la visualizzazione. Attualmente sono disponibili due pacchetti che sono in grado di farlo, primus-gitAUR e virtualglAUR. Solo uno di loro è necessario, ma possono essere installati ugualmente entrambi.
- Un driver per la scheda Nvidia. Il driver open-source
Installare Bumblebee con Intel/nvidia
- Installare il pacchetto speciale nvidia-utils-bumblebeeAUR per bumblebee da AUR. Se si desidera eseguire applicazioni a 32 bit (come i giochi con wine) in un sistema a 64 bit è necessario anche il pacchetto lib32-nvidia-utils-bumblebeeAUR.
- Installare il modulo del kernel nvidia-bumblebeeAUR. A differenza del pacchetto nvidia, questo non dipende da nvidia-utils. Se si installa dkms-nvidiaAUR o nvidia, non continuare l'aggiornamento se vi viene chiesto di sostituire nvidia-utils-bumblebbeAUR con nvidia-utils.
Installare Bumblebee con Intel/nouveau
Installare i driver nouveau e i pacchetti richiesti:
# pacman -S xf86-video-nouveau nouveau-dri mesa
- xf86-video-nouveau driver sperimentale con accelerazione 3D
- nouveau-dri Mesa classic DRI + driver Gallium3D
- mesa librerie grafiche Mesa 3-D
Avviare Bumblebee
Per poter utilizzare Bumblebee è necessario innanzitutto aggiungere il proprio utente (anche altri eventuali utenti) al gruppo Bumblebee:
# gpasswd -a $USER bumblebee
dove $USER
è il nome di login dell'utente da aggiungere. Ri-effettuare il login per rendere effettive le modifiche.
Successivamente per avviare automaticamente Bumbleebee all'avvio abilitare il servizio bumblebeed
:
# systemctl enable bumblebeed.service
Ora riavviare il sistema e utilizzare il programma optirun
da un terminale per usufruire della tecnologia Optimus NVIDIA per il rendering.
Utilizzo
La riga di comando programma optirun
fornito con Bumblebee è il vostro migliore amico per l'esecuzione di applicazioni sulla scheda NVIDIA Optimus.
È possibile testare Bumblebee con questo comando:
$ optirun glxgears
Se il programma viene eseguito con successo e il terminale fornisce informazioni sulla scheda NVIDIA, allora significa che Optimus con Bumblebee è funzionante.
Per avviare un'applicazione utilizzando la scheda grafica dedicata:
$ optirun [options] <application> [application-parameters]
Alcuni esempi:
Avviare applicazioni Windows con Optiumus
$ optirun wine <windows application>.exe
Utilizzare NVIDIA Settings con Optimus
$ optirun nvidia-settings -c :8
Per un elenco di opzioni per optirun
vedere la sua pagina man:
$ man optirun
Un nuovo programma in futuro diventerà la scelta predefinita, poichè apporta migliori prestazioni, vale a dire primus. Attualmente è necessario eseguire il programma a parte (che non accetta le opzioni a differenza di optirun
), ma in futuro sarà avviato automaticamente da optirun.
Utilizo:
$ primusrun glxgears
Configurazione
È possibile configurare alcune variabili nel file /etc/bumblebee/bumblebee.conf
.
Ottimizzare la velocità quando si utilizza VirtualGL come bridge
Bumblebee gestisce il rendering dei fotogrammi per la scheda NVIDIA Optimus in un server X invisibile con VirtualGL e li trasporta di nuovo al vostro Server X visibile.
I Frames saranno compressi prima di essere trasportati - ciò consente di risparmiare larghezza di banda e può essere utilizzato per l'ottimizzazione della velocità di Bumblebee.
Per usare un metodo di compressione per una singola applicazione:
$ optirun -c <metodo-di-comppressione> applicazione
I metodi di compressione influiscono sulle prestazioni di utilizzo della CPU/GPU. I metodi compressi (come jpeg
) caricheranno al massimo la CPU e al minimo possibile la GPU; i metodi non compressi caricheranno più la GPU mentre la CPU avrà il minor carico possibile.
Metodi compressi sono: jpeg
, rgb
, yuv
Metodi non compressi sono: proxy
, xv
Per impostare un metodo di compressione per tutte le applicazioni impostare il valore VGLTransport
con il <metodo-di-compressione>
preferito in /etc/bumblebee/bumblebee.conf
/etc/bumblebee/bumblebee.conf
... [optirun] VGLTransport=proxy ...
Si può anche fare in modo che VirtualGL legga i pixel dalla vostra scheda grafica. Impostare la variabile di ambiente VGL_READBACK
in pbo
dovrebbe aumentare le prestazioni. In confronto:
# PBO dovrebbe essere più veloce VGL_READBACK=pbo optirun glxspheres #Il valore predefinito è sync VGL_READBACK=sync optirun glxspheres
Gestione energetica
L'obiettivo di gestione dell'alimentazione è quello di spegnere la scheda NVIDIA quando non viene utilizzata da nessuna applicazione, e riaccenderla quando è necessario. Se bbswitch è installato, verrà rilevato automaticamente quando si avvia il demone Bumblebee. Nessuna configurazione aggiuntiva è necessaria.
Risparmio energetico predefinito della scheda NVIDIA con bbswitch
Il comportamento predefinito di bbswitch è di lasciare lo stato di alimentazione della scheda invariata. bumblebeed
non fa altro che disabilitare la scheda quando viene avviato, in tal modo, quanto segue è necessario solo se si utilizza bbswitch senza bumblebeed .
Impostare le opzioni dei moduli load_state
e unload_state
in base alle vostre esigenze (si veda la documentazione di bbswitch).
/etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=1
Abilitare la scheda NVIDIA durante lo spegnimento
La scheda NVIDIA non viene inizializzata correttamente durante la fase di boot se la scheda è stata spenta quando il sistema è stato arrestato l'ultima volta. Una soluzione è impostare l'opzione TurnCardOffAtExit=false
in /etc/bumblebee/bumblebee.conf
, tuttavia questo consentirà alla scheda di fermare ogni volta il demone Bumblebee, anche se fatto manualmente. Per assicurare che la scheda NVIDIA rimanga sempre accesa durante l'arresto, aggiungere il seguente hook personalizzato (se state utilizzando bbswitchAUR):
/etc/rc.d/functions.d/nvidia-card-enable
nvidia_card_enable() { BBSWITCH=/proc/acpi/bbswitch stat_busy "Enabling NVIDIA GPU" if [ -w ${BBSWITCH} ]; then echo ON > ${BBSWITCH} stat_done else stat_fail fi } add_hook shutdown_poweroff nvidia_card_enable
Monitor multipli
È possibile impostare più monitor con xorg.conf. Si possono impostarli per utilizzare la scheda Intel, ma con Bumblebee è ancora possibile utilizzare la scheda NVIDIA. Un esempio di configurazione, qui di seguito, mostra l'uso di due schermi identici con risoluzione 1080p e con connessione HDMI.
/etc/X11/xorg.conf
Section "Screen" Identifier "Screen0" Device "intelgpu0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "0" SubSection "Display" Depth 24 Modes "1980x1080_60.00" EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "intelgpu1" Monitor "Monitor1" DefaultDepth 24 Option "TwinView" "0" SubSection "Display" Depth 24 Modes "1980x1080_60.00" EndSubSection EndSection Section "Monitor" Identifier "Monitor0" Option "Enable" "true" EndSection Section "Monitor" Identifier "Monitor1" Option "Enable" "true" EndSection Section "Device" Identifier "intelgpu0" Driver "intel" Option "XvMC" "true" Option "UseEvents" "true" Option "AccelMethod" "UXA" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "intelgpu1" Driver "intel" Option "XvMC" "true" Option "UseEvents" "true" Option "AccelMethod" "UXA" BusID "PCI:0:2:0" EndSection
Probabilmente sarà necessario cambiare il BusID in base alle vostre esigenze:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
In questo esempio il BusID è 0:2:0
CUDA senza Bumblebee
Non vi è una chiara documentazione in proposito, ma non è necessario che Bumblebee utilizzi CUDA e può funzionare anche su macchine in cui non riesce optirun. Per una guida su come farlo funzionare con il Lenovo IdeaPad Y580 (che utilizza il GeForce 660M), si veda: https://wiki.archlinux.org/index.php/Lenovo_IdeaPad_Y580#NVIDIA_Card . Queste istruzioni molto probabilmente funzioneranno anche con altre macchine (ad eccezione della parte acpi-manico-hack , che non può essere tralasciata).
Risoluzione dei problemi
[VGL] ERROR: Could not open display :8
Esiste un problema noto con alcune applicazioni che vengono lanciate con wine che si biforcano e uccidono il processo padre senza tenere traccia del problema (per esempio la sessione libera di gioco on-line di "Runes of Magic").
Una soluzione a questo problema è quanto segue:
$ optirun bash $ optirun wine <windows program>.exe
Se state utilizzando il driver NVIDA, una soluzione a questo problema è quello di modificare /etc/bumblebee/xorg.conf.nvidia
e cambiare l'opzione ConnectedMonitor
su CRT-0
.
[ERROR]Cannot access secondary GPU
Nessun dispositivo rilevato
In alcuni casi, l'esecuzione di optirun ritorna il seguente errore:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected. [ERROR]Aborting because fallback start is disabled.
In questo caso sarà necessario spostare il file /etc/X11/xorg.conf.d/20-intel.conf
da qualche altra parte, o rimuoverlo se non utilizzato. Riavviare il demone bumblebeed e l'errore non dovrebbe più ripresentarsi.
Potrebbe anche essere necessario commentare la linea riguardante il driver nel file /etc/X11/xorg.conf.d/10-monitor.conf
.
Se si sta utilizzando il driver nouveau si potrebbe provare a passare al driver nVidia .
NVIDIA(0): Failed to assign any connected display devices to X screen 0
Se ottenete un errore simile nella console:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0 [ERROR]Aborting because fallback start is disabled.
Potete cambiare questa linea in /etc/bumblebee/xorg.conf.nvidia
da:
Option "ConnectedMonitor" "DFP"
a
Option "ConnectedMonitor" "CRT"
Fatal IO error 11 (Risorsa temporaneamente non disponibile) sul server X
Cambiare KeepUnusedXServer
in /etc/bumblebee/bumblebee.conf
da false
a true
. Bumblebee non era in grado di riconoscere i vostri programmi forzati in background.
Video tearing
Problemi di tearing video sono piuttosto comuni utilizzando Bumblebee. Per risolvere il problema, è necessario attivare vsync
. Dovrebbe essere abilitato per impostazione predefinita sulla scheda Intel, ma verificarlo dai log di Xorg. Per verificare se sia o non sia abilitato per nvidia, eseguire:
optirun nvidia-settings -c :8
Le voci X Server XVideo Setings -> Sync to VBlank
e OpenGL Settings -> Sync to VBlank
dovrebbero essere entrambi attivati.
La scheda Intel ha in generale meno problemi di tearing, in questo modo potrebbe essere utilizzata per la riproduzione video. In particolare utilizzando VA-API per la decodifica video (ad esempio mplayer-vaapi
e con il parametro -vsync
). Fare riferimento all'articolo Intel su come risolvere i problemi di tearing sulla scheda Intel. Se non è ancora risolto, provate a disabilitare il compositing dal proprio ambiente desktop. Una ulteriore soluzione , potrebbe essere quella di disabilitare il triple buffering.
Bumblebee si lamenta che non appartenete al gruppo anche se lo siete
Per prima cosa, verificare che si è in realtà nel gruppo ; groups
. Se non si è nel gruppo di aggiungere se stessi (come sopra) disconnettersi dalla sessione ed effettuare nuovamente il login.
In caso contrario, la rimozione del file /var/run/bumblebeed.socket
potrebbe aiutare. (discussione sul forum)
Ulteriori risorse
Potete unirvi al canale #bumblebee su freenode.net