Doppio schermo con Xubuntu

Guida creata l'8 dicembre 2009
Ultimo aggiornamento: 27 giugno 2015
Licenza: © 2009 Stefano Droghetti, Creative Commons BY-NC-SA
 

Introduzione

Scopo: collegare il mio televisore (con ingresso DVI/HDMA o VGA) alla scheda Nvidia o Intel (sorry per ATI o per le schede "doppie" della Nvidia, quelle che hanno sia Intel che Nvidia dentro, le "Optimus", non ne ho idea), in modo da avere un secondo schermo. Dovendoci vedere dei film, mi interessa 1) che non ci sia il fastidioso effetto di tearing e 2) che non ci sia overscan. Inoltre vorrei usare il mio smartphone come telecomando.

Il tearing è quell'effetto per cui quando ci sono carrellate da sinistra a destra o da destra a sinistra, appaiono come delle righe, dei tagli orizzontali sullo schermo. L'overscan è quella cosa per cui i bordi del video vengono tagliati fuori dalle dimensioni della TV.

A casa ho il computer costantemente collegato a un grosso TV al plasma, un Panasonic HD Ready. Il monitor è collegato attraverso il solito cavo VGA, mentre il plasma è collegato con HDMI.
Ho anche una tavoletta grafica, che non funziona bene se uso l'estensione del desktop (perché le dimensioni del desktop includerebbero quelle del televisore, mandando completamente fuori scala la tavoletta grafica). Inoltre, sia l'estensione del desktop sia lo schermo separato hanno lo spiacevole difetto per il quale, quando il televisore è spento, il mouse sfora a destra dello schermo del monitor, finendo in uno schermo spento.
Ho quindi bisogno di un metodo per spegnere e accendere a mio piacimento lo schermo aggiuntivo.

Ecco come risolvere il tutto. Cominciamo dalla scheda Nvidia. Se avete una Intel, passate al capitolo 2.


1. Scheda Nvidia


1.1 - Configurazione

Prima di tutto, apriamo nvidia-settings da amministratore e configuriamo gli schermi in modo che il televisore rimanga spento di default:

sudo nvidia-settings

Impostate così il vostro televisore (spento), su TwinView (magari prima premete su "Detect displays", se non lo vedete andate sul menu a tendina "Model", visualizzate il TV e lo spostate a destra o a sinistra del monitor).



Ora torniamo su "X-server Display Configuration" e premiamo su "Save to X Configuration file", immettiamo /etc/X11/xorg.conf nel campo di testo e quindi premiamo "Salva". Su alcuni nuovi kernel questa opzione è disattivata o non è presente. Non preoccupatevi, in tal caso, saltate questo passaggio:


Chiudiamo (premendo su "Esci").
A questo punto accendiamo fisicamente il televisore e torniamo su nvidia-settings, questa volta con il nostro utente e non da amministratore:

nvidia-settings

Attiviamo il televisore e premiamo su Apply:



Vedremo apparire come d'incanto sul televisore l'estensione del desktop. Ovviamente, se avete il televisore a sinistra del monitor, spostatelo a mano sulla sinistra e non sulla destra come è nell'esempio. Premiamo su "Chiudi".
Il computer ora è configurato per partire con uno schermo ma pronto per attivare il secondo.


1.2 - Creazione degli script per Nvidia

Ora non ci resta che creare due script: uno per accendere il monitor e uno per spegnerlo. ma prima è necessario installare i comandi specifici per Nvidia:
sudo apt-get install disper

Primo script: accendere la TV
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo accendi.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
disper -d CRT-1,DFP-1 -e -t right
- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma"

Secondo script: spegnere la TV
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo spegni.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
disper -S
- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma"
- Se vi riporta allo schermo sbagliato, sostituite nello script la "S" maiuscola con una minuscola.

 

1.3 - Eliminazione dell'overscan

Per togliere l'overscan sulle schede Nvidia, se c'è, occorre aggiungere una riga al primo script, quello per accendere la TV. Io vi do il mio esempio, ma voi dovete cambiarlo a seconda del vostro televisore...

#!/bin/sh
disper -d CRT-1,DFP-1 -e -t right
nvidia-settings --assign 0/CurrentMetaMode="DFP-1: nvidia-auto-select +1920+0 { ViewPortOut=1210x680+35+20, ViewPortIn=1280x720}, CRT-1: nvidia-auto-select +0+0"


Dovete cambiare soprattutto quel "1210x680+35+20". Se la risoluzione del vostro televisore è AxB e volete togliere a pixel da A e b pixel da B, la formula diventa: A-2axB-2b+a+b
E quel "+1920+0" sono le coordinate a cui volete far comparire il secondo schermo.
Nel "ViewPortIn" mettete la risoluzione che inizialmente dovrebbe avere il TV, come da esempio.


