Bumblebee (Italiano)

From ArchWiki
Revision as of 19:37, 31 January 2012 by Veleno77 (Talk | contribs) (pagina ri-allineata)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Warning: Bumblebee è un attualmente ancora in fase di sviluppo e potrebbe non funzionare correttamente sulla vostra macchina
Note: Si prega di riportare i bugs al Bumblebee-Project il GitHub tracker come descritto nel Wiki.

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.

A proposito di Bumblebee

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.

Come funziona

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.

Installazione

Installare il pacchetto bumblebeeAUR disponibile su AUR. Se si desidera utilizzare l'ultima versione disponibile, nella versione in sviluppo, potete installare (bumblebee-gitAUR). Entrambi pacchetti possono essere utilizzati sia con i driver Nvidia che con i Nouveau. Per l'esecuzione di applicazioni a 32 bit su un sistema a 64 bit è necessario il pacchetto lib32-virtualglAUR insieme a qualsiasi altra libreria specifica per applicazioni a 32-bit.

Per aggiungere la funzionalità di risparmio energetico , è necessario installare il pacchetto bbswitch-gitAUR.

Utilizzo dei driver Nouveau

Per utilizzare i driver Nouveau è necessario installare questi pacchetti aggiuntivi:

Installarli con

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

Utilizzo del driver Nvidia

Attenzione: Non installare il pacchetto nvidia-utils da [extra] o lib32-nvidia-utils da [multilib], entrambi causeranno un conflitto con libgl

Per utilizzare i driver Nvidia, è necessario installare nvidia-utils-bumblebeeAUR da AUR, ed il modulo del kernel che si desidera, sia dkms-nvidiaAUR che nvidia vanno bene. In alternativa esiste il pacchetto nvidia-bumblebeeAUR su AUR che, per praticità, ha tra le sue dipendenze nvidia-utils-bumblebeeAUR.

Quindi assicuratevi di caricare il modulo del kernel corretto all'avvio. Se avete problemi consultare il wiki ufficiale di Bumblebee su GitHub.

Configurazione

Ci sono alcuni passi post-installazione da fare prima di poter utilizzare Bumblebee.

Impostare i permessi per usare Bumblebee

I permessi per usare optirun vengono concessi a tutti i membri del gruppo "bumblebee", quindi è necessario aggiungersi (anche altri eventuali utenti) a quel gruppo:

# usermod -a -G bumblebee $USER

dove $USER è il nome di login dell'utente da aggiungere. Rieffettuare il login per rendere effettive le modifiche.

Avvio del demone Bumblebee

Bumblebee fornisce un demone per avviare il secondo server X e gestire alcune ulteriori funzioni; per avviarlo basta eseguire:

# rc.d start bumblebee

Aggiungerlo alla stringa DAEMONS in /etc/rc.conf per l'avvio al boot

DAEMONS=(... @bumblebee)

Test di Bumblebee

È possibile testare Bumblebee con questo comando:

$ optirun glxspheres

Se funziona significa che si è in grado di non caricare il rendering della scheda Nvidia.

Configurazione

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

Compressione e trasporto VGL

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

Note: CPU frequency scaling influisce direttamente sulle prestazioni rendering

È possibile provare diversi metodi di compressione aggiungendo l'argomento -c al comando optirun per capire qual'è il più adatto:

optirun -c <compress-method> glxspheres

Dove <compress-method> può essere jpeg, xv, proxy, rgb o yuv. Si può quindi sostituire quello che si preferisce nella variabile VGL_COMPRESS in /etc/bumblebee/bumblebee.conf per usarlo come default.

/etc/bumblebee/bumblebee.conf
...
[optirun]
VGLTransport=proxy
...
Note: I metodi non compressi proxy e xv mostrano framerate inferiori ma sono più performanti in alcune applicazioni

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

Utilizzo

Per avviare un'applicazione utilizzando la scheda grafica dedicata:

$ optirun [options] <application> [application-parameters]

Per un elenco di opzioni per optirun:

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

Gestione energetica

L'obiettivo di gestione dell'alimentazione è quello di spegnere la scheda dedicata quando non viene utilizzata da nessuna applicazione, e riaccenderla quando è necessario. Attualmente la scheda può essere utilizzata solo "su richiesta" (on-demand) e nessun switch automatico è supportato di default.

Per attivarla , assicurarsi di avere installato bbswitchAUR e che sia caricato al boot.

MODULES=(... bbswitch ...)

Assicurarsi che il server Xorg secondario venga sfermato quando non in uso. Quindi nella sezione del driver in bumblebee.conf impostare l'opzione PMMethod su auto

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

Questo dovrebbe essere sufficiente, perché il demone riconosce il modulo caricato e agirà di conseguenza. Quindi riavviare il demone

# rc.d restart bumblebeed

Risoluzione dei problemi

Nessun dispositivo rilevato

In alcuni casi, l'esecuzione di optirun ritornerà:

[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 parte. Riavviando il demone bumblebeed dovrebbe tornare a funzionare.

Soluzione per merito di Lekensteyn su #bumblebee at freenode.net

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.

Ulteriori risorse