Difference between revisions of "Bumblebee (Italiano)"

From ArchWiki
Jump to: navigation, search
(update templates, see Help:Style)
(pagina allineata)
(47 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)]]
{{i18n|Bumblebee}}
+
[[en:Bumblebee]]
 +
[[es:Bumblebee]]
 
[[fr:Bumblebee]]
 
[[fr:Bumblebee]]
{{stub}}
+
[[ru:Bumblebee]]
 +
[[tr:Bumblebee]]
 +
[[zh-CN:Bumblebee]]
 +
Tratto da Bumblebee's [https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ FAQ]:
  
{{Warning|Bumblebee è un attualmente ancora in fase di sviluppo e potrebbe non funzionare correttamente sulla vostra macchina}}
+
''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.''
{{Note|Si prega di riportare i bugs al [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project] il GitHub tracker come descritto nel [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues Wiki].}}
+
''Bumblebee è una soluzione per la tecnologia grafica ibrida di Nvidia Optimus, che permette di utilizzare la scheda grafica dedicata per il rendering. È un progetto avviato da Martin Juhl''.
+
  
== A proposito di Bumblebee ==
+
== Bumblebee: Tecnologia Optimus per Linux ==
  
 
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 basata su VirtualGL ed un driver del kernel in grado di utilizzare la GPU dedicata, che non è fisicamente collegata allo schermo.
+
Bumblebee è un'implementazione software composta di due parti:
  
=== Come funziona ===
+
* 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]]).
  
Bumblebee cerca di imitare il comportamento della tecnologia Optimus, utilizzando la GPU dedicata per il rendering quando necessario e spegnendolo quando non utilizzato. La release attuale supporta solo il rendering on-demand, mentre la gestione energetica è ancora in fase di sviluppo.
+
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.
  
La scheda dedicata Nvidia è gestita come un server X separato e collegato ad uno schermo "fake" (lo schermo è configurato ma non utilizzato). Il secondo server viene chiamato mediante VirtualGL, come da un server remoto. Detto questo, saranno necessari una serie di passi per impostare il driver del kernel, il server X ed un demone.
+
{{Attenzione|Bumblebee è un attualmente ancora in fase di sviluppo. Ogni aiuto per il suo sviluppo è il benvenuto.}}
  
== Installazione ==
+
==Installazione==
  
Il pacchetto di AUR {{AUR|bumblebee}} è la versione stabile e usa i driver proprietari Nvidia di default.
+
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.
  
C'è anche una versione git ({{AUR|bumblebee-git}}) che non è legata a nessun tipo di driver e può essere utilizzato sia con i driver Nvidia che con Nouveau. Si tratta di un check-out del ramo {{ic|develop}} del repository GitHub.
+
Sono disponibili diversi pacchetti per un setup completo :
  
Per l'esecuzione di applicazioni a 32 bit su un sistema a 64 bit è necessario il pacchetto {{AUR|lib32-virtualgl}} insieme a qualsiasi altra libreria specifica per applicazioni a 32-bit.
+
* {{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 è stato installato bumblebee dal repository GitHub utilizzando il programma di installazione, eseguire il programma di disinstallazione prima di installare il pacchetto da AUR}}
+
{{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.}}
  