1.4 - Eliminazione del tearing

Per eliminare il tearing sulla TV basta disattivare il compositor di Xubuntu. Per far questo, vedi il capitolo successivo. Se il tearing persiste nonostante si sia disattivato il compositor, cosa che accade in genere sullo schermo principale e non sulla TV, basta disattivare il cosiddetto "sync to vblank": aprite nvidia-settings e configuratelo così:





2. Scheda Intel

Per quanto riguarda la configurazione di due schermi, sulle schede Intel non ci sarebbe bisogno di alcuno script per accendere e spegnere, dato che quasi sempre il sistema funziona tranquillamente con le varie configurazioni dentro alle Impostazioni di Xubuntu. Se però vogliamo fare degli script relativi al proprio particolare televisore, ecco un esempio relativo al mio vecchio netbook Acer con una vecchia scheda Intel senza uscita HDMI ma solo VGA.


2.1 - Script di automazione per Intel

Il mio portatile ha una risoluzione 1024x600, e la mia TV ha una risoluzione 1368x768 a 50Hz. La scheda grafica Intel è pessima e non vede oltre 4096x4096 pixel, quindi devo per forza fare in modo che i due schermi siano uno sopra all'altro, e non di fianco, altrimenti eccederei il limite di 4096 pixel.
Prima di tutto uso il comando xrandr per capire quali sono le uscite del mio computer.

xrandr

Da me viene fuori:

DVI-I-0 disconnected (normal left inverted right x axis y axis)
LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
1024x600 75.0 70.1 60.0 *
800x600 75.0 72.2 60.3 56.2
640x480 75.0 72.8 59.9
DVI-I-1 disconnected (normal left inverted right x axis y axis)
VGA1 connected (normal left inverted right x axis y axis)
720x576 50.0 25.0
720x480 59.9 30.0
640x480 59.9


Che vuol dire che ho un'uscita LVDS1, che è poi lo schermo del portatile - che ha tutte quelle risoluzioni possibili che vedete in elenco - e una VGA1, che è poi l'uscita per la TV, che ha a sua volta quelle risoluzioni possibili che vedete nell'elenco. Notate che manca purtroppo quella che mi serve, la 1368x760 a 50 Hertz...
Per ora mi segno semplicemente i nomi degli schermi: LVDS1 per il portatile, VGA1 per la TV.

Poi devo usare il comando cvt seguito dalla risoluzione e dagli Hertz che voglio nella TV, per sapere quali sono i parametri da dare alla scheda grafica per visualizzare la risoluzione desiderata. Consiglio di provare con 50, poi 60 se 50 non funziona.

cvt 1368 768 50

Da me viene fuori:

Modeline "1368x768_59.80" 85.00 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

Occorre copiarsi da qualche parte quella riga, esclusa la parola "Modeline".
Poi, bisogna aggiungerla alle possibili risoluzioni della scheda video:

xrandr --newmode "1368x768_59.80" 85.00 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

A questo punto, assegno la nuova risoluzione all'uscita VGA1, cioè alla TV:
xrandr --addmode VGA1 1368x768_59.80

Ora provo ad assegnare la risoluzione giusta alla TV:
xrandr --output VGA1 --mode 1368x768_59.80 --pos 0x0 --output LVDS1 --mode 1024x600 --pos 0x768

Gli ho detto: l'uscita della TV (VGA1) deve avere la risoluzione "1368x768_59.80" (quella che ho aggiunto prima) e partire dalle coordinate 0,0 (lo zero cartesiano per Xorg è in alto a sinistra), e lo schermo del portatile (LVDS1) deve avere la solita risoluzione 1024x600 e partire dalle coordinate 0,768, ossia esattamente sotto il televisore.

Se funziona, bene. Altrimenti, occorre riavviare e provare con un'altra risoluzione, altri hertz, eccetera.

Se tutto funziona, basta mettere in uno script gli ultimi tre passaggi:
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo doppioschermo.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
xrandr --newmode "1368x768_59.80" 85.00 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_59.80
xrandr --output VGA1 --mode 1368x768_59.80 --pos 0x0 --output LVDS1 --mode 1024x600 --pos 0x768
- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma"

Qui per eliminare l'overscan non ne ho idea, non ho mai avuto problemi di overscan con schede Intel. Presumo che xrandr comunque abbia dei parametri anche per rimpicciolire u npo' lo schermo, occorre investigare. Sappiatemi dire! :-)

Per eliminare il tearing, anche qui basta disabilitare il compositor. Leggiamo quindi il prossimo capitolo.



3. Disabilitare il tearing (Nvidia e Intel)

