Old:Abilitare Xinerama

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

Xinerama è un'estensione di XFree che permette di estendere il desktop su più monitor fisici, anche collegati a schede video diverse. Non avete bisogno di schede video potenti o speciali, la maggior parte delle schede recenti offre già la possibilità di collegare due monitor, altrimenti potete riutilizzare una vecchia scheda video pci come scheda secondaria. La configurazione che ho testato sul mio pc consisteva in due monitor uguali collegati due schede video: una geforce2 agp e una 3dfx banshee pci.

Configurazione

Di cosa hai bisogno

Per abilitare l'estensione Xinerama è necessario avere Xfree versione 4.0 o superiori. Per verificare quale versione di Xfree è installata basta digitare il seguente comando alla console:

ferra@AMD:~$ X -version

Dovreste vedere una cosa simile, a voi interessa la prima riga:

XFree86 Version 4.3.0.1 (Debian 4.3.0.dfsg.1-12.0.1 20050223080930 joshk@triplehelix.org)
Release Date: 15 August 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: Linux 2.6.9 i686 [ELF]
Build Date: 23 February 2005
...

Impostazioni base

Le impostazioni di Xfree sono salvate nel file /etc/X11/XF86Config o nel file /etc/X11/XF86Config-4 (se presente). Se sono presenti entrambi il file da considerare è XF86Config-4. Nel testo che segue prendo in considerazione il file XF86Config-4. Ricordate che potete aggiungere dei commenti nel vostro file di configurazione semplicemente aggiungendo un # all'inizio della riga da commentare. Per la configurazione di base ho utilizzato xf86cfg, un tool grafico che rileva automaticamente le schede grafiche e i monitor ad esse collegati. Prima di utilizzare tale tool vi consiglio un backup dei file di configurazione originali nella vostra home. Fate attenzione a dove il programma salva i file perché spesso non va a sovrascrivere i file originali e dovete sostituirli manualmente. Una volta configurati i monitor dovreste trovarvi in una situazione simile: entrambi i monitor accesi all'avvio di X, il mouse che passa da uno all'altro senza però poter trascinare le icone e estendere le applicazioni, avete cioè due desktop indipendenti e potete verificarlo semplicemente controllando nella vostra home se sono presenti due (o più, a seconda del numero di monitor) cartelle denominate Desktop e Desktop1.

Il server layout