Le versioni a partire dalla 2.3 funzionano con un demone per avviare ed arrestare il server X, ma non controllano la potenza della scheda di default (vedere [[#Power Management]] sotto)
+
=== Installare Bumblebee con Intel/nvidia ===
  
=== Utilizzo del driver Nvidia ===
+
{{Attenzione|Non installare il pacchetto originale {{Pkg|nvidia-utils}} con Bunblebee - potrebbe causare un blocco del sistema!}}
  
La versione git di bumblebee richiede pacchetti aggiuntivi per funzionare con i driver Nvidia.
+
* 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}}.
  
* {{AUR|nvidia-utils-bumblebee}} contiene i formati binari di Nvidia pacchettizzati in modo da non interferire con la {{Pkg|libgl}} necessaria.
 
* {{AUR|lib32-nvidia-utils-bumblebee}} contiene i formati binari di Nvidia 32-bit pacchettizzati in modo da non interferire con la {{Pkg|libgl}} necessaria.
 
  
=== Utilizzo dei driver Nouveau ===
+
{{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.}}
  
Per utilizzare i driver [[Nouveau]] è necessario installare la versione git di Bumblebee ed alcuni pacchetti aggiuntivi:
+
=== Installare Bumblebee con Intel/nouveau ===
 +
 
 +
Installare i driver nouveau e i pacchetti richiesti:
 +
{{bc|# pacman -S xf86-video-nouveau nouveau-dri mesa}}
  
 
* {{Pkg|xf86-video-nouveau}} driver sperimentale con accelerazione 3D  
 
* {{Pkg|xf86-video-nouveau}} driver sperimentale con accelerazione 3D  
Line 48: Line 57:
 
* {{Pkg|mesa}} librerie grafiche Mesa 3-D  
 
* {{Pkg|mesa}} librerie grafiche Mesa 3-D  
  
Installarli con
+
==Avviare Bumblebee==
{{bc|# pacman -S xf86-video-nouveau nouveau-dri mesa}}
+
  
== Configurazione ==
+
Per poter utilizzare Bumblebee è necessario innanzitutto aggiungere il proprio utente (anche altri eventuali utenti) al gruppo Bumblebee:
  
Al fine di rendere funzionale Bumblebee è necessario configurare un secondo server X, caricare il modulo del kernel desiderato ed eseguire il demone bumblebee. La maggior parte di questi passaggi sono svolti in automatico al momento dell'installazione.
+
# gpasswd -a $USER bumblebee
  
=== Caricamento del modulo del kernel ===
+
dove {{ic|$USER}} è il nome di login dell'utente da aggiungere. Ri-effettuare il login per rendere effettive le modifiche.
  
==== Utilizzo di Nvidia ====
+
Successivamente per avviare automaticamente Bumbleebee all'avvio abilitare il servizio {{ic|bumblebeed}}:
  
Per eseguire Bumblebee utilizzando il modulo del kernel per i driver proprietari Nvidia, è necessario prima fermare il caricamento del modulo [[Nouveau]] nel kernel. Per farlo, eseguire in un terminale:
+
  # systemctl enable bumblebeed.service
{{bc|# rmmod nouveau}}
+
  
Aggiungere la seguente riga a {{ic|/etc/modprobe.d/modprobe.conf}} per disabilitare il modulo Nouveau al boot:
+
Ora riavviare il sistema e utilizzare il programma {{ic|[[#Utilizzo|optirun]]}} da un terminale per usufruire della tecnologia Optimus NVIDIA per il rendering.
{{hc|/etc/modprobe.d/modprobe.conf|<nowiki>blacklist nouveau</nowiki>}}
+
  
Caricare quindi il modulo Nvidia con:
+
== Utilizzo==
{{bc|# modprobe nvidia}}
+
  
Per caricare il modulo nvidia all'avvio, aggiungerlo nella stringa {{ic|MODULES}} in {{ic|/etc/rc.conf}}:
+
La riga di comando programma {{ic|optirun}} fornito con Bumblebee è il vostro migliore amico per l'esecuzione di applicazioni sulla scheda NVIDIA Optimus.
MODULES=(... nvidia ...)
+
  
==== Nouveau ====
+
È possibile testare Bumblebee con questo comando:
 +
{{bc|$ optirun glxgears}}
  
Assicurarsi di non avere i driver [[Nouveau]] in blacklist in nessuno dei file contenuti in {{ic|/etc/modprobe.d/}}. Il modulo del kernel Nouveau viene caricato di default.
+
Se il programma viene eseguito con successo e il terminale fornisce informazioni sulla scheda NVIDIA, allora significa che Optimus con Bumblebee è funzionante.
  
=== Configurazione del server X ===
+
Per avviare un'applicazione utilizzando la scheda grafica dedicata:
 +
{{bc|$ optirun [options] <application> [application-parameters]}}
  
L'installazione dovrebbe riconoscere automaticamente la scheda grafica e la propria PCI BusID. Se si nota un qualche avvertimento a questo riguardo seguire i seguenti passi supplementari.
+
Alcuni esempi:
  
Dopo l'installazione viene creato un file {{ic|/etc/bumblebee/xorg.conf.DRIVER}} con una configurazione minimale del dispositivo (dove {{ic|DRIVER}} può essere {{ic|nouveau}} o {{ic|nvidia}}). In questo file è necessario specificare l'indirizzo bus PCI della scheda Nvidia. Per farlo eseguire in un terminale:
+
Avviare applicazioni Windows con Optiumus
  
{{hc|<nowiki>$ lspci -d10de: -nn | grep '030[02]'</nowiki>|<nowiki>01:00.0 VGA compatible controller [0300]: nVidia Corporation GT218 [GeForce 310M] [10de:0a75] (rev a2)</nowiki>}}
+
$ optirun wine <windows application>.exe
  
Prendere nota dell'indirizzo PCI della scheda nVidia (01:00.0 in questo caso) e modificare la riga in {{ic|/etc/bumblebee/xorg.conf.DRIVER}} con l'opzione {{ic|BusID}} della sezione {{ic|Device}}:
+
Utilizzare NVIDIA Settings con Optimus
  
{{hc|/etc/bumblebee/xorg.conf.DRIVER|<nowiki>
+
$ optirun nvidia-settings -c :8
...
+
Section "Device"
+
...
+
    BusID          "PCI:01:00:0"
+
...
+
EndSection
+
...
+
</nowiki>}}
+
  
{{Note|È necessario sostituire qualsiasi punto (.) con i due punti (:) per fare in modo che il server X non fraintenda il BusID}}
+
Per un elenco di opzioni per {{ic|optirun}} vedere la sua pagina man:
 +
 +
$ man optirun
  
Se si utilizzano i driver Nvidia cercare la sezione "Files" e controllare che il percorso del modulo xorg di nvidia sia corretto:
+
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.
{{hc|/etc/bumblebee/xorg.conf.nvidia|<nowiki>
+
 
 +
Utilizo:
 +
 
 +
$ primusrun glxgears
 +
 
 +
== Configurazione ==
 +
 
 +
È possibile configurare alcune variabili nel file {{ic|/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 {{ic|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: {{ic|jpeg}}, {{ic|rgb}}, {{ic|yuv}}
 +
 
 +
Metodi non compressi sono: {{ic|proxy}}, {{ic|xv}}
 +
 
 +
Per impostare un metodo di compressione per tutte le applicazioni impostare il valore {{ic|VGLTransport}} con il {{ic|<metodo-di-compressione>}} preferito in {{ic|/etc/bumblebee/bumblebee.conf}}
 +
 
 +
{{hc|/etc/bumblebee/bumblebee.conf|<nowiki>
 
...
 
...
Section "Files"
+
[optirun]
    ModulePath "/usr/lib/nvidia-bumblebee,/usr/lib/xorg/modules"
+
VGLTransport=proxy
EndSection
+
 
...
 
...
 
</nowiki>}}
 
</nowiki>}}
  
=== Impostare i permessi per usare Bumblebee ===
+
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:
  
I permessi per usare {{ic|optirun}} vengono concessi a tutti i membri del gruppo "bumblebee", quindi è necessario aggiungersi (anche altri eventuali utenti) a quel gruppo:
+
# PBO dovrebbe essere più veloce
{{bc|# usermod -a -G bumblebee <user>}}
+
VGL_READBACK=pbo optirun glxspheres
 +
#Il valore predefinito è sync
 +
VGL_READBACK=sync optirun glxspheres
  
dove {{ic|<user>}} è il nome di login dell'utente da aggiungere. Rieffettuare il login per rendere effettive le modifiche.
+
{{Note|CPU frequency scaling influisce direttamente sulle prestazioni rendering}}
  
=== Avvio del demone Bumblebee ===
+
=== Gestione energetica ===
  
Bumblebee fornisce un demone per avviare il secondo server X e gestire alcune ulteriori funzioni; per avviarlo basta eseguire:
+
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.
{{bc|# rc.d start bumblebee}}
+
  
Aggiungerlo alla stringa {{ic|DAEMONS}} in {{ic|/etc/rc.conf}} per l'avvio al boot
+
==== Risparmio energetico predefinito della scheda NVIDIA con bbswitch ====
DAEMONS=(... @bumblebee)
+
  
{{Note|Il gestore attuale non è legato a fattori come tipo di distribuzione, il che significa che non ci sarà output in stile ArchLinux e non ci saranno registrazioni in {{ic|rc.d list}}. Questo è un problema noto che deve essere risolto ([https://github.com/Bumblebee-Project/Bumblebee/issues/17 GH-17]). Per vedere lo stato del demone eseguire
+
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 .
{{bc|$ bumbelee --status}}}}
+
  
== Test di Bumblebee ==
+
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]).
  
È possibile testare Bumblebee con questo comando:
+
{{hc|/etc/modprobe.d/bbswitch.conf|<nowiki>
{{bc|$ optirun glxgears}}
+
options bbswitch load_state=0 unload_state=1
 +
</nowiki>}}
  
Se funziona significa che si è in grado di non caricare il rendering della scheda Nvidia.
+
==== Abilitare la scheda NVIDIA durante lo spegnimento ====
  
{{Note|È necessario il pacchetto {{Pkg|mesa-demos}} per eseguire {{ic|glxgears}}. Questo non è un test di benchmark, indica solo che la GPU dedicata funziona in rendering.}}
+
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&#61;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}}):
  
== Configurazione ==
+
{{hc|/etc/rc.d/functions.d/nvidia-card-enable|<nowiki>
 +
nvidia_card_enable() {
 +
BBSWITCH=/proc/acpi/bbswitch
  
È possibile configurare alcune variabili nel file {{ic|/etc/bumblebee/bumblebee.conf}}. Quelle di default sono:
+
stat_busy "Enabling NVIDIA GPU"
  
{{hc|/etc/bumblebee/bumblebee.conf|<nowiki>
+
if [ -w ${BBSWITCH} ]; then
STOP_SERVICE_ON_EXIT=N
+
  echo ON > ${BBSWITCH}
X_SERVER_TIMEOUT=10
+
  stat_done
VGL_DISPLAY=:8
+
else
DRIVER=nvidia
+
  stat_fail
X_CONFFILE=
+
fi
BUMBLEBEE_GROUP=bumblebee
+
}
ENABLE_POWER_MANAGEMENT=N
+
 
VGL_COMPRESS=proxy
+
add_hook shutdown_poweroff nvidia_card_enable
ECO_MODE=N
+
FALLBACK_START=N
+
 
</nowiki>}}
 
</nowiki>}}
  
=== Compressione e trasporto VGL ===
+
=== Monitor multipli ===
  
La compressione e il trasporto riguardano come i frame sono compressi dal lato server (l'X server di bumblebee), e trasportati poi al lato client (X server principale) e non compressi per essere visualizzati nella finestra dell'applicazione. E per lo più influisce sulle prestazioni di utilizzo della CPU/GPU, dato che il trasporto è illimitato in banda. I metodi compressi  (come {{ic|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.
+
{{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].}}
{{Note|CPU frequency scaling influisce direttamente sulle prestazioni rendering}}
+
  
È possibile provare diversi metodi di compressione aggiungendo l'argomento {{ic|-c}} al comando {{ic|optirun}} per capire qual'è il più adatto:
+
È 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.
{{hc|$ <nowiki>optirun -c <compress-method> /opt/VirtualGL/bin/glxspheres</nowiki>|Bumblebee trasferirà i frame utilizzando: <compress-method>}}
+
  
Dove {{ic|<compress-method>}} può essere {{ic|jpeg}}, {{ic|xv}}, {{ic|proxy}}, {{ic|rgb}} o {{ic|yuv}}. Si può quindi sostituire quello che si preferisce nella variabile {{ic|VGL_COMPRESS}} in {{ic|/etc/bumblebee/bumblebee.conf}} per usarlo come default.
+
{{hc|/etc/X11/xorg.conf|<nowiki>
 +
Section "Screen"
 +
    Identifier    "Screen0"
 +
    Device        "intelgpu0"
 +
    Monitor        "Monitor0"
 +
    DefaultDepth    24
 +
    Option        "TwinView" "0"
 +
    SubSection "Display"
 +
        Depth          24
 +
        Modes          "1980x1080_60.00"
 +
    EndSubSection
 +
EndSection
  
{{Note|I metodi non compressi {{ic|proxy}} e {{ic|xv}} mostrano framerate inferiori ma sono più performanti in alcune applicazioni}}
+
Section "Screen"
 +
    Identifier    "Screen1"
 +
    Device        "intelgpu1"
 +
    Monitor        "Monitor1"
 +
    DefaultDepth  24
 +
    Option        "TwinView" "0"
 +
    SubSection "Display"
 +
        Depth          24
 +
        Modes          "1980x1080_60.00"
 +
    EndSubSection
 +
EndSection
  
===  Configurare il comportamento del Server ===
+
Section "Monitor"
 +
    Identifier    "Monitor0"
 +
    Option        "Enable" "true"
 +
EndSection
  
Ci sono tre variabili per controllare come deve comportarsi il server quando viene richiamato {{ic|optirun}}:
+
Section "Monitor"
STOP_SERVICE_ON_EXIT
+
    Identifier    "Monitor1"
X_SERVER_TIMEOUT
+
    Option        "Enable" "true"
FALLBACK_START
+
EndSection
  
Il server X sarà sempre un pò in ritardo al momento della prima chiamata. Dovrebbe avviarsi in un secondo o giù di lì, ma se il tempo degli avvii successivi è troppo, è possibile impostare {{ic|STOP_SERVICE_ON_EXIT}} a {{ic|N}} e il server X Bumblebee non sarà bloccato quando l'ultimo {{ic|optirun}} viene disconnesso.
+
Section "Device"
 +
    Identifier    "intelgpu0"
 +
    Driver        "intel"
 +
    Option        "XvMC" "true"
 +
    Option        "UseEvents" "true"
 +
    Option        "AccelMethod" "UXA"
 +
    BusID          "PCI:0:2:0"
 +
EndSection
  
{{ic|X_SERVER_TIMEOUT}} controlla quanto tempo il demone attenderà il server X. Se il server X tarda troppo si consiglia di aumentare il valore di questa impostazione, altrimenti l'avvio del server potrebbe non riuscire.
+
Section "Device"
 +
    Identifier    "intelgpu1"
 +
    Driver        "intel"
 +
    Option        "XvMC" "true"
 +
    Option        "UseEvents" "true"
 +
    Option        "AccelMethod" "UXA"
 +
    BusID          "PCI:0:2:0"
 +
EndSection
 +
</nowiki>}}
  
Se si desidera che l'applicazione si avvii nella GPU integrata anche se il server X non è disponibile, impostare  {{ic|FALLBACK_START}} a {{ic|Y}}. Questo stamperà lo stesso messaggio quando il server non è disponibile, ma non fallirà a lanciare il programma.
+
Probabilmente sarà necessario cambiare il BusID in base alle vostre esigenze:
  
== Utilizzo ==
+
{{hc|<nowiki>$ lspci | grep VGA</nowiki>|
 +
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
 +
}}
  
Per avviare un'applicazione utilizzando la scheda grafica dedicata:
+
In questo esempio il BusID è 0:2:0
{{bc|$ optirun [options] <application> [application-parameters]}}
+
  
Per un elenco di opzioni per {{ic|optirun}}:
+
==CUDA senza Bumblebee==
{{bc|$ optirun --help}}
+
  
Se si desidera eseguire un applicazione a 32 bit su un sistema a 64 bit potrebbe essere necessario installare i pacchetti "lib32" adeguati.
+
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).
  
== Gestione energetica ==
+
== Risoluzione dei problemi  ==
  
{{Warning|Questa funzione è in attesa fino a quando non sarà trovata una soluzione sicura e affidabile. Tuttavia, una soluzione provvisoria per attivare la modalità ACPI precedente è inclusa in {{ic|1=bumblebee>=2.4.0}}. Per ulteriori informazioni, vedere [https://github.com/Bumblebee-Project/Bumblebee/wiki/ACPI-Removed qui]}}
+
{{Note|Si prega di riportare i bugs al [https://github.com/Bumblebee-Project/Bumblebee Bumblebee-Project] il GitHub tracker come descritto nel [https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues Wiki].}}
  
L'obiettivo di gestione dell'alimentazione è quello di apegnere la scheda dedicata quando non viene utilizzata da nessuna applicazione, e riaccenderla quando è necessario. Attualmente la scheda può essere utilizzata solo "su richiesta" e nessuno "switch automatico" è supportato di default.
+
=== [VGL] ERROR: Could not open display :8 ===
  
=== Una breve nota sul perché è stato rimosso ===
+
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").
  
La gestione dell'alimentazione è stata temporaneamente rimossa perché le azioni ACPI di Bumblebee, durante le chiamate all'accensione e spegnimento, si risolvono con degli errori. Ciò ha avuto alcuni effetti collaterali:
+
Una soluzione a questo problema è quanto segue:
  
* Errori "FATAL: Error inserting nvidia (.../nvidia.ko): No such device" al caricamento del modulo nvidia
+
$ optirun bash
* Blocco o freeze durante avvio, arresto o sospensione
+
$ optirun wine <windows program>.exe
* Impostazioni del BIOS che sembrano essere state modificate
+
* Altri sistemi operativi non riconoscono più la scheda grafica
+
  
In una versione futura, la gestione del risparmio energetico potrebbe essere implementata di nuovo, dopo un periodo di ricerca e sviluppo.
+
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}}.
  
Come uno degli sviluppatori ha affermato, circa lo stato attuale della gestione alimentazione di bumblebee:
+
=== [ERROR]Cannot access secondary GPU ===
  
'''"Lekensteyn"'''
+
==== Nessun dispositivo rilevato ====
<blockquote>
+
Bene, proviamo ad immaginare un edificio con le finestre sporche. Ci piacerebbe vedere più sole e chiediamo pertanto ad un serramentista di assumere qualcuno per svolgere quel lavoro. Il serramentista non ha mai imparato a pulire bene una finestra sporca, ma immagina che una pietra potrebbe essere il modo giusto per farlo. Chiede quindi ad un ragazzo di provare a pulire la finestra con una pietra: possono accadere due cose:
+
# la finestra si graffia e diventa ancora meno trasparente
+
# la finestra si rompe e il sole risplende
+
Nel primo caso, la situazione è peggiorata. Quell'orrore di "Module not found" ed errori "suspend/lock-up". Nel secondo caso, non si dovrà indovinare che cosa sia andato male perché l'obiettivo è stato raggiunto: il sole è più brillante. La soluzione giusta è ovviamente la pulizia del vetro con un panno, ma non prima che la finestra sia riparata, che è il nostro compito attuale.
+
</blockquote>
+
  
I metodi di chiamata ACPI sono le pietre e "voi" ...siete voi. Il ragazzo è solo un messaggero, cioè il modulo acpi_call. Il serramentista è il team di sviluppo Bumblebee.
+
In alcuni casi, l'esecuzione di optirun ritorna il seguente errore:
  
=== Attivazione della gestione energetica ===
+
{{bc|
 +
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
  
Dalla versione 2.4.0 il framework ACPI fornito da Bumblebee consente di inviare differenti metodi di chiamata attraverso il modulo del kernel {{ic|acpi_call}}. Sarà necessario il pacchetto {{AUR|acpi_call-git}} per essere in grado di usarlo.
+
[ERROR]Aborting because fallback start is disabled.}}
  
{{Warning|I problemi di cui sopra possono ancora verificarsi, anche se le cose sono state rese più sicure, e a meno che non si stano utilizzando chiamate molto aggressive, non dovrebbero essere effetti collaterali importanti. Se si ha capito quanto sopra, ma si desidera attivare comunque il Power Management, ecco una guida per farlo.}}
+
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.
  
Per prima cosa editare {{ic|/etc/bumblebee/bumblebee.conf}} e impostare {{ic|STOP_SERVICE_ON_EXIT}} a {{ic|Y}} in modo che il server X venga fermato quando non ci sono istanze {{ic|optirun}} in esecuzione.
+
Potrebbe anche essere necessario commentare la linea riguardante il driver nel file {{ic|/etc/X11/xorg.conf.d/10-monitor.conf}}.
  
{{hc|/etc/bumblebee/bumblebee.conf|<nowiki>
+
Se si sta utilizzando il driver nouveau si potrebbe provare a passare al driver nVidia .
...
+
STOP_SERVICE_ON_EXIT=Y
+
...
+
</nowiki>}}
+
  
Poi è necessario creare due file ({{ic|/etc/bumblebee/cardon}} e {{ic|/etc/bumblebee/cardoff}}) contenenti le chiamate necessarie per attivare e disattivare la scheda. Ogni riga deve contenere una chiamata, i commenti non sono ammessi. Scrivere una chiamata per riga e nient'altro o si riscontreranno errori:
+
==== NVIDIA(0): Failed to assign any connected display devices to X screen 0 ====
  
{{hc|/etc/bumblebee/cardon|<nowiki>
+
Se ottenete un errore simile nella console:
_SB.PCI0.RP00.VGA._DSM {0x01,0x02} 0x03 0x04 {0x1,0x0,0x0,0x3}
+
_SB.PCI0.RP00.VGA._PS0
+
</nowiki>}}
+
  
{{Warning|Queste chiamate sono solo degli esempi e non devono essere utilizzati in nessun caso. Non ci si aspetta che funzionino su ogni tipo di dispositivo. Si possono trovare alcune chiamate [[http://hybrid-graphics-linux.tuxfamily.org/index.php?title=ACPI_calls qui]] (non collaudate e non garantite).}}
+
{{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.
 +
}}
  
Abilitare infine la gestione energetica editando il file di configurazione {{ic|/etc/bumblebee/bumblebee.conf}}:
+
Potete cambiare questa linea in {{ic|/etc/bumblebee/xorg.conf.nvidia}} da:
  
{{hc|/etc/bumblebee/bumblebee.conf|<nowiki>
+
{{bc|
...
+
Option "ConnectedMonitor" "DFP"
ENABLE_POWER_MANAGEMENT=Y
+
}}
...
+
</nowiki>}}
+
  
Bisognerà anche riavviare il demone o direttamente il sistema per rendere effettive le modifiche.
+
a
  
== Risoluzione dei problemi  ==
+
{{bc|
{{Out of date}}
+
Option "ConnectedMonitor" "CRT"
Prova innanzi tutto questa guida alla risoluzione dei problemi, e se il problema persiste, si prega di segnalare i bug [https://github.com/Bumblebee-Project/Bumblebee qui].
+
}}
  
=== VirtualGL non può aprire il display ===
+
=== Fatal IO error 11 (Risorsa temporaneamente non disponibile) sul server X ===
  
Se si riceve un messaggio come questo
+
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.
[VGL] ERROR: Could not open display :XX
+
  
Significa che il secondo server X non è in esecuzione o non è stato avviato. Per risolvere questo si può spulciare il file {{ic|/var/log/Xorg.XX.log}}, dove "XX" è il numero del display usato da bumblebee; dare anche un'occhiata ai messaggi in {{ic|/var/log/bumblebee.log}}.
+
=== Video tearing ===
  
Qui ci sono alcune altre cose che si possono controllare:
+
Problemi di tearing video sono piuttosto comuni utilizzando Bumblebee. Per risolvere il problema, è necessario attivare {{ic|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:
* Controllare il modulo del kernel caricato per la scheda nvidia con "lspci -k"
+
 
* Controllare il file {{ic|/etc/bumblebee/xorg.conf.nvidia}} e assicurarsi che l'opzione "BusID" punti alla porta PCI corretta.
+
{{bc|optirun nvidia-settings -c :8 }}
* Modificare l'opzione "ConnectedMonitor" a "DFP-0" o "CRT-0" (o "DFP,CRT"). Questa deve essere uno schermo valido del computer diverso da "LVDS"
+
 
* Provare a impostare l'opzione ''X_SERVER_TIMEOUT'' ad un valore maggiore se il server X si avvia ma impiega troppo tempo.
+
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.
 +
 
 +
===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==
* [https://github.com/Bumblebee-Project/Bumblebee Bumblebee Project repository]
+
 
 +
* [http://www.bumblebee-project.org Bumblebee Project repository]
 +
* [http://wiki.bumblebee-project.org/ Bumblebee Project Wiki]
 +
* [https://github.com/Bumblebee-Project/bbswitch Bumblebee Project bbswitch repository]
 +
 
 +
Potete unirvi al canale #bumblebee su freenode.net

Revision as of 19:22, 5 November 2012

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.

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.

Attenzione: Bumblebee è un attualmente ancora in fase di sviluppo. Ogni aiuto per il suo sviluppo è il benvenuto.

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 proprietario nvidia. 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.
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 lib32-virtualglAUR o lib32-primus-gitAUR, in base a cosa avete scelto per effettuare il bridge del rendering.

Installare Bumblebee con Intel/nvidia

Attenzione: Non installare il pacchetto originale nvidia-utils con Bunblebee - potrebbe causare un blocco del sistema!


Nota: Se si desidera eseguire applicazioni a 32-bit (come i giochi su wine) su sistemi a 64-bit, è necessario il pacchetto addizionale lib32-nvidia-utils-bumblebeeAUR reperibile su AUR.

Installare Bumblebee con Intel/nouveau

Installare i driver nouveau e i pacchetti richiesti:

# pacman -S xf86-video-nouveau nouveau-dri mesa

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
Note: CPU frequency scaling influisce direttamente sulle prestazioni rendering

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

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 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.

/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

Note: Si prega di riportare i bugs al Bumblebee-Project il GitHub tracker come descritto nel Wiki.

[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