[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [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.
X Window System è un marchio registrato. Lo sviluppo di X come software libero avviene attraverso la fondazione X.Org (<http://www.x.org>). |
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.
|
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 148.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: 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.
|
Questo problema viene ripreso nella descrizione della configurazione di X 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 del dispositivo 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: nodo:n.m. La figura 148.3 mostra un esempio di questo tipo di utilizzo.
|
Un programma cliente può connettersi con un servente X, sia locale, sia 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.
La versione libera di X è costituita da X.Org(1) e in precedenza da XFree86.(2) In generale si tratta di un servente X per i sistemi operativi Unix, eventualmente in più versioni alternative, specifiche per un gruppo particolare di adattatori grafici.
La struttura prevista per il file system di un sistema GNU e di altri sistemi Unix (capitolo 121) colloca tutti i file statici di X (binari, documentazione, librerie, ecc.) al di sotto di /usr/X11R6/
. Tuttavia, per ragioni di compatibilità, di norma vengono aggiunti alcuni collegamenti simbolici:
/usr/bin/X11
che punta a /usr/X11R6/bin
,
/usr/lib/X11
che punta a /usr/X11R6/lib/X11
,
/usr/include/X11
che punta a /usr/X11R6/include/X11
.
X 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 xorg.conf
, XF86Config-4
e XF86Config
:
Per poter utilizzare X occorre predisporre il file di configurazione appropriato (/etc/X11/XF86Config
, /etc/X11/XF86Config-4
o /etc/X11/xorg.conf
), di solito attraverso un programma che guida in questa fase.
Il programma più semplice è xf86config, oppure xorgconfig (a seconda che si tratti di XFree86 o di X.Org rispettivamente). Questo programma 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 xorgconfig.
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 questo, 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 compatibile Microsoft (a due tasti).
In particolare, con i sistemi GNU/Linux, quando si 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 83.2) allo scopo di verificare le caratteristiche del mouse:
#
mdetect -x
[Invio]
/dev/psaux PS/2 |
Si passa quindi alla configurazione:
#
xorgconfig
[Invio]
This program will create a basic xorg.conf file, based on menu selections you make. It will ask for a pathname when it is ready to write the file. The xorg.conf file usually resides in /etc/X11 or /usr/X11R6/etc/X11. If no xorg.conf file is present there, Xorg will probe the system to autoconfigure itself. You can run Xorg -configure to generate a xorg.conf file based on the results of autoconfiguration, or let this program produce a base xorg.conf file for your configuration, and fine-tune it. A sample xorg.conf file is also supplied with Xorg; it is configured for a standard VGA card and monitor with 640x480 resolution. There are also many chipset and card-specific options and settings available, but this program does not know about these. On some configurations some of these settings must be specified. Refer to the X driver man pages and the chipset-specific READMEs in /usr/X11R6/lib/X11/doc for further details. Before continuing with this program, make sure you know what video card you have, and preferably also the chipset it uses and the amount of video memory on your video card, as well as the specifications of your monitor. Press enter to continue, or ctrl-c to abort. |
Il programma mostra un'introduzione ricordando in particolare che prima di proseguire è necessario conoscere le caratteristiche dell'adattatore grafico.
Press enter to continue, or ctrl-c to abort.
[Invio]
First specify a mouse protocol type. Choose one from the following list: 1. Auto [Auto detect] 2. SysMouse [SysMouse] 3. MouseSystems [Mouse Systems (3-button protocol)] 4. PS/2 [PS/2 Mouse] 5. Microsoft [Microsoft compatible (2-button protocol)] 6. Busmouse [Bus Mouse] 7. IMPS/2 [IntelliMouse PS/2] 8. ExplorerPS/2 [Explorer PS/2] 9. GlidePointPS/2 [GlidePoint PS/2] 10. MouseManPlusPS/2 [MouseManPlus PS/2] 11. NetMousePS/2 [NetMouse PS/2] 12. NetScrollPS/2 [NetScroll PS/2] 13. ThinkingMousePS/2 [ThinkingMouse PS/2] 14. AceCad [AceCad] The recommended protocol is Auto. If you have a very old mouse or don't want OS support or auto detection, and you have a two-button or three-button serial mouse, it is most likely of type Microsoft. Enter a protocol number: |
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 148.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.
Enter a protocol number:
4
[Invio]
If your mouse has only two buttons, it is recommended that you enable Emulate3Buttons. Please answer the following question with either 'y' or 'n'. Do you want to enable Emulate3Buttons? |
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.
Do you want to enable Emulate3Buttons?
y
[Invio]
Now give the full device name that the mouse is connected to, for example /dev/tty00. Just pressing enter will use the default, /dev/mouse. Mouse device: |
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.
Mouse device:
[Invio]
Please select one of the following keyboard types that is the better description of your keyboard. If nothing really matches, choose "Generic 104-key PC" 1 Generic 101-key PC 2 Generic 102-key (Intl) PC 3 Generic 104-key PC 4 Generic 105-key (Intl) PC 5 Dell 101-key PC 6 Everex STEPnote 7 Keytronic FlexPro 8 Microsoft Natural 9 Northgate OmniKey 101 10 Winbook Model XP5 11 Japanese 106-key 12 PC-98xx Series 13 A4Tech KB-21 14 A4Tech KBS-8 15 Brazilian ABNT2 16 Acer AirKey V Enter a number to choose the keyboard. Press enter for the next page |
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.
1 U.S. English 2 Arabic 3 Albania 4 Armenia 5 Azerbaijan 6 Belarus 7 Belgium 8 Bangladesh 9 India 10 Bosnia and Herzegovina 11 Brazil 12 Bulgaria 13 Myanmar 14 Canada 15 Croatia 16 Czechia 17 Denmark 18 Netherlands Enter a number to choose the country. Press enter for the next page |
[Invio]
19 Bhutan 20 Estonia 21 Iran 22 Faroe Islands 23 Finland 24 France 25 Georgia 26 Germany 27 Greece 28 Hungary 29 Iceland 30 Israel 31 Italy 32 Japan 33 Kyrgyzstan 34 Laos 35 Latin American 36 Lithuania Enter a number to choose the country. Press enter for the next page |
Quando si raggiunge la voce desiderata, basta inserire il numero corrispondente:
31
[Invio]
Please enter a variant name for 'it' layout. Or just press enter for default variant |
[Invio]
Please answer the following question with either 'y' or 'n'. Do you want to select additional XKB options (group switcher, group indicator, etc.)? |
n
[Invio]
Now we want to set the specifications of the monitor. The two critical parameters are the vertical refresh rate, which is the rate at which the the whole screen is refreshed, and most importantly the horizontal sync rate, which is the rate at which scanlines are displayed. The valid range for horizontal sync and vertical sync should be documented in the manual of your monitor. Press enter to continue, or ctrl-c to abort. |
La fase successiva è quella di definire gli intervalli di frequenza delle scansioni orizzontale e verticale del monitor. Si procede indicando direttamente i valori.
Press enter to continue, or ctrl-c to abort.
[Invio]
You must indicate the horizontal sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. It is VERY IMPORTANT that you do not specify a monitor type with a horizontal sync range that is beyond the capabilities of your monitor. If in doubt, choose a conservative setting. hsync in kHz; monitor type with characteristic modes 1 31.5; Standard VGA, 640x480 @ 60 Hz 2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz 3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600) 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz 5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz 8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz 9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz 10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz 11 Enter your own horizontal sync range Enter your choice (1-11): |
Enter your choice (1-11):
11
[Invio]
Please enter the horizontal sync range of your monitor, in the format used in the table of monitor types above. You can either specify one or more continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync frequencies. |
Horizontal sync range:
31-60
[Invio]
You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one (e.g. 87 Hz rather than 43 Hz). 1 50-70 2 50-90 3 50-100 4 40-150 5 Enter your own vertical sync range Enter your choice: |
Enter your choice:
5
[Invio]
Vertical sync range:
50-90
[Invio]
You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names. The strings are free-form, spaces are allowed. |
I dati identificativi del monitor sono facoltativi e si possono saltare semplicemente, anche se in questo esempio vengono inseriti.
Enter an identifier for your monitor definition:
Addonics MON-7C8B
[Invio]
Now we must configure video card specific settings. At this point you can choose to make a selection out of a database of video card definitions. Because there can be variation in Ramdacs and clock generators even between cards of the same model, it is not sensible to blindly copy the settings (e.g. a Device section). For this reason, after you make a selection, you will still be asked about the components of the card, with the settings from the chosen database entry presented as a strong hint. The database entries include information about the chipset, what server to run, the Ramdac and ClockChip, and comments that will be included in the Device section. However, a lot of definitions only hint about what server to run (based on the chipset the card uses) and are untested. If you can't find your card in the database, there's nothing to worry about. You should only choose a database entry that is exactly the same model as your card; choosing one that looks similar is just a bad idea (e.g. a GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of hardware as can be). |
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.
Do you want to look at the card database?
y
[Invio]
0 * Generic VESA compatible - 1 * Generic VGA compatible - 2 * Unsupported VGA compatible - 3 ** 3DLabs, TI (generic) [glint] - 4 ** 3Dfx (generic) [tdfx] - 5 ** ATI (generic) [ati] - 6 ** ATI Radeon (generic) [radeon] - 7 ** ATI Rage 128 based (generic) [r128] - 8 ** Alliance Pro Motion (generic) [apm] - 9 ** Ark Logic (generic) [ark] - 10 ** Chips and Technologies (generic) [chips] - 11 ** Cirrus Logic (generic) [cirrus] - 12 ** Cyrix MediaGX (generic) [cyrix] - 13 ** DEC TGA (generic) [tga] - 14 ** Intel i740 (generic) [i740] - 15 ** Intel i810 (generic) [i810] - 16 ** Linux framebuffer (generic) [fbdev] - 17 ** Matrox Graphics (generic) [mga] - Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. |
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]
...
0
[Invio]
Your selected card definition: Identifier: * Generic VESA compatible Chipset: - Driver: vesa Press enter to continue, or ctrl-c to abort. |
Il programma di configurazione conferma la scelta dell'adattatore grafico.
Press enter to continue, or ctrl-c to abort.
[Invio]
Now you must give information about your video card. This will be used for the "Device" section of your video card in xorg.conf. It is probably a good idea to use the same approximate amount as that detected by the server you intend to use. If you encounter problems that are due to the used server not supporting the amount memory you have, specify the maximum amount supported by the server. How much video memory do you have on your video card: 1 256K 2 512K 3 1024K 4 2048K 5 4096K 6 8192K 7 16384K 8 32768K 9 65536K 10 131072K 11 262144K 12 Other Enter your choice: |
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.
Enter your choice:
8
[Invio]
You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names (possibly from a card definition). Your card definition is * Generic VESA compatible The strings are free-form, spaces are allowed. Enter an identifier for your video card definition: |
Come per il monitor, le informazioni sul nome dell'adattatore grafico sono facoltative.
Enter an identifier for your video card definition:
VESA
[Invio]
For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "1280x1024" "1024x768" "800x600" "640x480" for 8-bit "1280x1024" "1024x768" "800x600" "640x480" for 16-bit "1280x1024" "1024x768" "800x600" "640x480" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: |
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 poi si avvia il servente si può indicare la profondità desiderata e in base a quella scelta viene 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é.
Enter your choice:
4
[Invio]
Please specify which color depth you want to use by default: 1 1 bit (monochrome) 2 4 bits (16 colors) 3 8 bits (256 colors) 4 16 bits (65536 colors) 5 24 bits (16 million colors) Enter a number to choose the default depth. |
5
[Invio]
I am going to write the xorg.conf file now. Make sure you don't accidently overwrite a previously configured one. Shall I write it to /etc/X11/xorg.conf? |
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 xorg.conf
.
Shall I write it to '/etc/X11/xorg.conf'?
y
[Invio]
File has been written. Take a look at it before starting an X server. Note that the xorg.conf file must be in one of the directories searched by the server (e.g. /etc/X11) in order to be used. Within the server press ctrl, alt and '+' simultaneously to cycle video resolutions. Pressing ctrl, alt and backspace simultaneously immediately exits the server (use if the monitor doesn't sync for a particular mode). For further configuration, refer to the xorg.conf(5x) manual page. |
Alla conclusione, il programma di configurazione ricorda che il file xorg.conf
deve trovarsi dove il servente si aspetta di trovarlo. La directory /etc/X11/
è il luogo corretto (potrebbe esistere il collegamento simbolico /usr/X11R6/lib/X11/xorg.conf
che punta a /etc/X11/xorg.conf
).
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.
X fornisce anche un altro programma per la costruzione del file di configurazione (/etc/X11/XF86Config*
o /etc/X11/xorg.conf
). Si tratta dell'eseguibile xf86cfg o di xorgcfg, 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] |
xorgcfg [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:
#
xorgcfg -textmode
[Invio]
La distribuzione Red Hat/Fedora offre l'applicativo Xconfigurator per facilitare la configurazione di X, con un funzionamento molto simile a xorgcfg 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 148.30).
|
È 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 148.31) e verticale (figura 148.32). È importante che le frequenze selezionate non superino i limiti stabiliti dalla casa costruttrice del monitor.
|
|
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 148.33.
|
Successivamente deve essere selezionata la quantità di memoria a disposizione dell'adattatore grafico. È importante non indicarne più di quanta realmente presente.
|
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 148.35 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.
|
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 di configurazione di X (/etc/X11/XF86Config
o /etc/X11/xorg.conf
) può dare molte informazioni utili sull'organizzazione del sistema grafico. In particolare, i programmi utilizzati per generarlo sono realizzati in modo da inserire molti commenti, tra cui anche 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 un file di configurazione generato attraverso xorgconfig, come descritto nella sezione 148.2.1, ma semplificato.
|
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.
|
La direttiva RgbPath permette di indicare il file contenente l'elenco dei nomi dei colori associato alla codifica RGB relativa.
|
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.
|
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].
|
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 +] («control», «alt», «+ del tastierino numerico») e [Ctrl Alt -] («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 di configurazione 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:
|
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:
|
Quello che si vede di seguito è la configurazione alternativa di una sezione InputDevice necessaria allo scopo di utilizzare il dispositivo /dev/gpmdata
. In questo caso si considera che il demone gpm fornisca le funzionalità del mouse secondo il protocollo IntelliMouse (qualunque sia il tipo di mouse utilizzato effettivamente); le dichiarazioni proposte consentono di utilizzare anche la rotellina (se c'è), e di ottenere la funzione del tasto centrale, anche se questo non dovesse esserci.
|
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:
|
Il nome utilizzato per identificare il monitor, serve per potervi fare riferimento all'interno di una sezione Screen.
|
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.
|
I valori indicati si riferiscono a kilohertz (simbolo: «kHz»), cioè migliaia di hertz, in modo predefinito.(3)
|
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. |
|
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 150). 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.
|
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 X.Org, 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:
|
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.
|
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:
|
Le direttive Device e Monitor permettono di indicare le sezioni che descrivono le caratteristiche dell'adattatore grafico e del monitor.
|
Inoltre, la direttiva DefaultDepth, consente di selezionare la sottosezione Display predefinita, in base alla scelta della profondità di colori:
|
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 è possibile ottenere risoluzioni più o meno dettagliate.
|
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).
|
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.
|
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, 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.
|
È già stata descritta a grandi linee la sezione Files della configurazione di X, 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 X per includere anche quella tra i percorsi previsti. Per semplificare l'accesso ai caratteri esistono dei serventi di caratteri, con i quali X 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,(4) X-TT(5) e Xfstt(6)); 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 X per dichiarare come questi possono essere raggiunti. In caso di socket di dominio Unix, si usano direttive di questo tipo:
FontPath "unix/:71nn" |
In caso di connessioni attraverso la rete, si può provare una di queste due direttive:
FontPath "inet/nodo:71nn" |
FontPath "tcp/nodo: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 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) X.Org MIT più altre licenze per porzioni particolari di codice
2) XFree86 MIT più altre licenze per porzioni particolari di codice
3) 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.
4) X MIT più altre licenze per porzioni particolari di codice
5) X MIT più altre licenze per porzioni particolari di codice
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome x_struttura_e_configurazione_essenziale.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]