Difference between revisions of "Bumblebee (Italiano)"

From ArchWiki
Jump to: navigation, search
m (Risparmio energetico predefinito della scheda NVIDIA: corretto nome servizio)
(pagina allineata)
Line 31: Line 31:
 
=== Installare Bumblebee con Intel/nvidia ===
 
=== Installare Bumblebee con Intel/nvidia ===
  
* Installare {{AUR|bumblebee}} (oppure {{AUR|bumblebee-systemd}} se si sta utilizzando {{Pkg|systemd}} ) da [[AUR (Italiano)|AUR]]
+
* Installare {{AUR|bumblebee}} da [[AUR (Italiano)|AUR]]
* Installare il pacchetto speciale {{aur|nvidia-utils-bumblebee}} per bumblebee.
+
* Installare il pacchetto speciale {{aur|nvidia-utils-bumblebee}} per bumblebee da [[AUR (Italiano)|AUR]].
  
 
{{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.}}
 
{{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.}}
Line 53: Line 53:
 
* {{Pkg|mesa}} librerie grafiche Mesa 3-D  
 
* {{Pkg|mesa}} librerie grafiche Mesa 3-D  
  
Successivamente installare {{AUR|bumblebee}} oppure {{AUR|bumblebee-systemd}} da AUR:
+
Successivamente installare {{AUR|bumblebee}} da [[AUR (Italiano)|AUR]]:
 
{{nota|Se si desidera che bumblebee spenga automaticamente la scheda NVIDIA dopo il suo utilizzo, installare il pacchetto {{AUR|bbswitch}} da AUR. Si veda il [[#Gestione energetica|paragrafo]] relativo.}}
 
{{nota|Se si desidera che bumblebee spenga automaticamente la scheda NVIDIA dopo il suo utilizzo, installare il pacchetto {{AUR|bbswitch}} da AUR. Si veda il [[#Gestione energetica|paragrafo]] relativo.}}
  
Line 329: Line 329:
 
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 15:30, 30 October 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 basata su VirtualGL ed un driver del kernel in grado di utilizzare la GPU dedicata, che non è fisicamente collegata allo schermo.

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.

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

Prima di procedere all'installazione di Bunblebee controllare il vostro BIOS e attivare l'opzione Optimus (shareable graphics), se disponibile (non tutti i BIOS forniscono questa possibilità), e assicurarsi di installare il driver Intel per la scheda video secondaria.

Note: Se si desidera eseguire applicazioni a 32 bit su un sistema a 64 bit è necessario il pacchetto lib32-virtualglAUR insieme a qualsiasi altra libreria specifica per l'applicazione a 32-bit.

Installare Bumblebee con Intel/nvidia

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.
Attenzione: Non installare il pacchetto originale nvidia-utils con Bunblebee - potrebbe causare un blocco del sistema!
Nota: Ciò permette di evitare l'installazione di nvidia-utils come una dipendenza quando si installa il driver nvidia.
Nota: Se si desidera che bumblebee spenga automaticamente la scheda NVIDIA dopo il suo utilizzo, installare il pacchetto bbswitchAUR da AUR. Si veda il paragrafo relativo.

Installare Bumblebee con Intel/nouveau

Installare i driver nouveau e i pacchetti richiesti:

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

Successivamente installare bumblebeeAUR da AUR:

Nota: Se si desidera che bumblebee spenga automaticamente la scheda NVIDIA dopo il suo utilizzo, installare il pacchetto bbswitchAUR da AUR. Si veda il paragrafo relativo.

Avviare Bumblebee

Per poter utilizzare Bumblebee è necessario innanzitutto aggiungere il proprio utente (anche altri eventuali utenti) al gruppo Bumblebee:

# usermod -a -G bumblebee $USER

dove $USER è il nome di login dell'utente da aggiungere. Rieffettuare 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 Firefox con l'accelerazione fornita da Optimus:

$ optirun firefox

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:

$ optirun --help

Configurazione

È possibile configurare alcune variabili nel file /etc/bumblebee/bumblebee.conf.

Ottimizzare la velocità

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.

Per attivarla , assicurarsi di avere installato bbswitchAUR.

Warning: Assicurarsi che il server Xorg secondario venga fermato quando non in uso.

Impostare l'opzione PMMethod su bbswitch nella sezione del driver in bumblebee.conf.

/etc/bumblebee/bumblebee.conf
[bumblebeed]
KeepUnusedXServer=false
...
[driver-nvidia]
PMMethod=bbswitch
...
[driver-nouveau]
PMMethod=bbswitch
...

Risparmio energetico predefinito della scheda NVIDIA

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=0

Riavviare il demone bumblebeed per attivare il risparmio energetico:

# systemctl restart bumblebeed.service

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