Probabilmente adesso però i monitor non sono messi come dovranno risultare alla fine del lavoro, per esempio il monitor secondario potrebbe trovarsi (vedendo come il mouse "passa" tra uno e l'altro) alla destra di quello principale quando magari in realtà è alla sinistra. La disposizione dei monitor è detta layout, ed esiste un'apposita sezione nel file XF86Config-4, chiamata appunto ServerLayout. Questo pezzo di codice riporta la mia configurazione:

Section "ServerLayout"
	Identifier     "XFree86 Configured"
	Screen      0  "sgeforce" 0 0
	Screen      1  "s3dfx" LeftOf "sgeforce"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Identifier "XFree86 Configured" è il nome che date al layout, potete dare il nome che volete.
Screen 0 "sgeforce" 0 0 identifica la scheda principale, quella solitamente collegata al bus agp, dove vedete il BIOS quando accendete il computer.
Screen 1 "s3dfx" LeftOf "sgeforce" identifica la scheda secondaria, qui quella che ho sul bus pci. Subito a destra del nome della scheda trovate LeftOf e il nome dell'altra scheda, che indica quale "relazione" c'è tra le due. Significa che il monitor secondario sara' collegato alla sinistra di quello principale. Potete mettere qualsiasi tipo di relazione tra le seguenti: LeftOf, RightOf, Below, Above, Absolute X Y, Relative, che indicano rispettivamente quale relazione ci sarà tra i monitor.
Le voci InputDevice vanno lasciate come sono, poiché riguardano i dispositivi di input come mouse e tastiere.

Test di funzionamento

È ora di provare se Xinerama funziona perfettamente. Salvate i file di configurazione e da root digitate:

AMD:/# startx -- +xinerama

Dovreste ora avere un solo desktop esteso su entrambi i monitor, provate a vedere se riuscite a estendere una finestra su entrambi...

Xinerama

Se tutto funziona dobbiamo dire a X di far partire Xinerama ad ogni avvio. Dobbiamo mettere un flag nel file di configurazione di cui abbiamo parlato prima. Dovete cercare una sezione chiamata ServerFlags, non preoccupatevi se non esiste perché e' molto probabile. Se non esiste la dovete creare voi. In tale sezione dovete aggiungere una riga come segue:

Option "Xinerama" "true"

E l'intera sezione dovrebbe risultare così:

Section "ServerFlags"
	#altre possibili voci, possono anche non esserci...
	Option "Xinerama" "true"
EndSection

Problemi successivi alle modifiche ai file di configurazione

Se doveste avere problemi con la tastiera o il mouse che prima non avevate, come la rotella del mouse che non funziona più o qualche altro pulsante speciale, vi consiglio semplicemente di copiare le sezioni InputDevice, relative al dispositivo che dà problemi, dal file di backup che dovreste aver fatto precedentemente alle modifiche.

File XF86Config-4 di esempio

Il mio file di configurazione, prendetelo come esempio. Vi ripeto ancora, questa è la configurazione relativa a due schede video, una agp e l'altra pci, con due monitor uguali.

Section "ServerLayout"
	Identifier     "XFree86 Configured"
	Screen      0  "sgeforce" 0 0
	Screen      1  "s3dfx" LeftOf "sgeforce"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerFlags"
	Option "Xinerama" "true"
EndSection

Section "Files"
	RgbPath      "/usr/X11R6/lib/X11/rgb"
	ModulePath   "/usr/X11R6/lib/modules"
	FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
	FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
	FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
	FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
	FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

Section "Module"
	Load  "record"
	Load  "extmod"
	Load  "dbe"
	Load  "dri"
	Load  "glx"
	Load  "xtrap"
	Load  "type1"
	Load  "speedo"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
EndSection

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/input/mice"
EndSection

Section "Monitor"
	Identifier   "v500_geforce"
	VendorName   "CPQ"
	ModelName    "COMPAQ V500"
	HorizSync    30.0 - 70.0
	VertRefresh  50.0 - 160.0
	ModeLine     "800x600@84" 56.3 800 832 896 1056 600 601 604 631 +hsync +vsync
	Option	    "DPMS"
EndSection

Section "Monitor"
	Identifier   "v500_3dfx"
	VendorName   "CPQ"
	ModelName    "COMPAQ V500"
	HorizSync    30.0 - 70.0
	VertRefresh  50.0 - 160.0
	ModeLine     "800x600@84" 56.3 800 832 896 1056 600 601 604 631 +hsync +vsync
	Option	    "DPMS"
EndSection

Section "Device"
	Identifier  "geforce"
	Driver      "nv"
	VendorName  "nVidia Corporation"
	BoardName   "NV15 [GeForce2 GTS/Pro]"
	ChipSet     "GeForce2 GTS"
	BusID       "PCI:1:0:0"
EndSection

Section "Device"
       	Identifier  "3dfx"
	Driver      "tdfx"
	VendorName  "3Dfx Interactive, Inc."
	BoardName   "Voodoo Banshee"
	ChipSet     "3dfx Banshee"
	BusID       "PCI:0:14:0"
EndSection

Section "Screen"
	Identifier "sgeforce"
	Device     "geforce"
	Monitor    "v500_geforce"
	DefaultDepth 24
	SubSection "Display"
		Depth     16
		Modes     "1024x768" "800x600" "640x480"
	EndSubSection
	SubSection "Display"
		Depth     24
		 Modes     "1024x768" "800x600" "640x480"
	EndSubSection
EndSection

Section "Screen"
	Identifier "s3dfx"
	Device     "3dfx"
	Monitor    "v500_3dfx"
	DefaultDepth 24
	SubSection "Display"
		Depth     16
		Modes     "1024x768" "800x600" "640x480"
	EndSubSection
	SubSection "Display"
		Depth     24
		Modes     "1024x768" "800x600" "640x480"
	EndSubSection
EndSection


Autore Originale: Ferra