168
contributi
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 14: | Riga 14: | ||
Ciò che andremo ad analizzare nella guida sarà il file xorg.conf (di solito è: <code>/etc/X11/xorg.conf</code>, digita <code>man xorg.conf</code> per una lista delle possibili directory del file, oppure <code>sudo find / -iname xorg.conf</code> per vedere la locazione nel tuo computer, Ctrl+C per fermare la ricerca), che permette una configurazione precisa e profonda dell'X Server. | Ciò che andremo ad analizzare nella guida sarà il file xorg.conf (di solito è: <code>/etc/X11/xorg.conf</code>, digita <code>man xorg.conf</code> per una lista delle possibili directory del file, oppure <code>sudo find / -iname xorg.conf</code> per vedere la locazione nel tuo computer, Ctrl+C per fermare la ricerca), che permette una configurazione precisa e profonda dell'X Server. | ||
Un punto fondamentale di xorg.conf è quello di "linkare" ad ogni device, non solo determinate proprietà (come ad esempio, frequenza orizzontale dello schermo) ma anche il driver specifico di questo device. Quindi notiamo che le sezioni che descrivono un device sono una sorta di interfaccia al driver utilizzato che, a sua volta, è un'interfaccia per il dispositivo vero e proprio. | |||
Nelle nuove versioni Xorg si autoconfigura rendendo quindi, in un certo senso, "inutile" il file di configurazione. Questo è vero da un lato, cioè se vogliamo una macchina pronta subito dopo l'installazione del sistema. Però, d'altro canto, come ogni cosa fatta personalmente, scrivere il proprio file di configurazione è molto più efficiente: non solo perchè possiamo ovviare ad alcuni "errori" che la configurazione automatica può portare con sè, ma anche perchè avremo un ambiente completamente personalizzato e messo a punto in ogni particolare. | Nelle nuove versioni Xorg si autoconfigura rendendo quindi, in un certo senso, "inutile" il file di configurazione. Questo è vero da un lato, cioè se vogliamo una macchina pronta subito dopo l'installazione del sistema. Però, d'altro canto, come ogni cosa fatta personalmente, scrivere il proprio file di configurazione è molto più efficiente: non solo perchè possiamo ovviare ad alcuni "errori" che la configurazione automatica può portare con sè, ma anche perchè avremo un ambiente completamente personalizzato e messo a punto in ogni particolare. | ||
==Com'è fatto== | ==Com'è fatto== | ||
Inserire un file d'esempio | |||
===Struttura generale=== | ===Struttura generale=== | ||
Il file xorg.conf è composto da un certo numero di sezioni (=<b>Section</b>) in un ordine qualsiasi. Ogni sezione ha la forma seguente: | Il file xorg.conf è composto da un certo numero di sezioni (=<b>Section</b>) in un ordine qualsiasi. Ogni sezione ha la forma seguente: | ||
Riga 44: | Riga 47: | ||
* Modes: Video modes descriptions | * Modes: Video modes descriptions | ||
* <b>Screen:</b> | * <b>Screen:</b> Associazione dei monitor alla scheda grafica e viceversa | ||
* <b>ServerLayout: </b>Strato principale del file | * <b>ServerLayout: </b>Strato principale del file | ||
Riga 53: | Riga 56: | ||
La sezione '''ServerLayout''' è il livello più alto, serve a tenere unite i device di input/output utilizzati in una sessione. I device di input sono descritti nella sezione '''InputDevice'''. Mentre i device di output (=monitor, scheda grafica) sono descritti all'interno della sezione '''Screen'''. Il monitor è descritto nella sezione '''Monitor''' e la scheda grafica nella sezione '''Device'''. | La sezione '''ServerLayout''' è il livello più alto, serve a tenere unite i device di input/output utilizzati in una sessione. I device di input sono descritti nella sezione '''InputDevice'''. Mentre i device di output (=monitor, scheda grafica) sono descritti all'interno della sezione '''Screen'''. Il monitor è descritto nella sezione '''Monitor''' e la scheda grafica nella sezione '''Device'''. | ||
Una ''SectionEntry'' (vedremo dopo quelle particolari di ogni SectionName) è formata da una parola chiave seguita da uno o più argomenti dipendenti da essa. I tipi di questi argomenti sono 3: | Una ''SectionEntry'' (vedremo dopo quelle particolari di ogni SectionName) è formata da una parola chiave seguita da uno o più argomenti dipendenti da essa. I tipi di questi argomenti sono 3: | ||
* Integer: interi | * Integer: interi | ||
Riga 101: | Riga 105: | ||
E' importante che venga caricato il modulo "extmod" perchè contiene alcune estensioni molto utili come la [http://en.wikipedia.org/wiki/Shape_extension Shape Extension] oppure la [http://en.wikipedia.org/wiki/X_video_extension X Video Extension]. | E' importante che venga caricato il modulo "extmod" perchè contiene alcune estensioni molto utili come la [http://en.wikipedia.org/wiki/Shape_extension Shape Extension] oppure la [http://en.wikipedia.org/wiki/X_video_extension X Video Extension]. | ||
===InputDevice Section=== | ===I Device: concetti generali=== | ||
Introduciamo ora alcuni concetti fondamentali riguardanti i Device. Un device è l'astrazione di un dispositivo hardware (tastiera, mouse, schermo...) al quale il sistema operativo fornisce accesso mediante un driver. | |||
Ci occuperemo dei seguenti device: tastiera, mouse, schermo e scheda grafica. A differenza degli altri device elecanti, la tastiera e il mouse devono avere una caratteristica in più. Supponiamo che attaccati ad un computer ci siano più tastiere e più mouse: in questo caso possiamo utilizzare solo una coppia alla volta. Quindi c'è bisogno di definire quale di quella tastiera è una CoreKeyboard e quale è un CorePointer. Indicando queste due opzioni (nel modo che vedremo di seguito) non facciamo nient'altro che stabilire quale tastiera e quale mouse utilizzeremo per la nostra sessione. E' possibile cambiare (con alcune opzioni del programma xorg) la corekeyboard (o la corepointer) cambiando quindi di conseguenza la tastiera (o il mouse) utilizzato. Questo discorso è utile quando c'è una sessione multiutente su una stessa macchina: ogni sessione avrà una corekeyboard diversa e quindi ogni utente può utilizzare, indipendentemente dagli altri, la sua tastiera. | |||
Il discorso sulla scheda video e il monitor è diverso: infatti non c'è la necessità di utilizzare solo un monitor o solo una scheda video in una certa sessione, poichè uno stesso utente può, naturalmente, utilizzare due schermi contemporaneamente. In questo caso, basta inserire due sezioni Screen. Lo stesso vale per la scheda grafica. | |||
====InputDevice Section==== | |||
Normalmente le sezioni InputDevice sono almeno due: una per la tastiera (primaria) e l'altra per il dispositivo di puntamento primario (di solito mouse). Se viene omessa verrà utilizzata una configurazione di default che non funziona bene su tutte le piattaforme. Quindi è utile seguire i consigli successivi. | Normalmente le sezioni InputDevice sono almeno due: una per la tastiera (primaria) e l'altra per il dispositivo di puntamento primario (di solito mouse). Se viene omessa verrà utilizzata una configurazione di default che non funziona bene su tutte le piattaforme. Quindi è utile seguire i consigli successivi. | ||
Riga 114: | Riga 123: | ||
</pre> | </pre> | ||
Le voci Identifier e Driver sono obbligatorie, mentre tutto il resto è opzionale. La voce Identifier permette di dare al device un nome univoco che è lo stesso utilizzato, ad esempio, nella sezione ServerLayout). Mentre la voce Driver indica il driver utilizzato per il device di Input. | Le voci Identifier e Driver sono obbligatorie, mentre tutto il resto è opzionale. La voce Identifier permette di dare al device un nome univoco che è lo stesso utilizzato, ad esempio, nella sezione ServerLayout). Mentre la voce Driver indica il driver utilizzato per il device di Input. | ||
Ora attenzione al seguente passaggio. Una InputDevice Section viene considerata "attiva" quando: | |||
* è specificata all'interno della ServerLayout come Core* (* = Keyboard oppure Pointer) | |||
* è specificata grazie ad alcune opzioni da linea di comando del programma xorg (digita <code>man xorg</code>) che permette di rendere "core" un device di input. | |||
* è specificata come Core* all'interno della sezione InputDevice stessa (Option "CoreKeyboard" oppure Option "CorePointer"). | |||
Se nessuna delle tre condizioni è verificata allora viene considerato core (e quindi attiva) la sezione che utilizza come driver "kbd" o "mouse" (vedi <code>man</code>). | |||
Dopo questa definizione possiamo continuare dicendo che: se viene utilizzato un server dinamico (e quindi non statico) il modulo del driver "inputdriver" viene caricato per ogni sezione attiva (non per tutte ovviamente, dato che -come abbiamo visto nell'introduzione- è possibile, per ogni sessione, utilizzare un unico mouse e un'unica tastiera). | |||
====Device Section==== | |||
xorg.conf può avere più di una sezione Device, però ce ne deve essere, come minimo una che descriva la scheda grafica utilizzata. Il formato è il seguente: | |||
<pre> | |||
Section "Device" | |||
Identifier "name" | |||
Driver "driver" | |||
entries | |||
... | |||
EndSection | |||
</pre> | |||
Sono obbligatorie solo le voci Identifier e Drivers che funzionano come sopra. Le altre entry sono opzionali e dipendono dalla scheda grafica in questione. E' utile avere a dispozione il manuale della scheda per modificarle. Ne vediamo solo alcune: | |||
* <code>BusID "bus-id"</code>: specifica l'indirizzo (il bus location) della della scheda grafica | |||
* <code> Screen number </code>: indica quale schermo utilizzare. E' utilizzato per quelle schede video che possono gestire più di uno schermo (consiglio questo link per chi avesse questa necessità: [http://wiki.linuxquestions.org/wiki/Using_multiple_monitors_with_XFree86 Using multiple monitors]) | |||
====Monitor Section==== | |||
Ha questo formato: | |||
<pre> | |||
Section "Monitor" | |||
Identifier "name" | |||
entries | |||
EndSection | |||
... | |||
</pre> | |||
L'unica voce obbligatoria è Identifier. Vediamo alcune entry interessanti: | |||
* <code>VendorName "vendor"</code>: opzionale, specifica il produttore del monitor | |||
* <code>ModelName "model"</code>: opzionale, indica il modello del monitor | |||
* <code>HorizSync horizsync-range</code>: indica il range della frequenza di aggiornamento orizzontale del monitor. Viene indicato come: <code>freq min - freq max</code>. Per default l'unità di misura è kHz (manualmente è possibile specificarlo in MHz o in Hz). Consultare il manuale del monitor per avere informazioni specifiche. | |||
* <code>VertRefresh vertrefresh-range </code>: indica il range della frequenza di aggiornamento verticale supportata dello schermo. La sintassi è come sopra. | |||
* <code>DisplaySize width height</code>: opzionale, indica larghezza e altezza, espressa in millimetri, dell'area visibile dello schermo. Se viene specificata è utilizzata per calcolare i DPI dello schermo. |
contributi