[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
X è un sistema grafico per gli ambienti Unix, o più precisamente per gli ambienti aderenti agli standard C ANSI o POSIX.
X Window System è stato sviluppato originariamente nei laboratori del MIT (Massachusetts institute of technology) e in seguito tutti i diritti sono stati assegnati a un altro ente.
I termini X, X Window e X Window System sono da intendersi come sinonimi dello stesso sistema grafico, mentre il nome «X Windows» non è corretto.
Nel sistema X si utilizzano alcuni termini importanti che rappresentano altrettante parti di questo.
Il servente X è il programma che gestisce le funzionalità grafiche e le mette a disposizione degli altri programmi. Per questa ragione, l'elaboratore su cui si fa funzionare il servente X deve essere dotato di video grafico, tastiera e mouse. Il servente grafico fornisce anche un servizio di rete dal momento che consente l'accesso a programmi in funzione presso altri elaboratori.
I clienti X sono i programmi che utilizzano questo ambiente grafico comunicando con il servente X. Un cliente X può essere messo in funzione anche in un elaboratore diverso da quello sul quale è in funzione un servente X.
protocollo X
Tra i clienti X e il servente X, intercorre una comunicazione, attraverso un protocollo prestabilito.
I programmi che utilizzano i servizi del servente X accedono a funzioni di librerie specifiche che sono conosciute come Xlib.
Un gestore di finestre, ovvero un window manager, è un programma speciale che si occupa di gestire le finestre delle varie applicazioni. In generale, nell'ambiente X si tratta di un cliente X.
Dal punto di vista di X, l'hardware è ciò che consente di interagire in questo sistema grafico (nel senso che il resto non è di sua competenza). Si tratta della tastiera, dello schermo grafico e del dispositivo di puntamento. In pratica il ruolo di X è quello di controllare tutto questo.
Figura 94.1. X è un sistema attraverso il quale, teoricamente, è possibile avere macchine che fanno girare più di un servente grafico, ognuno in grado di controllare una stazione grafica (display) che a sua volta utilizza uno o più schermi grafici. |
All'interno di un elaboratore possono funzionare teoricamente più serventi grafici per controllare altrettante stazioni grafiche di lavoro. Inoltre, sempre teoricamente, una stazione grafica può utilizzare più di uno schermo grafico contemporaneamente.
Nel gergo di X la stazione grafica è il display, che viene identificato da un numero a partire da zero, nella forma :n. Se una stazione grafica è dotata di più di uno schermo, quando si deve fare riferimento a uno di questi occorre aggiungere all'indicazione del numero della stazione grafica quello dello schermo. Anche in questo caso, il primo corrisponde a zero. La forma diventa quindi :n.m, dove n è la stazione grafica e m è lo schermo. La figura 94.1 dovrebbe chiarire il meccanismo. Il valore predefinito di stazione grafica e schermo è zero, per cui, quando non si specificano queste informazioni, si intende implicitamente lo schermo :0.0.
I dispositivi di puntamento, solitamente il mouse, possono avere un numero variabile di tasti; teoricamente si va da un minimo di uno a un massimo di cinque. Nell'ambiente X, questi tasti si distinguono attraverso un numero: 1, 2, 3, 4 e 5. Il tasto sinistro è il primo e da lì si continua la numerazione. Quando si utilizza un mouse a tre tasti, il tasto numero due è quello centrale.
Il vero problema è che X utilizza normalmente tre tasti, mentre la maggior parte dei mouse in circolazione ne mette a disposizione due (compatibilità Microsoft). Nei mouse a due tasti, il tasto destro svolge la funzione del tasto numero tre e solitamente il tasto centrale (cioè il numero due) si ottiene con l'uso contemporaneo dei due tasti esistenti.
Figura 94.2. La numerazione dei tasti dei mouse che ne hanno solo due è particolare. |
Questo problema viene ripreso nella descrizione della configurazione di XFree86 e lì dovrebbe risultare più chiaro.
Il programma che si occupa di gestire la stazione grafica è il servente grafico. È un servente perché offre solo dei servizi e non interagisce direttamente con l'utente. Sono i programmi clienti a interagire con l'utente. Questi richiedono al servente di poter utilizzare uno schermo determinato e, attraverso la stazione grafica corrispondente, sono in grado di ricevere l'input della tastiera e dell'unità di puntamento.
Tra i programmi clienti, quello che riveste un ruolo fondamentale è il gestore di finestre, attraverso il quale si rendono disponibili quei meccanismi con cui si può passare facilmente da un programma all'altro e le finestre possono essere ridimensionate o ridotte a icona.
X è trasparente nei confronti della rete. Un programma cliente può utilizzare i servizi di un servente remoto, interagendo con la stazione grafica di quel servente. Questo tipo di utilizzo richiede comunque una forma di autorizzazione o autenticazione, per motivi di sicurezza.
Quando si vuole identificare uno schermo particolare di un certo elaboratore nella rete, si antepone alle coordinate (già viste nella sezione precedente) il nome o l'indirizzo di quell'elaboratore: host:n.m. La figura 94.3 mostra un esempio di questo tipo di utilizzo.
Figura 94.3. Il servente grafico può concedere l'utilizzo della stazione grafica anche a programmi in esecuzione su elaboratori remoti. |
Un programma cliente può connettersi con un servente X sia locale che remoto. Per una connessione remota occorre stabilire un collegamento. Il servente X resta normalmente in ascolto sulla porta 6 000 + n, dove n rappresenta il numero della stazione grafica, ovvero del servente X.
Nel caso di una stazione grafica con indirizzo :1, la porta su cui dovrebbe trovarsi in ascolto il servente relativo è la numero 6 001.
Il concetto di cliente-servente per ciò che riguarda la rete viene ripreso nei capitoli dedicati proprio alle connessioni in rete (volume III).
Infine, è bene tenere in considerazione il fatto che le librerie specifiche per X (Xlib), sono indispensabili sia per i serventi, sia per i clienti.
XFree86, (1) nelle versioni 3.* è una collezione di serventi X per i sistemi operativi Unix, mentre nelle versioni 4.*, si riduce a un servente soltanto, in cui però alcuni adattatori grafici più vecchi non sono gestiti in modo ottimale. In origine si trattava esclusivamente della piattaforma i386, cosa che spiega il significato della sigla «86» che compare nel nome, ma poi il progetto si è esteso anche ad altre. XFree86 è una derivazione di X386.
La struttura prevista per il file system di GNU/Linux e di altri sistemi Unix (capitolo 72) colloca tutti i file statici di X (binari, documentazione, librerie, ecc.) al di sotto di /usr/X11R6/
. Tuttavia, per ragioni di compatibilità vengono aggiunti alcuni collegamenti simbolici:
/usr/bin/X11 -> /usr/X11R6/bin /usr/lib/X11 -> /usr/X11R6/lib/X11 /usr/include/X11 -> /usr/X11R6/include/X11
XFree86 utilizza un file di configurazione, che può essere collocato in varie posizioni, ma generalmente si trova nella directory /etc/X11/
. Il file di configurazione può avere nomi diversi; tra le tante possibilità, meritano attenzione XF86Config-4
e XF86Config
:
In generale, se si installa solo il servente grafico di una versione 4.*, oppure solo quelli delle versioni 3.*, è sufficiente un file /etc/X11/XF86Config
, predisposto correttamente. Se invece si intende lasciare convivere entrambi i tipi di servente, dal momento che le direttive di configurazione sono incompatibili, diventa necessario usare due file di configurazione distinti.
Per poter utilizzare XFree86 occorre configurare il file /etc/X11/XF86Config
, oppure /etc/X11/XF86Config-4
, di solito attraverso un programma che guida in questa fase.
Il programma più semplice è xf86config, oppure xf86config-v3 (il secondo fa riferimento esplicito alle versioni 3.*). Fa una serie di domande e non è possibile tornare indietro quando si scopre di avere sbagliato qualcosa. Si può solo ricominciare.
Di seguito si descrive l'operazione di configurazione attraverso xf86config, nella versione 4.*.
Prima di avviare il programma di configurazione occorre avere ben chiare in mente le caratteristiche dell'hardware video-tastiera-mouse. Per quanto riguarda il monitor si deve conoscere il valore minimo e massimo delle frequenze di scansione orizzontale e verticale. La frequenza orizzontale è espressa in kilohertz (simbolo: kHz) mentre quella verticale in hertz (simbolo: Hz). L'adattatore grafico è l'elemento più delicato e di essa, oltre che il nome dell'integrato che si occupa della grafica, occorre conoscere la quantità di memoria. Negli esempi seguenti si fa riferimento a un monitor in grado di utilizzare frequenze orizzontali da 31 kHz a 60 kHz e frequenze verticali da 50 Hz a 90 Hz, un adattatore grafico con integrato S3 ViRGE, una tastiera italiana standard e un mouse PS/2 Microsoft compatibile (a due tasti).
In particolare, con GNU/Linux, quando di dispone di un adattatore grafico di tipo PCI, si possono leggere le informazioni relative nel file virtuale /proc/pci
:
$
less /proc/pci
[Invio]
Si potrebbe leggere qualcosa come ciò che segue:
Bus 0, device 19, function 0: VGA compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1). IRQ 5. Master Capable. Latency=32. Min Gnt=4.Max Lat=255. Non-prefetchable 32 bit memory at 0xd4000000 [0xd7ffffff]. |
$
su
[Invio]
È meglio operare con i privilegi dell'utente root per fare questa operazione, altrimenti viene creato un file XF86Config
all'interno della propria directory personale invece che nella sua destinazione corretta. Eventualmente, si può anche approfittare per usare mdetect (sezione 50.2.2) allo scopo di verificare le caratteristiche del mouse:
#
mdetect -x
[Invio]
/dev/psaux PS/2
Si passa quindi alla configurazione:
#
xf86config
[Invio]
|
Il programma mostra un'introduzione ricordando in particolare che prima di proseguire è necessario conoscere le caratteristiche dell'adattatore grafico.
[Invio]
|
Anche il mouse può essere un problema, specialmente se si dispone di un mouse di tipo bus (bus-mouse). Si veda a questo proposito quanto spiegato nella sezione 94.3.3.
Fondamentalmente esistono due tipi di mouse seriali: Microsoft a due tasti e Mouse System a tre tasti. Il Mouse System a tre tasti sarebbe l'ideale dal momento che X richiede l'uso di tutti e tre i tasti, ma spesso, un mouse del genere è anche compatibile con il sistema Microsoft a due tasti. Nella migliore delle ipotesi si ha a disposizione un piccolo commutatore che permette di selezionare la modalità di funzionamento, nella peggiore occorre tenere premuto uno dei tasti all'avvio del sistema per definire la modalità a tre tasti.
Tra i mouse a tre tasti esiste anche il tipo Logitech Mouseman che è compatibile con il tipo Microsoft, ma ha il tasto centrale che genera un segnale corrispondente alla pressione di entrambi i tasti.
In questo caso, si fa riferimento a un mouse connesso alla porta PS/2.
4
[Invio]
|
Quando si hanno a disposizione solo due tasti si pone il problema di accedere alle funzioni legate al tasto centrale mancante. Nella peggiore delle ipotesi si devono premere contemporaneamente i due tasti (cosa non facile) e in questo caso si parla di emulazione del terzo bottone, oppure si dispone di un mouse in grado di generare un segnale equivalente alla pressione dei due tasti quando si preme il tasto centrale e allora si parla di accordo centrale (chord middle). Una delle due scelte esclude l'altra. La differenza tra emulare il terzo bottone e utilizzare l'accordo centrale sta nel fatto che nel primo caso viene concessa una certa tolleranza (dovendo premere due tasti diventa difficile farlo contemporaneamente), mentre nel secondo caso no. Tutto sommato si potrebbe utilizzare sempre l'emulazione del terzo bottone anche quando si ha un mouse Logitech.
y
[Invio]
|
Se il proprio sistema è stato configurato correttamente, nella directory /dev/
dovrebbe trovarsi un collegamento simbolico che punta al file di dispositivo corrispondente all'interfaccia utilizzata per connettere il mouse. Dovrebbe trattarsi del collegamento /dev/mouse
. Se è così, è sufficiente confermare.
[Invio]
|
Appare quindi la richiesta di specificare il tipo di tastiera. L'elenco potrebbe essere molto lungo, anche di più della disponibilità di righe che ha lo schermo. Per scegliere, basta introdurre il numero della voce desiderata e premere [Invio]:
3
[Invio]
Successivamente si deve specificare il tipo di mappa della tastiera, in base alle convenzioni locali.
|
[Invio]
|
Quando si raggiunge la voce desiderata, basta inserire il numero corrispondente:
26
[Invio]
|
[Invio]
|
n
[Invio]
|
La fase successiva è quella di definire gli intervalli di frequenza delle scansioni orizzontale e verticale del monitor. Si procede indicando direttamente i valori.
[Invio]
|
11
[Invio]
|
31-60
[Invio]
|
5
[Invio]
|
50-90
[Invio]
|
I dati identificativi del monitor sono facoltativi e si possono saltare semplicemente, anche se in questo esempio vengono inseriti.
Addonics MON-7C8B
[Invio]
|
L'indicazione dell'adattatore grafico è una fase delicata e con un po' di fortuna si può trovare il proprio adattatore nell'elenco di quelli previsti.
y
[Invio]
|
L'elenco è molto lungo e vale la pena di scorrerlo tutto prima di scegliere il numero corrispondente al modello del proprio adattatore. Una volta raggiunta la fine, l'elenco viene riproposto dall'inizio.
[Invio]
[Invio]
[Invio]
...
|
383
[Invio]
|
Il programma di configurazione conferma la scelta dell'adattatore grafico, avvisando in questo caso che non si dovrà sondare il clock e non si dovrà usare alcuna direttiva Clocks nella sezione Device.
[Invio]
|
L'informazione sulla quantità di memoria a disposizione è importante per determinare la cosiddetta profondità dell'immagine, intendendo con questo la quantità di colori che si possono utilizzare, a seconda della risoluzione utilizzata.
5
[Invio]
|
Come per il monitor, le informazioni sul nome dell'adattatore grafico sono facoltative.
S3 ViRGE
[Invio]
|
In base al tipo di adattatore e alla quantità di memoria installata su di esso, si può determinare l'elenco delle modalità di funzionamento di questo. In particolare, una maggiore profondità di colori richiede un maggiore utilizzo della memoria video. Nel caso si disponga di poca memoria, se ci si accontenta di risoluzioni inferiori si può aumentare la profondità dei colori.
Quando si avvierà il servente si potrà indicare la profondità desiderata e in base a quella scelta verrà utilizzata una delle modalità elencate.
Volendo è possibile scegliere un ordine diverso nella sequenza delle modalità, oppure si può eliminare un livello di risoluzione che genera qualche problema di visualizzazione. In generale non vale la pena di cambiare alcunché.
4
[Invio]
|
5
[Invio]
|
La riserva posta dal programma di configurazione si spiega solo considerando la possibilità che si voglia conservare la configurazione precedente per qualche motivo. Se è così vale la pena di farsene una copia prima di procedere alla riscrittura del file XF86Config
.
y
[Invio]
|
Alla conclusione, il programma di configurazione ricorda che il file XF86Config
deve trovarsi dove il servente si aspetta di trovarlo. La directory /etc/X11/
è il luogo corretto in quanto solitamente /usr/X11R6/lib/X11/XF86Config
è un collegamento simbolico che punta a /etc/X11/XF86Config
.
Per verificare se tutto è andato bene si può avviare lo script startx. Se qualcosa non va, basta premere la sequenza [Ctrl+Alt+Backspace] per fare terminare l'esecuzione del servente.
XFree86 fornisce anche un altro programma per la costruzione del file di configurazione /etc/X11/XF86Config
. Si tratta dell'eseguibile xf86cfg, il quale dovrebbe consentire un'interazione attraverso lo stesso sistema grafico, ma che offre in alternativa anche un sistema di menù per lo schermo a caratteri:
xf86cfg [opzioni]
Per ottenere il funzionamento in modalità grafica, non servono argomenti nella riga di comando, mentre l'opzione -textmode fa sì che si utilizzi solo uno schermo a caratteri:
#
xf86cfg -textmode
La distribuzione Red Hat offre l'applicativo Xconfigurator per facilitare la configurazione di XFree86, con un funzionamento molto simile a xf86cfg quando viene avviato in modalità testo. Questo stesso programma viene utilizzato nella fase di installazione della distribuzione.
Xconfigurator
L'eseguibile Xconfigurator non prevede argomenti ed è interattivo. All'avvio, esegue una scansione diagnostica alla ricerca dell'adattatore grafico. Se si tratta di una scheda PCI è molto probabile che venga identificata. Se la ricerca fallisce, viene richiesto all'utente di scegliere un tipo di adattatore, o direttamente il servente grafico. Successivamente si passa all'indicazione del tipo di monitor (figura 94.4).
Figura 94.4. Scelta del monitor. |
È poco probabile che si riesca a trovare il proprio modello tra quelli proposti dall'elenco, per cui è quasi obbligatorio indicare il tipo Custom. Si deve quindi indicare la frequenza orizzontale (figura 94.5) e verticale (figura 94.6). È importante che le frequenze selezionate non superino i limiti stabiliti dalla casa costruttrice del monitor.
Figura 94.5. Scelta della frequenza orizzontale. |
Figura 94.6. Scelta della frequenza verticale. |
A seconda del tipo di adattatore grafico disponibile potrebbe essere richiesta la selezione del cosiddetto RAMDAC. Se viene richiesto, in caso di dubbio si può rinunciare a specificarne il valore.
Un punto delicato è dato invece dal cosiddetto Clockchip. Se non si sa di cosa si tratti, è bene non indicare alcunché, come si vede nella figura 94.7.
Figura 94.7. Scelta del clockchip. |
Successivamente deve essere selezionata la quantità di memoria a disposizione dell'adattatore grafico. È importante non indicarne più di quanta realmente presente.
Figura 94.8. Indicazione della memoria video disponibile. |
Infine, si devono indicare le modalità video, cioè la dimensione dello schermo espressa in punti. Per evitare fastidi inutili, sarebbe conveniente indicare una sola risoluzione per tutti i tipi di profondità di colori. La figura 94.9 mostra in particolare un esempio in cui è stata selezionata solo la risoluzione 800×600, sia per la profondità di colori a 8 bit, sia per la profondità a 16 bit, escludendo quella a 24 bit.
Figura 94.9. Indicazione delle modalità video utilizzabili. |
Al termine, viene provato l'avvio del servente grafico selezionato, utilizzando la configurazione indicata, in modo da permettere una verifica del suo funzionamento. In modalità grafica viene presentata una finestra di dialogo per richiedere la conferma del funzionamento. Se la risposta è affermativa, viene anche chiesto se si intende avviare immediatamente il sistema operativo in modo grafico.
La lettura del file /etc/X11/XF86Config
può dare molte informazioni utili sull'organizzazione di XFree86. In particolare, i programmi utilizzati per generarlo sono realizzati in modo da inserire molti commenti, tra cui anche molti esempi di direttive, così da agevolare chi volesse modificarlo successivamente a mano.
Il simbolo # serve a iniziare un commento che termina alla fine della riga, inoltre le righe bianche e quelle vuote vengono ignorate.
A titolo di esempio viene mostrato il file di configurazione generato attraverso xf86config, come descritto nella sezione 94.2.1.
Section "Module" Load "dbe" # Double buffer extension SubSection "extmod" Option "omit xfree86-dga" # don't initialise the DGA extension EndSubSection Load "type1" Load "freetype" EndSection Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" EndSection Section "ServerFlags" # Option "DontZap" # Option "Dont Zoom" EndSection Section "InputDevice" Identifier "Keyboard1" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbRules" "xfree86" Option "XkbModel" "pc104" Option "XkbLayout" "it" EndSection Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Device" "/dev/mouse" Option "Protocol" "PS/2" Option "Emulate3Buttons" "true" EndSection Section "Monitor" Identifier "Addonics MON-7C8B" HorizSync 31-60 VertRefresh 50-90 EndSection Section "Device" Identifier "Standard VGA" VendorName "Unknown" BoardName "Unknown" Driver "vga" # Clocks 25.2 28.3 EndSection Section "Device" Identifier "S3 ViRGE" Driver "s3virge" #VideoRam 4096 # Insert Clocks lines here if appropriate EndSection Section "Screen" Identifier "Screen 1" Device "S3 ViRGE" Monitor "Addonics MON-7C8B" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1024x768" "1280x1024" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1024x768" "1280x1024" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1024x768" "1280x1024" ViewPort 0 0 EndSubsection EndSection Section "ServerLayout" Identifier "Simple Layout" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection |
Segue la descrizione superficiale di alcune sezioni che possono comporre questo file di configurazione. Per una descrizione un po' più dettagliata si può consultare la pagina di manuale XF86Config(5).
La sezione Files riguarda la posizione dei file utilizzati dal servente.
RgbPath "/usr/X11R6/lib/X11/rgb"
La direttiva RgbPath permette di indicare il file contenente l'elenco dei nomi dei colori associato alla codifica RGB relativa.
FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
Con le direttive FontPath si indicano le directory contenenti i file dei tipi di carattere utilizzabili.
La sezione ServerFlags permette di controllare alcune opzioni abbastanza importanti, in particolare quelle seguenti.
Option "DontZap"
La direttiva DontZap, se presente (di solito c'è, ma commentata), toglie la possibilità di concludere l'attività del servente attraverso la combinazione di tasti [Ctrl+Alt+Backspace].
Option "Dont Zoom"
La direttiva DontZoom, se presente (di solito c'è, ma commentata), toglie la possibilità di cambiare la modalità grafica attraverso l'uso delle combinazioni [Ctrl+Alt+num(+)] («control», «alt», «+ del tastierino numerico») e [Ctrl+Alt+num(-)] («control», «alt», «- del tastierino numerico»).
La sezione InputDevice può riguardare la configurazione della tastiera, oppure quella del dispositivo di puntamento.
Per quanto riguarda la tastiera, conviene non intervenire manualmente all'interno di questa sezione, in quanto il programma utilizzato per generare il file /etc/X11/XF86Config
dovrebbe essere in grado di inserire tutte le direttive necessarie.
Una sezione InputDevice riferita a un mouse, contiene in particolare l'indicazione del protocollo e del file di dispositivo a cui si fa riferimento:
Option "Protocol" "PS/2" Option "Device" "/dev/mouse"
Nel caso di mouse a due tasti, oppure a tre, quando quello centrale corrisponde in realtà alla pressione simultanea dei due tasti, si aggiunge in particolare l'opzione corrispondente:
Option "Emulate3Buttons" "true"
Quello che si vede di seguito è la configurazione alternativa di una sezione InputDevice necessaria allo scopo di utilizzare il dispositivo /dev/gpmdata
, che corrisponde in pratica a un mouse MouseSystems (qualunque sia il tipo di mouse utilizzato effettivamente). Si veda a questo proposito anche quanto descritto nella sezione 50.2.
Section "InputDevice" Identifier "Mouse1" Driver "mouse" Option "Device" "/dev/gpmdata" Option "Protocol" "MouseSystems" Option "Emulate3Buttons" "true" EndSection
La sezione Monitor riguarda la configurazione del monitor, inteso come unità di visualizzazione dell'immagine, attraverso la sua scansione. Il file di configurazione può contenere diverse sezioni Monitor, distinte in base alla direttiva Identifier, come nell'esempio seguente:
Identifier "Monitor generico"
Il nome utilizzato per identificare il monitor, serve per potervi fare riferimento all'interno di una sezione Screen.
HorizSync 31.5, 32.8
La direttiva HorizSync permette di definire le frequenze di sincronizzazione orizzontale. Può trattarsi di: valori discreti, cioè di un elenco di valori separati da una virgola; intervalli, cioè da due numeri collegati da un trattino; oppure di elenchi misti.
# HorizSync 30-64 # multisync # HorizSync 31.5, 35.2 # multiple fixed sync frequencies # HorizSync 15-25, 30-50 # multiple ranges of sync frequencies
I valori indicati si riferiscono a kilohertz (simbolo: kHz), cioè migliaia di hertz, in modo predefinito.(2)
VertRefresh 50-70
La direttiva VertRefresh permette di definire le frequenze di sincronizzazione verticale. Valgono le stesse considerazione fatte per i valori della sincronizzazione orizzontale. Generalmente si tratta di un intervallo, come appare nell'esempio, inoltre l'unità di misura predefinita è in hertz.
Queste indicazioni possono essere delicate per il tipo di monitor che si utilizza, per cui non possono essere indicate troppo alla leggera. Infatti, ci sono situazioni in cui un monitor spinto a funzionare a frequenze troppo diverse da quelle previste dalla sua scheda tecnica, può anche risultarne danneggiarlo. |
# 640x400 @ 70 Hz, 31.5 kHz hsync Modeline "640x400" 25.175 640 664 760 800 400 409 411 450 # 640x480 @ 60 Hz, 31.5 kHz hsync Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
Le direttive Modeline (solitamente sono più di una nella stessa sezione) permettono di definire in dettaglio le caratteristiche di un quadro, o frame, cioè di un'immagine secondo il punto di vista del monitor. Viene definito un nome seguito da una serie di informazioni numeriche (che sono descritte meglio nel capitolo 96). Convenzionalmente, il nome viene attribuito in modo da ricordare la risoluzione che si ottiene con quel tipo di modalità. A quel nome si fa riferimento attraverso altre direttive nella sezione Screen.
Mode "640x480" DotClock 25.175 HTimings 640 664 760 800 VTimings 480 491 493 525 # Flags "Interlace" EndMode
In alternativa alla direttiva Modeline, si può utilizzare la direttiva Mode che si articola su più righe e può risultare più leggibile. Qui si mostra la dichiarazione della modalità 640x480 già vista nell'esempio precedente.
I nomi delle dichiarazione di queste diverse modalità di composizione dei quadri, possono essere usati più volte; quando ciò accade, viene presa in considerazione la prima modalità corrispondente che risulti valida. |
Con le versioni 4.* di XFree86, non è più obbligatorio indicare queste direttive Mode o ModeLine, perché il servente dispone di un elenco predefinito di queste indicazioni, associate a dei nomi intuitivi, corrispondente alle specifiche VESA.
La sezione Device riguarda la configurazione dell'adattatore grafico. Il file di configurazione può contenere diverse sezioni Device, distinte attraverso la direttiva Identifier, come nell'esempio seguente:
Identifier "VGA generica"
Il nome utilizzato per identificare l'adattatore, serve per potervi fare riferimento all'interno di una sezione Screen.
La maggior parte delle indicazioni che riguardano l'adattatore grafico possono essere determinate automaticamente dal servente grafico, all'avvio. Tuttavia, una volta conosciute, conviene fissarle nel file di configurazione.
Chipset "generic"
La direttiva Chipset permette di definire esplicitamente il tipo di integrato grafico utilizzato. I nomi utilizzabili dipendono dal servente grafico e si possono conoscere consultando la pagina di manuale di questo (XF86_*(1)).
VideoRam 256
La direttiva Videoram permette di definire esplicitamente la quantità massima di memoria disponibile nell'adattatore grafico. Il valore viene espresso in kibibyte (simbolo: Kibyte).
Clocks 25.2 28.3
La direttiva Clocks è molto importante e delicata. Permette di definire esplicitamente l'elenco di valori di dot-clock dell'adattatore grafico. Si tratta in pratica delle frequenza con cui possono essere emessi i vari punti che compongono l'immagine. I due valori mostrati nell'esempio, dovrebbero essere sufficientemente bassi e comuni, da poter risultare compatibili con la maggior parte degli adattatori grafici VGA. L'unità di misura predefinita è il megahertz (simbolo: MHz), inteso come milioni di hertz.
La sezione Screen permette di legare assieme le informazioni sul monitor e sull'adattatore grafico, aggiungendo qualche indicazione sull'aspetto della superficie grafica. Il file di configurazione può contenere diverse sezioni Screen, distinte attraverso la direttiva Identifier, come nell'esempio seguente:
Identifier "Screen 1"
Le direttive Device e Monitor permettono di indicare le sezioni che descrivono le caratteristiche dell'adattatore grafico e del monitor.
Device "S3 ViRGE" Monitor "Addonics MON-7C8B"
Inoltre, la direttiva DefaultDepth, consente di selezionare la sottosezione Display predefinita, in base alla scelta della profondità di colori:
DefaultDepth 24
La sottosezione Display serve a definire le modalità di visualizzazione che si possono utilizzare in corrispondenza di una certa profondità di colori (o di grigi). In pratica, se il tipo di adattatore grafico e il servente corrispondente permettono di utilizzare profondità di colori differenti, in base al livello utilizzato e in funzione della memoria presente si potranno ottenere risoluzioni più o meno dettagliate.
Subsection "Display" Depth 24 Modes "1024x768" "1280x1024" ViewPort 0 0 EndSubsection
La direttiva Depth definisce la profondità di colori espressa in numero di bit. Nell'esempio, il numero 24 rappresenta la possibilità di gestire circa 16 milioni di colori (o grigi), dal momento che con 24 bit si possono rappresentare esattamente 16 777 216 cifre differenti (224 = 16 777 216).
Depth 24
La direttiva Modes elenca le modalità utilizzabili con la profondità di colori definita nella sottosezione. Queste modalità sono indicate per nome, in base a quanto dichiarato nella sezione Monitor, attraverso le direttive Modeline o Mode, oppure in base alle definizioni VESA predefinite.
Modes "1024x768" "1280x1024"
La disponibilità di più modalità che fanno riferimento a risoluzioni differenti, fa sì che si definisca implicitamente una dimensione virtuale della superficie grafica, pari alla risoluzione massima. Questa dimensione deve essere tale da non superare la richiesta di memoria video, ma comunque deve essere maggiore o uguale alla massima dimensione stabilita con la direttiva Modes. Quando si utilizza una superficie grafica virtuale più grande di quella effettiva che appare sullo schermo, può essere utile stabilire quale sia la posizione iniziale, all'avvio del servente. Ciò si ottiene con la direttiva ViewPoint, dove solitamente si utilizzano le coordinate 0 0, a indicare l'angolo superiore sinistro.
ViewPort 0 0
È già stata descritta a grandi linee la sezione Files della configurazione di XFree86, in cui si trovano in particolare le direttive FontPath, per dichiarare la collocazione dei file contenenti le informazioni sui caratteri tipografici da visualizzare.
Secondo questo tipo di impostazione, ogni volta che si aggiunge una directory contenente altri caratteri, occorre modificare la configurazione di XFree86 per includere anche quella tra i percorsi previsti. Per semplificare l'accesso ai caratteri esistono dei serventi di caratteri, con i quali XFree86 può comunicare attraverso la rete, oppure solo dei socket di dominio Unix. In altri termini, un servente di caratteri può offrire il suo servizio attraverso la rete, per più di un elaboratore, oppure anche solo localmente, per mezzo di file socket.
Esistono diversi programmi che possono svolgere il compito di un servente di caratteri (per esempio Xfs, (3) X-TT (4) e Xfstt(5)); inoltre, spesso l'installazione di un servente del genere diventa quasi obbligatoria per via delle dipendenze stabilite da chi organizza la propria distribuzione GNU. Senza entrare nell'analisi del funzionamento di un servente di caratteri, basti sapere che di solito questi sono in funzione in attesa di connessioni sulla porta 7 100 TCP e se usano un socket di dominio Unix, dovrebbe corrispondere al file /tmp/.font-unix/fs7100
. Se poi si gestiscono più serventi di caratteri nello stesso elaboratore, il numero della porta potrebbe essere un valore leggermente più alto, come 7 101 o 7 110, a cui si associa di conseguenza il file /tmp/.font-unix/fs7101
o /tmp/.font-unix/fs7110
.
In presenza di uno o più serventi di caratteri, si deve intervenire nella configurazione di XFree86 per dichiarare come questi possono essere raggiunti. In caso di socket di dominio Unix, si useranno direttive di questo tipo:
FontPath "unix/:71nn"
In caso di connessioni attraverso la rete, si può provare una di queste due direttive:
FontPath "inet/host:71nn"
FontPath "tcp/host:71nn"
Naturalmente, nn va sostituito con il valore esatto, in base alla configurazione del servente di caratteri a cui si vuole accedere.
Appunti di informatica libera 2003.01.01 --- Copyright © 2000-2003 Daniele Giacomini --daniele @ swlibero.org
1) XFree86 software libero soggetto a diverse licenze a seconda della porzione di codice coinvolta
2) Quando si parla di cose legate all'informatica, è facile sbagliarsi. La frequenza si misura in hertz (simbolo: Hz), che rappresenta il numero di cicli al secondo. I moltiplicatori di questa unità di misura sono quelli standard, quindi k sta per 1 000 e non 1 024.
3) XFree86 software libero soggetto a diverse licenze a seconda della porzione di codice coinvolta
4) XFree86 software libero soggetto a diverse licenze a seconda della porzione di codice coinvolta
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome x_struttura_e_configurazione_essenziale.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]