Il tearing è causato semplicemente dalla pessima gestione della sincronia video da parte dei compositor a basso consumo di RAM. Sia il compositor di xfce (nativo su Xubuntu) che Compton infatti tendono a introdurre tremendi effetti di tearing, mentre con Compiz (nativo su Ubuntu) e KDE (nativo su Kubuntu) non hanno questo problema o lo hanno in maniera molto minore.
Per eliminare il problema mentre vediamo un film quindi è sufficiente farci un piccolo script che, lanciato, ci disabilita contemporaneamente il compositor, e uno che lo ripristina. Tanto durante la visione di un film, delle trasparenze e delle ombreggiature del desktop cosa ci importa?

Nel caso che abbiate seguito la mia guida Installazione di Xubuntu 14.04 supercompleta probabilmente state usando Compton come compositor. Oppure, avete installato Compiz, chissà. Comunque sia, qui vi darò i comandi per togliere e rimettere il compositor nativo di Xubuntu oppure Compton.



3.1 - Script per togliere e rimettere Compton

Se avete seguito la guida Installazione di Xubuntu 14.04 supercompleta incluso il "paragrafo 3.6.3 - Abilitare Compton", allora seguite questo paragrafo. Altrimenti saltate al paragrafo successivo.

Primo script: disabilitare il compositor Compton
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo ComptonOFF.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
killall compton
- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma"

Secondo script: ripristinare il compositor Compton
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo ComptonON.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
xfwm4 --compositor=off --replace &
compton --dbus &

- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma".

A questo punto potete saltare il prossimo paragrafo, o seguirlo per avere più script e usare quindi entrambi i compositor quando volete.



3.2 - Script per togliere e rimettere il compositor nativo di Xubuntu

Primo script: disabilitare il compositor
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo CompositorOFF.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
xfwm4 --compositor=off --replace &
- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma"

Secondo script: ripristinare il compositor
- Tasto destro sul desktop → Crea nuovo documento → Documento vuoto
- Rinominiamolo CompositorON.sh
- Apriamolo con un editor di testo e dentro ci scriviamo:
!/bin/sh
xfwm4 --compositor=on --replace &
- Salvate
- Cliccate col destro sullo script, "Proprietà", "Permessi" e selezionate (cioè mettete una spunta a) "Consentire l'esecuzione del file come programma".



4. Usare Android come telecomando

Prima di tutto il vostro smartphone Android deve essere connesso alla rete wireless di casa.

- Sul telefonino, installate questa app: VLCmote

Su 12.04:
- Dovete sapere l'IP locale del computer su cui guardate il film (per saperlo, basta scrivere ifconfig nel terminale).
- Sul computer, aprite il file di configurazione di VLC:
sudo mousepad /etc/vlc/lua/http/.hosts
- Commentate (cioè togliete il cancelletto, il "#") la riga
192.168.0.0/16
- Salvate e chiudete il file
- Aprite VLC e andate su Strumenti → Preferenze
- In basso a sinistra, Mostra le impostazioni → Tutto
- Nella colonna a sinistra, cliccate su "Interfacce principali"
- Nella schermata, selezionate "Interprete Lua" (mettete una spunta al quadratino)
- Nella colonna a sinistra, premete il triangolino a sinistra di "Interfacce principali" per esploderne il contenuto e selezionate "Lua"
- Nella schermata, nel primo campo "Interfaccia Lua" scrivete http
- Premete su Salva e chiudete.

Su 14.04:
- Aprite VLC e andate su Strumenti → Preferenze
- In basso a sinistra, Mostra le impostazioni → Tutto
- Nella colonna a sinistra, cliccate su "Interfacce principali"
- Nella schermata, selezionate "Web" (mettete una spunta al quadratino)
- Nel campo di testo, mettete http
- Nella colonna a sinistra, premete il triangolino a sinistra di "Interfacce principali" per esploderne il contenuto e selezionate "Lua"
- Nella schermata, nel primo campo "Interfaccia Lua" scrivete http
- Sotto "Password", immettete una password.
- Premete su Salva e chiudete.

Ora è tutto pronto. Quando vi collegate alla rete di casa col telefonino, lanciate il film o la playlist sul computer con VLC, magari mettetelo in pausa, lanciate Remote For VLC sul telefonino e andate nel menu, quindi premete Impostazioni. Dopo un po' dovrebbe apparire l'IP del computer: se non appare metteteglielo a mano premendo su "Aggiungi server VLC" (la porta è sempre 8080).
A quel punto dovreste essere in grado di comandare il film comodamente dal telefonino come se fosse un telecomando! Da Ubuntu 14.04 in poi vi chiede anche la password che avete immesso in VLC. Non preoccupatevi, è normale che la chieda anche più di una volta.
Questo sito non utilizza alcun cookie di profilazione, ma solo cookie tecnici e/o di terze parti. Continuando nella visita di questo sito o chiudendo questo avviso, si accettano le condizioni di utilizzo dei cookie.