Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ
îðèãèíàëüíîãî äîêóìåíòà
: http://www.arcetri.astro.it/irlab/doc/library/linux/AppLinux/al89.htm
Äàòà èçìåíåíèÿ: Tue Sep 21 18:08:40 1999 Äàòà èíäåêñèðîâàíèÿ: Sat Dec 22 13:22:02 2007 Êîäèðîâêà: |
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 al X Consortium, a partire dal 1 gennaio 1994. Nel 1998, X Consortium Õ diventato parte di The Open Group.
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. Tuttavia, Õ bene sottolineare che X Window System Õ un marchio registrato di The Open Group.
X Window System Õ un marchio di The Open Group (http://www.camb.opengroup.org/tech/desktop/x/) e a partire dalla versione 11R6.4 non Õ piÛ software libero. Nell'appendice I.6 Õ riportata la licenza originale, valida fino alla versione 11R6.3. |
Attualmente, lo sviluppo di X come software libero avviene per opera di The XFree86 Project, per il quale continua a essere valida la vecchia licenza MIT (appendice I.6). |
Nel sistema X si utilizzano alcuni termini importanti che rappresentano altrettante parti di questo.
server X
Si tratta del 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 server X deve essere dotato di video grafico (bitmap), tastiera e mouse. Il server grafico fornisce anche un servizio di rete dal momento che consente l'accesso a programmi in funzione presso altri elaboratori.
client X
I programmi che utilizzano questo ambiente grafico comunicando con il server X. Un client X puÐ essere messo in funzione anche in un elaboratore diverso da quello sul quale Õ in funzione un server X.
protocollo X
Il protocollo di comunicazione tra i programmi che utilizzano l'ambiente grafico e il server X.
Xlib
La libreria utilizzata dai programmi che utilizzano i servizi del server X.
gestore di finestre, Window Manager
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 client 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 67.1:
X Õ un sistema attraverso il quale, teoricamente, Õ possibile avere macchine che fanno girare piÛ di un server 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Û server 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, e viene identificata 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
67.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 2 Õ 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 3, e solitamente il tasto centrale (cioÕ il numero 2) si ottiene con l'uso contemporaneo dei due tasti esistenti.
Figura 67.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 server grafico. õ un server perchÈ offre solo dei servizi e non interagisce direttamente con l'utente. Sono i programmi client a interagire con l'utente. Questi richiedono al server 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 client, 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 client puÐ utilizzare i servizi di un server remoto, interagendo con la stazione grafica di quel server. 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
67.3 mostra un esempio di questo tipo di utilizzo.
Figura 67.3:
Il server grafico puÐ concedere l'utilizzo della stazione grafica anche a programmi in esecuzione su elaboratori remoti.
Nella sezione precedente si Õ visto che un programma client puÐ connettersi con un server X sia locale che remoto. Per una connessione remota occorre stabilire un collegamento. Il server X resta normalmente in ascolto sulla porta 6000+n, dove n rappresenta il numero della stazione grafica, ovvero del server X.
Nel caso di una stazione grafica con indirizzo :1
, la porta su cui dovrebbe trovarsi in ascolto il server relativo Õ la numero 6001.
Il concetto di client/server per ciÐ che riguarda la rete viene ripreso nei capitoli dedicati proprio alle connessioni in rete ( 75 e successivi).
I programmi che utilizzano i servizi di un server grafico fanno uso di librerie particolari. Queste librerie sono dunque indispensabili anche per quei programmi client che utilizzano i servizi di server remoti.
XFree86 Õ una collezione di server X per i sistemi operativi Unix. In origine, si trattava esclusivamente della piattaforma i386, e questa Õ la ragione della sigla «86» che compare nel nome, ma poi il progetto si Õ esteso anche ad altre. XFree86 Õ una derivazione di X386.
Si tratta di una collezione di server perchÈ uno solo non basterebbe per gestire tutti i tipi di scheda video esistenti, di conseguenza, quando si usa X, si deve scegliere il programma server in relazione alla scheda video utilizzata.
XFree86 Õ un marchio di The XFree86 Project, Inc.
La struttura prevista per il filesystem di GNU/Linux (capitolo
51) colloca tutti i file statici di X (binari, documentazione, librerie, ecc.) al di sotto di /usr/X11R6/
. I file di configurazione, sono invece collocati al di sotto di /etc/X11/
.
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 |
Per poter utilizzare XFree86 occorre configurare il file /etc/X11/XF86Config
, di solito attraverso programmi come xf86config
e XF86Setup
.
Il primo dei due Õ un programma interattivo che non fa uso di grafica ed Õ piuttosto scomodo: fa una serie di domande e non Õ possibile tornare indietro quando si scopre di avere sbagliato qualcosa. Si puÐ solo ricominciare. Il secondo, Õ un programma grafico, piÛ comodo, che perÐ potrebbe non funzionare, soprattutto se sono stati installati solo alcuni server grafici e manca quello per la scheda VGA standard.
Di seguito si descrive l'operazione di configurazione attraverso xf86config
. Chi utilizza la distribuzione Red Hat, puÐ anche usare Xconfigurator
che Õ descritto nella sezione
67.2.3, ma la lettura di questa sezione Õ opportuna ugualmente, essendo piÛ dettagliata.
õ importante ribadire che i server X sono molti, ognuno specializzato per un gruppo ristretto di schede video. Generalmente, i programmi di configurazione non avvisano l'utente della presenza o meno del server necessario per le scelte che vengono fatte, e la persona inesperta si trova spesso nella situazione di non poter capire il motivo del mancato funzionamento di X. Quindi, se manca il server X, occorre installarlo manualmente, attraverso gli strumenti offerti dalla propria distribuzione GNU/Linux. |
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 KHz mentre quella verticale in Hz. La scheda video Õ 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 a 60 KHz e frequenze verticali da 50 a 90 Hz, una scheda video con integrato S3 Trio64+, una tastiera italiana standard e un mouse seriale Microsoft compatibile (a due tasti).
$
su
[Invio]
õ meglio essere l'utente root
per fare questa operazione, altrimenti viene creato un file XF86Config
all'interno della propria directory personale invece che nella sua destinazione corretta.
#
xf86config
[Invio]
This program will create a basic XF86Config file, based on menu selections you make. The XF86Config file usually resides in /usr/X11R6/lib/X11 or /etc. A sample XF86Config file is supplied with XFree86; it is configured for a standard VGA card and monitor with 640x480 resolution. This program will ask for a pathname when it is ready to write the file. You can either take the sample XF86Config as a base and edit it for your configuration, or let this program produce a base XF86Config file for your configuration and fine-tune it. Refer to /usr/X11R6/lib/X11/doc/README.Config for a detailed overview of the configuration process. For accelerated servers (including accelerated drivers in the SVGA server), there are many chipset and card-specific options and settings. This program does not know about these. On some configurations some of these settings must be specified. Refer to the server man pages and chipset-specific READMEs. Before continuing with this program, make sure you know the chipset and amount of video memory on your video card. SuperProbe can help with this. It is also helpful if you know what server you want to run. 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 della scheda video.
[Invio]
The directory '/usr/X386/bin' exists. You probably have an old version of XFree86 installed (XFree86 3.1 installs in '/usr/X11R6' instead of '/usr/X386'). It is important that the directory '/usr/X11R6' is present in your search path, *before* any occurrence of '/usr/X386/bin'. If you have installed X program binaries that are not in the base XFree86 distribution in '/usr/X386/bin', you can keep the directory in your path as long as it is after '/usr/X11R6'. Your PATH is currently set as follows: /usr/local/bin:/bin:/usr/bin:/usr/bin/X11:/usr/openwin/bin:/usr/lib/teTeX/bin:. Note that the X binary directory in your path may be a symbolic link. In that case you could modify the symbolic link to point to the new binaries. Example: 'rm -f /usr/bin/X11; ln -s /usr/X11R6/bin /usr/bin/X11', if the link is '/usr/bin/X11'. Make sure the path is OK before continuing. Press enter to continue, or ctrl-c to abort. |
Come si era detto in precedenza, XFree86 Õ derivato da X386, quindi le precedenti versioni erano installate all'interno della directory /usr/X386/bin
. Ma per motivi di compatibilitÞ con il passato Õ normale trovare un collegamento simbolico che traduce /usr/X386
in /usr/X11R6
. Di conseguenza, se le cose stanno cosË, l'avvertimento che riguarda questa directory puÐ essere ignorato.
Per il funzionamento del server XFree86 Õ necessario che la directory in cui risiede sia compresa nel percorso di ricerca (cioÕ nella variabile PATH
). Questa directory Õ /usr/X11R6/bin
, ma spesso Õ raggiungibile anche attraverso il collegamento simbolico /usr/bin/X11
che punta a /usr/X11R6/bin/
. Quindi il percorso di ricerca trovato nella variabile PATH
Õ valido (si trattava di ...:/usr/bin/X11:...
).
[Invio]
First specify a mouse protocol type. Choose one from the following list: 1. Microsoft compatible (2-button protocol) 2. Mouse Systems (3-button protocol) 3. Bus Mouse 4. PS/2 Mouse 5. Logitech Mouse (serial, old type, Logitech protocol) 6. Logitech MouseMan (Microsoft compatible) 7. MM Series 8. MM HitTablet If you have a two-button mouse, it is most likely of type 1, and if you have a three-button mouse, it can probably support both protocol 1 and 2. There are two main varieties of the latter type: mice with a switch to select the protocol, and mice that default to 1 and require a button to be held at boot-time to select protocol 2. Some mice can be convinced to do 2 by sending a special sequence to the serial port (see the ClearDTR/ClearRTS options). Enter a protocol number: |
Anche il mouse puÐ essere un problema, specialmente se si dispone di un bus-mouse. Si veda a questo proposito quanto spiegato nella sezione 67.2.4.4.
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.
Dato che si vuole seguire l'esempio proposto inizialmente, si sceglie il mouse Microsoft compatibile.
1
[Invio]
You have selected a Microsoft protocol mouse. If your mouse was made by Logitech, you might want to enable ChordMiddle which could cause the third button to work. Please answer the following question with either 'y' or 'n'. Do you want to enable ChordMiddle? |
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.
n
[Invio]
You have selected a two-button mouse protocol. It is recommended that you enable Emulate3Buttons. Please answer the following question with either 'y' or 'n'. 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.
[Invio]
Beginning with XFree86 3.1.2D, you can use the new X11R6.1 XKEYBOARD extension to manage the keyboard layout. If you answer 'n' to the following question, the server will use the old method, and you have to adjust your keyboard layout with xmodmap. Please answer the following question with either 'y' or 'n'. Do you want to use XKB? |
õ possibile utilizzare una mappa della tastiera gestita direttamente da X. Si procede in modo da selezionare quella adatta alla tastiera italiana.
y
[Invio]
The following dialogue will allow you to select from a list of already preconfigured keymaps. If you don't find a suitable keymap in the list, the program will try to combine a keymap from additional information you are asked then. Such a keymap is by default untested and may require manual tuning. Please report success or required changes for such a keymap to XFREE86@XFREE86.ORG for addition to the list of preconfigured keymaps in the future. Press enter to continue, or ctrl-c to abort. |
[Invio]
List of preconfigured keymaps: 1 Standard 101-key, US encoding 2 Microsoft Natural, US encoding 3 KeyTronic FlexPro, US encoding 4 Standard 101-key, US encoding with ISO9995-3 extensions 5 Standard 101-key, German encoding 6 Standard 101-key, French encoding 7 Standard 101-key, Thai encoding 8 Standard 101-key, Swiss/German encoding 9 Standard 101-key, Swiss/French encoding 10 None of the above Enter a number to choose the keymap. |
10
[Invio]
You did not select one of the preconfigured keymaps. We will now try to compose a suitable XKB setting. This setting is untested. Please select one of the following standard keyboards. Use DEFAULT if nothing really fits (101-key, tune manually) 1 Standard 101-key keyboard 2 Standard 102-key keyboard 3 101-key with ALT_R = Multi_key 4 102-key with ALT_R = Multi_key 5 Microsoft Natural keyboard 6 KeyTronic FlexPro keyboard 7 DEFAULT Enter a number to choose the keyboard. |
2
[Invio]
Please choose one of the following countries. Use DEFAULT if nothing really fits (US encoding, tune manually) Press enter to continue, or ctrl-c to abort. |
[Invio]
1 Belgium 2 Bulgaria 3 Canada 4 Czechoslovakia 5 Denmark 6 Finland 7 France 8 Germany 9 Italy 10 Norway 11 Poland 12 Portugal 13 Russia 14 Spain 15 Sweden 16 Thailand 17 Switzerland/French layout 18 Switzerland/German layout Enter a number to choose the country. Press enter for the next page |
9
[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. If in doubt, check the monitor database /usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there. 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.
[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): |
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
[Invio]-
60
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: |
5
[Invio]
Vertical sync range: |
50
[Invio]-
60
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. Enter an identifier for your monitor definition: |
I dati identificativi del monitor sono facoltativi e si possono saltare semplicemente, anche se in questo esempio vengono inseriti.
Addonics MON-7C8B
[Invio]
Enter the vendor name of your monitor: |
Addonics
[Invio]
Enter the model name of your monitor: |
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). Do you want to look at the card database? |
L'indicazione della scheda video Õ una fase delicata e con un po' di fortuna si puÐ trovare la propria scheda nell'elenco di quelle previste.
y
[Invio]
0 2 the Max MAXColor S3 Trio64V+ S3 Trio64V+ 1 928Movie S3 928 2 AGX (generic) AGX-014/15/16 3 ALG-5434(E) CL-GD5434 4 ASUS PCI-AV264CT ATI-Mach64 5 ASUS PCI-V264CT ATI-Mach64 6 ASUS Video Magic PCI V864 S3 864 7 ASUS Video Magic PCI VT64 S3 Trio64 8 ATI 3D Xpression ATI-Mach64 9 ATI 8514 Ultra (no VGA) ATI-Mach8 10 ATI Graphics Pro Turbo ATI-Mach64 11 ATI Graphics Pro Turbo 1600 ATI-Mach64 12 ATI Graphics Ultra ATI-Mach8 13 ATI Graphics Ultra Pro ATI-Mach32 14 ATI Graphics Xpression with 68875 RAMDAC ATI-Mach64 15 ATI Graphics Xpression with AT&T 20C408 RAMDAC ATI-Mach64 16 ATI Graphics Xpression with CH8398 RAMDAC ATI-Mach64 17 ATI Graphics Xpression with Mach64 CT (264CT) ATI-Mach64 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 della propria scheda. Una volta raggiunta la fine, l'elenco viene riproposto dall'inizio.
[Invio]
[Invio]
[Invio]
...
234 S3 86C928 (generic) S3 928 235 S3 86C964 (generic) S3 964 236 S3 86C968 (generic) S3 968 237 S3 86C988 (generic) S3 ViRGE/VX 238 S3 911/924 (generic) S3 911/924 239 S3 924 with SC1148 DAC S3 924 240 S3 928 (generic) S3 928 241 S3 964 (generic) S3 964 242 S3 968 (generic) S3 968 243 S3 Trio32 (generic) S3 Trio32 244 S3 Trio64 (generic) S3 Trio64 245 S3 Trio64V+ (generic) S3 Trio64V+ 246 S3 ViRGE (generic) S3 ViRGE 247 S3 ViRGE/VX (generic) S3 ViRGE/VX 248 S3 Vision864 (generic) S3 864 249 S3 Vision868 (generic) S3 868 250 S3 Vision964 (generic) S3 964 251 S3 Vision968 (generic) S3 968 Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. |
245
[Invio]
Your selected card definition: Identifier: S3 Trio64 (generic) Chipset: S3 Trio64 Server: XF86_S3 Do NOT probe clocks or use any Clocks line. Press enter to continue, or ctrl-c to abort. |
Il programma di configurazione conferma la scelta della scheda video, e in questo caso, avvisa che non si dovrÞ sondare il clock e non si dovrÞ usare alcuna direttiva Clocks
nella sezione Device
.
[Invio]
Now you must determine which server to run. Refer to the manpages and other documentation. The following servers are available (they may not all be installed on your system): 1 The XF86_Mono server. This a monochrome server that should work on any VGA-compatible card, in 640x480 (more on some SVGA chipsets). 2 The XF86_VGA16 server. This is a 16-color VGA server that should work on any VGA-compatible card. 3 The XF86_SVGA server. This is a 256 color SVGA server that supports a number of SVGA chipsets. On some chipsets it is accelerated or supports higher color depths. 4 The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and XF86_S3V. These four server types correspond to the four different "Screen" sections in XF86Config (vga2, vga16, svga, accel). 5 Choose the server from the card definition, XF86_S3. Which one of these screen types do you intend to run by default (1-5)? |
Questa domanda sembra superflua dato che la scheda video Õ appena stata scelta. In pratica si deve confermare che si vuole proprio il server che puÐ gestire la scheda selezionata precedentemente.
5
[Invio]
The server to run is selected by changing the symbolic link 'X'. For example, 'rm /usr/X11R6/bin/X; ln -s /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X' selects the SVGA server. Please answer the following question with either 'y' or 'n'. Do you want me to set the symbolic link? |
Per fare in modo che venga avviato il server desiderato, si crea o si modifica un collegamento simbolico. In questo caso si deve fare in modo che /usr/X11R6/bin/X
punti a /usr/X11R6/bin/XF86_S3
. Lo si puÐ fare manualmente o lo si puÐ lasciar fare al programma di configurazione.
*1*
y
[Invio]
Now you must give information about your video card. This will be used for the "Device" section of your video card in XF86Config. You must indicate how much video memory you have. 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 (e.g. ATI Mach64 is limited to 1024K with the SVGA server), 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 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.
3
[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 S3 Trio64 (generic). The strings are free-form, spaces are allowed. Enter an identifier for your video card definition: |
Come per il monitor, le informazioni sul nome della scheda sono facoltative.
S3-763
[Invio]
You can simply press enter here if you have a generic card, or want to describe your card with one string. Enter the vendor name of your video card: |
[Invio]
Enter the model (board) name of your video card: |
S3 Trio64V+
[Invio]
Especially for accelerated servers, Ramdac, Dacspeed and ClockChip settings or special options may be required in the Device section. The RAMDAC setting only applies to the S3, AGX, W32 servers, and some drivers in the SVGA servers. Some RAMDAC's are auto-detected by the server. The detection of a RAMDAC is forced by using a Ramdac "identifier" line in the Device section. The identifiers are shown at the right of the following table of RAMDAC types: 1 AT&T 20C490 (S3 and AGX servers, ARK driver) att20c490 2 AT&T 20C498/21C498/22C498 (S3, autodetected) att20c498 3 AT&T 20C409/20C499 (S3, autodetected) att20c409 4 AT&T 20C505 (S3) att20c505 5 BrookTree BT481 (AGX) bt481 6 BrookTree BT482 (AGX) bt482 7 BrookTree BT485/9485 (S3) bt485 8 Sierra SC15025 (S3, AGX) sc15025 9 S3 GenDAC (86C708) (autodetected) s3gendac 10 S3 SDAC (86C716) (autodetected) s3_sdac 11 STG-1700 (S3, autodetected) stg1700 12 STG-1703 (S3, autodetected) stg1703 Enter a number to choose the corresponding RAMDAC. Press enter for the next page, q to quit without selection of a RAMDAC. |
[Invio]
19 IBM RGB 526 (S3) ibm_rgb526 20 IBM RGB 528 (S3, autodetected) ibm_rgb528 21 ICS5342 (S3, ARK) ics5342 22 ICS5341 (W32) ics5341 23 IC Works w30C516 ZoomDac (ARK) zoomdac 24 Normal DAC normal Enter a number to choose the corresponding RAMDAC. Press enter for the next page, q to quit without selection of a RAMDAC. |
24
[Invio]
A Clockchip line in the Device section forces the detection of a programmable clock device. With a clockchip enabled, any required clock can be programmed without requiring probing of clocks or a Clocks line. Most cards don't have a programmable clock chip. Choose from the following list: 1 Chrontel 8391 ch8391 2 ICD2061A and compatibles (ICS9161A, DCS2824) icd2061a 3 ICS2595 ics2595 4 ICS5342 (similar to SDAC, but not completely compatible) ics5342 5 ICS5341 ics5341 6 S3 GenDAC (86C708) and ICS5300 (autodetected) s3gendac 7 S3 SDAC (86C716) s3_sdac 8 STG 1703 (autodetected) stg1703 9 Sierra SC11412 sc11412 10 TI 3025 (autodetected) ti3025 11 TI 3026 (autodetected) ti3026 12 IBM RGB 51x/52x (autodetected) ibm_rgb5xx Just press enter if you don't want a Clockchip setting. What Clockchip setting do you want (1-12)? |
[Invio]
For most configurations, a Clocks line is useful since it prevents the slow and nasty sounding clock probing at server start-up. Probed clocks are displayed at server startup, along with other server and hardware configuration info. You can save this information in a file by running 'X -probeonly 2>output_file'. Be warned that clock probing is inherently imprecise; some clocks may be slightly too high (varies per run). At this point I can run X -probeonly, and try to extract the clock information from the output. It is recommended that you do this yourself and add a clocks line (note that the list of clocks may be split over multiple Clocks lines) to your Device section afterwards. Be aware that a clocks line is not appropriate for drivers that have a fixed set of clocks and don't probe by default (e.g. Cirrus). Also, for the P9000 server you must simply specify clocks line that matches the modes you want to use. For the S3 server with a programmable clock chip you need a 'ClockChip' line and no Clocks line. You must be root to be able to run X -probeonly now. The card definition says to NOT probe clocks. Do you want me to run 'X -probeonly' now? |
La scheda scelta non richiede alcuna direttiva Clocks
nella sezione Device
, e lo stesso programma di configurazione avvisa di questo.
n
[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: "640x480" "800x600" "1024x768" for 8bpp "640x480" "800x600" for 16bpp "640x480" for 24bpp "640x400" for 32bpp Note that 16, 24 and 32bpp are only supported on a few configurations. Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8pp (256 colors) 2 Change the modes for 16bpp (32K/64K colors) 3 Change the modes for 24bpp (24-bit color, packed pixel) 4 Change the modes for 32bpp (24-bit color) 5 The modes are OK, continue. Enter your choice: |
In base al tipo di scheda e alla quantitÞ di memoria installata su di essa, si puÐ determinare l'elenco delle modalitÞ di funzionamento di questa. Dal momento che si ha a disposizione solo 1 Mbyte di memoria, non si puÐ superare la risoluzione 1024x768. Se ci si accontenta di risoluzioni inferiori si puÐ aumentare la profonditÞ dei colori (bpp equivale a bit per pixel e 2 elevato a questo valore dÞ il numero di colori a disposizione, quindi, con 8 bpp si hanno a disposizione 2^8 = 256 colori).
Quando si avvierÞ il server 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 di una particolare modalitÞ, oppure si puÐ eliminare un livello di risoluzione che genera qualche problema di visualizzazione. In generale non vale la pena di cambiare alcunchÈ.
5
[Invio]
I am going to write the XF86Config file now. Make sure you don't accidently overwrite a previously configured one. Do you want it written to the current directory as 'XF86Config'? |
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]
File has been written. Take a look at it before running 'startx'. Note that the XF86Config file must be in one of the directories searched by the server (e.g. /usr/X11R6/lib/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 /usr/X11R6/lib/X11/doc/README.Config. |
Alla conclusione, il programma di configurazione ricorda che il file XF86Config
deve trovarsi dove il server 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 server.
Come accennato in precedenza, la distribuzione Red Hat offre l'applicativo Xconfigurator per facilitare la configurazione di XFree86. 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 della scheda video. 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 scheda, o direttamente il server grafico. Successivamente si passa all'indicazione del tipo di monitor (figura
67.4).
Figura 67.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
67.5) e verticale (figura
67.6). õ importante che le frequenze selezionate non superino i limiti stabiliti dalla casa costruttrice del monitor.
Figura 67.5:
Scelta della frequenza orizzontale.
Figura 67.6:
Scelta della frequenza verticale.
A seconda del tipo di scheda video 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 67.7.
Figura 67.7:
Scelta del clockchip.
Successivamente deve essere selezionata la quantitÞ di memoria a disposizione della scheda video. õ importante non indicarne piÛ di quanta realmente presente.
Figura 67.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 67.9 mostra in particolare un esempio in cui Õ stata selezionata solo la risoluzione 800x600, sia per la profonditÞ di colori a 8 bit, sia per la profonditÞ a 16, escludendo quella a 24 bit.
Figura 67.9:
Indicazione delle modalitÞ video utilizzabili.
Al termine, viene provato l'avvio del server 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, e tra questi molti esempi di direttive che potrebbero essere utilizzate, 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 adatto alla maggior parte delle schede video VGA e dei monitor relativi, utilizzando il server grafico Mono, VGA16, oppure SVGA (rispettivamente: XF86_Mono
, XF86_VGA16
e XF86_SVGA
).
L'utilizzo del server SVGA, secondo questo file di configurazione, non Õ perfetto per tutte le schede, e puÐ portare a degli effetti collaterali non molto piacevoli. Prudenza quindi! Siate pronti a riavviare il sistema. |
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" # DontZap # DontZoom EndSection Section "Keyboard" Protocol "Standard" AutoRepeat 500 5 Xkbkeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "en_US(pc102)+it" XkbGeometry "pc" EndSection Section "Pointer" Protocol "microsoft" Device "/dev/mouse" Emulate3Buttons Emulate3Timeout 50 EndSection Section "Monitor" Identifier "Monitor generico" HorizSync 31.5, 32.8, 35.15 VertRefresh 50-70 # 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 # 640x480 @ 63 Hz, 32.8 kHz hsync Modeline "640x480.28" 28.32 640 680 720 864 480 488 491 521 # 800x600 @ 56 Hz, 35.15 kHz hsync Modeline "800x600" 36 800 824 896 1024 600 601 603 625 EndSection Section "Device" Identifier "VGA generica" Chipset "generic" VideoRam 256 Clocks 25.2 28.3 EndSection Section "Device" Identifier "VGA 512" VideoRam 512 Clocks 25.2 28.3 EndSection Section "Screen" Driver "vga2" # XF86_Mono Device "VGA generica" Monitor "Monitor generico" Subsection "Display" Modes "640x400" "640x480" "640x480.28" ViewPort 0 0 Virtual 640 480 EndSubsection EndSection Section "Screen" Driver "vga16" # XF86_VGA16 Device "VGA generica" Monitor "Monitor generico" Subsection "Display" Modes "640x400" "640x480" "640x480.28" ViewPort 0 0 Virtual 640 480 EndSubsection EndSection Section "Screen" Driver "svga" # XF86_SVGA Device "VGA 512" Monitor "Monitor generico" Subsection "Display" Depth 8 Modes "640x400" "640x480" "640x480.28" "800x600" ViewPort 0 0 Virtual 800 600 EndSubsection 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 XF86Config(5) e per ciÐ che riguarda piÛ specificatamente il tipo di server grafico utilizzato, XF86_*(1).
La sezione Files
riguarda la posizione dei file utilizzati dal server.
RgbPath "/usr/X11R6/lib/X11/rgb" |
La direttiva RgbPath
permette di indicare il file contenente l'elenco dei nomi dei colori associato alla relativa codifica 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/" |
Con le direttive FontPath
si indicano le directory contenenti i file dei tipi di carattere utilizzabili.
Questa sezione permette di controllare alcune opzioni abbastanza importanti, in particolare quelle seguenti.
DontZap |
La direttiva DontZap
, se presente (di solito c'Õ, ma commentata), toglie la possibilitÞ di concludere l'attivitÞ del server attraverso la combinazione di tasti [Ctrl+Alt+Backspace].
DontZoom |
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 Keyboard
riguarda la configurazione della tastiera. In generale, per quanto possibile, 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.
La sezione Pointer
riguarda la configurazione del mouse.
Protocol "microsoft" |
La direttiva Protocol
permette di definire il tipo di mouse utilizzato. Nelle situazioni piÛ comuni si tratta del tipo microsoft
, cioÕ di un mouse seriale a due tasti, oppure di mouseman
, cioÕ di un mouse seriale a tre tasti, in cui il tasto centrale corrisponde alla pressione contemporanea dei due.
Device "/dev/mouse" |
La direttiva Device
definisce il file di dispositivo utilizzato per raggiungere il mouse. In questo caso si fa riferimento, evidentemente, a un collegamento simbolico.
Emulate3Buttons Emulate3Timeout 50 |
Le direttive Emulate3Buttons
e Emulate3Timeout
vanno usate assieme o eliminate del tutto. La loro presenza permette di abilitare l'emulazione del tasto centrale attraverso la pressione simultanea dei due tasti. Il valore del timeout, espresso in millisecondi, serve a definire la tolleranza necessaria a stabilire che si tratta di una pressione simultanea o meno.
ChordMiddle |
La direttiva ChordMiddle
(accordo centrale), si sostituisce alle due direttive Emulate3
... Anch'essa rappresenta l'emulazione del tasto centrale attraverso la pressione simultanea dei due tasti esterni, perÐ senza alcuna tolleranza. In pratica, si utilizza con mouse in cui il tasto centrale esiste e corrisponde a questa azione, come nel caso dei modelli Logitech MouseMan.
Quando si utilizza un bus-mouse, come per esempio il tipo PS/2, il file di dispositivo corrispondente non consente l'accesso multiplo da parte dei processi elaborativi. Di conseguenza si possono creare dei problemi tra X e demoni come |
Quello che si vede di seguito Õ la configurazione alternativa della sezione Pointer
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
32.5.
# Pointer section Section "Pointer" Protocol "MouseSystems" Device "/dev/gpmdata" |
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 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 Hz.
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 verranno descritte meglio nel prossimo capitolo). 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. |
La sezione Device
riguarda la configurazione della scheda video. 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 la scheda, serve per potervi fare riferimento all'interno di una sezione Screen
.
La maggior parte delle indicazioni che riguardano la scheda video possono essere determinate automaticamente dal server 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 server 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 nella scheda video. Il valore viene espresso in Kbyte.
Clocks 25.2 28.3 |
La direttiva Clocks
Õ molto importante e delicata. Permette di definire esplicitamente l'elenco di valori di dot-clock della scheda video. 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 delle schede video VGA. L'unitÞ di misura predefinita Õ il MHz (MegaHertz, inteso come milioni di Hertz).
La sezione Screen
permette di legare assieme le informazioni sul monitor e la scheda video, aggiungendo qualche indicazione sull'aspetto della superficie grafica. Il file di configurazione puÐ contenere diverse sezioni Screen
, distinte attraverso la direttiva Driver
, che vengono selezionate in base al tipo di server grafico utilizzato effettivamente.
Driver "vga16" |
La direttiva Driver
serve a definire il nome del server grafico a cui si riferisce la sezione. Tra i nomi piÛ comuni Õ il caso di ricordare i seguenti: vga2
, che si riferisce al server VGA monocromatico; vga16
, che si riferisce al server VGA a 4 bit (16 colori); svga
, che si riferisce al server VGA a 8 bit (256 colori).
Device "VGA generica" Monitor "Monitor generico" |
Le direttive Device
e Monitor
permettono di indicare le sezioni che descrivono le caratteristiche della scheda video e del monitor.
Subsection "Display" Depth 4 Modes "640x400" "640x480" "640x480.28" ViewPort 0 0 Virtual 800 600 EndSubsection |
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 scheda video, e il server 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.
Depth 4 |
La direttiva Depth
definisce la profonditÞ di colori espressa in numero di bit. Nell'esempio, 4 rappresenta la possibilitÞ di gestire 16 colori (o grigi), dal momento che con 4 bit si possono rappresentare 16 cifre differenti (2^4 = 16).
Modes "640x400" "640x480" "640x480.28" |
La direttiva Modes
elenca le modalitÞ utilizzabili con la profonditÞ di colori definita nella sottosezione. Queste modalitÞ sono indicate per nome, in base a quando dichiarato nella sezione Monitor
, attraverso le direttive Modeline
o Mode
.
ViewPort 0 0 Virtual 800 600 |
La direttiva Virtual
permette di definire la dimensione virtuale della superficie grafica, in punti orizzontali e verticali. Questa dimensione deve essere tale da non superare la richiesta di memoria video, e 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 server. CiÐ si ottiene con la direttiva ViewPoint
, dove solitamente si utilizzano le coordinate 0 0, a indicare l'angolo superiore sinistro.
Con le normali distribuzioni GNU/Linux, dopo la configurazione del server X, dovrebbe essere sufficiente avviare lo script startx
, senza argomenti, per vedere funzionare questo ambiente grafico.
$
startx
[Invio]
Avendo avviato il server X, vale la pena di provare a cambiare la risoluzione di visualizzazione attraverso la combinazione [Ctrl+Alt+num(+)] (control alt + del tastierino numerico) e [Ctrl+Alt+num(-
)] (control alt -
del tastierino numerico).
Per passare dal server X a una console virtuale, Õ sufficiente utilizzare la combinazione [Ctrl+Alt+F1], oppure [Ctrl+Alt+F2],... invece del solito [Alt+Fn] che non potrebbe funzionare. Il server X occupa normalmente la posizione della prima console virtuale libera, che solitamente Õ la settima; per cui si raggiunge con la combinazione [Ctrl+Alt+F7].
Per concludere l'esecuzione del server X ci sono due modi:
interrompere il server attraverso la combinazione [Ctrl+Alt+Backspace];
concludere l'esecuzione del gestore di finestre.
L'interruzione dell'esecuzione del server X con la combinazione [Ctrl+Alt+Backspace] Õ il modo piÛ brutale, ma puÐ essere opportuno quando non si vede piÛ nulla, specie quando si Õ avviato X dopo una configurazione sbagliata.
Nelle sezioni precedenti si Õ accennato al modo con cui Õ possibile avviare e concludere il funzionamento del server X. Dovrebbe essere chiaro che per avviare X si utilizza normalmente lo script startx
, ma questo non Õ l'unico modo, e in ogni caso, da questo script si articola una struttura piuttosto articolata che Õ opportuno conoscere.
Il server grafico Õ un programma distinto a seconda del tipo di scheda grafica. Teoricamente sarebbe necessario avviare il sistema grafico utilizzando il programma adatto al proprio hardware, in pratica, il sistema di configurazione xf86config
provvede a creare un collegamento simbolico in modo da poter avviare il server utilizzando semplicemente il nome X
.
Se si avvia semplicemente il server, utilizzando il nome X
oppure quello specifico di una particolare scheda grafica, si ottiene solo una superficie grafica su cui fare scorre il mouse. Per poter fare qualcosa, occorre almeno avere in funzione un programma che consenta di avviarne altri. Occorrono cioÕ dei client.
*3*
Per risolvere questo problema si deve utilizzare il programma xinit
, attraverso il quale si possono definire alcuni client di partenza (per esempio un gestore di finestre), il tipo di server da utilizzare e le sue eventuali opzioni.
xinit [[<client>] <opzioni>] [ |
xinit
viene usato per avviare il server X e un primo programma client. Quando questo programma client termina la sua esecuzione, xinit
invia un segnale di interruzione al server X e quindi, a sua volta, termina la sua esecuzione.
Se non viene indicato un programma client specifico, xinit
tenta di avviare il file ~/.xinitrc
, che di solito dovrebbe corrispondere a uno script, e se questo manca, tenta di avviare il programma xterm
nel modo seguente:
xterm |
Se non viene indicato un programma server specifico, xinit
tenta di avviare il file ~/.xserverrc
, e se questo manca, tenta di avviare il programma X
nel modo seguente:
X :0 |
Quando si vuole fare in modo che il server X venga avviato inizialmente con un gruppetto di programmi client, si fa in modo che xinit
utilizzi per questo uno script. Di solito si tratta proprio del file ~/.xinitrc
, quello che verrebbe avviato in modo predefinito. All'interno di questo script, i programmi dovrebbero essere avviati sullo sfondo, con la possibile eccezione di quelli che terminano immediatamente la loro funzione. L'ultimo di questi programmi deve funzionare in primo piano (foreground), in modo che la sua conclusione corrisponda con quella dello script stesso.
Di solito, xinit
viene avviato senza l'indicazione esplicita di client e server. Se si intende utilizzare questa possibilitÞ, i nomi di questi devono comprendere il percorso per raggiungerli: devono cioÕ inziare con un punto (.
) oppure con una barra obliqua (/
). Diversamente non verrebbero riconosciuti come tali, ma come opzioni per il programma client o per il programma server, a seconda che si trovino a sinistra o a destra dei due trattini di separazione (
).
-
-
$
xinit
Avvia xinit
con i valori predefiniti. In questo modo xinit
tenta di avviare il server X utilizzando il programma o lo script ~/.xinitrc
come client, oppure il programma xterm
in sua mancanza.
$
xinit
-
-
/usr/X11R6/bin/X86_SVGA
Si richiede a xinit
di avviare il server /usr/X11R6/bin/X86_SVGA
. Per quanto riguarda il client, si utilizzano i valori predefiniti.
$
xinit
-
-
-
bpp 16
xinit
avvia il server X predefinito, con l'argomento
, attraverso cui si richiede una profonditÞ di colori di 16 bit per pixel (2^16 = 65535). Per quanto riguarda il client, si utilizzano i valori predefiniti.
-
bpp 16
Il modo migliore per verificare cosa accade quando si avvia xinit
Õ quello di verificare l'interdipendenza tra i processi attraverso pstree
. Supponendo di avere avviato xinit
senza argomenti, e che questo abbia potuto utilizzare lo script ~/.xinitrc
, si dovrebbe ottenere uno schema simile a quello seguente:
...---xinit-+-.xinitrc---fvwm-+-FvwmPager | `-GoodStuff `-X |
In questo caso si puÐ osservare che ~/.xinitrc
avvia il gestore di finestre fvwm
che a sua volta si occupa di avviare altre cose.
Nella sezione precedente si Õ visto che Õ possibile avviare il server X attraverso xinit
. Questo modo potrebbe perÐ risultare scomodo quando si ha la necessitÞ di utilizzare sistematicamente determinati attributi. Il sistema grafico dovrebbe essere avviato attraverso lo script startx
, che Õ predisposto per xinit
nel modo piÛ adatto alle esigenze particolari del proprio sistema.
Di solito la distribuzione GNU/Linux fornisce uno script adattato alla sua impostazione, oppure in futuro, lo stesso programma di configurazione di X potrebbe predisporre da solo questo file. In ogni caso, l'amministratore del sistema dovrebbe rivedere questo script ed eventualmente ritoccarlo.
La sintassi di startx
, quando si tratta di una versione aderente all'impostazione originale di X, Õ praticamente uguale a quella di xinit
.
startx [[<client>] <opzioni>] [ |
startx
offre perÐ la possibilitÞ di predisporre delle opzioni predefinite per client e server.
#!/bin/sh # $XConsortium: startx.cpp,v 1.4 91/08/22 11:41:29 rws Exp $ # $XFree86: xc/programs/xinit/startx.cpp,v 3.0 1994/05/22 00:02:28 dawes Exp $ # # This is just a sample implementation of a slightly less primitive # interface than xinit. It looks for user .xinitrc and .xserverrc # files, then system xinitrc and xserverrc files, else lets xinit choose # its default. The system xinitrc should probably do things like check # for .Xresources files and merge them in, startup up a window manager, # and pop a clock and several xterms. # # Site administrators are STRONGLY urged to write nicer versions. # userclientrc=$HOME/.xinitrc userserverrc=$HOME/.xserverrc sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc clientargs="" serverargs="" if [ -f $userclientrc ]; then clientargs=$userclientrc else if [ -f $sysclientrc ]; then clientargs=$sysclientrc fi fi if [ -f $userserverrc ]; then serverargs=$userserverrc else if [ -f $sysserverrc ]; then serverargs=$sysserverrc fi fi whoseargs="client" while [ "x$1" != "x" ]; do case "$1" in /''*|\.*) if [ "$whoseargs" = "client" ]; then clientargs="$1" else serverargs="$1" fi ;; --) whoseargs="server" ;; *) if [ "$whoseargs" = "client" ]; then clientargs="$clientargs $1" else serverargs="$serverargs $1" fi ;; esac shift done xinit $clientargs -- $serverargs |
Nell'esempio appena visto, Õ sufficiente modificare le prime righe per definire delle opzioni predefinite, attribuendo un valore alle variabili clientargs
e serverargs
. La prima si riferisce alle opzioni per il client, la seconda per quelle del server.
Per esempio, volendo avviare il server, attraverso startx
, con una risoluzione di 16 bit per pixel, basterebbe modificare le prime righe come nell'esempio seguente, in modo da fornire al server l'opzione
.
-
bpp 16
... userclientrc=$HOME/.xinitrc userserverrc=$HOME/.xserverrc sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc clientargs="" serverargs="-bpp 16" ... |
Se il funzionamento dello script indicato come esempio non dovesse risultare chiaro, ecco in breve la descrizione delle varie fasi in esso contenute.
Vengono definite delle variabili per le impostazioni predefinite.
Si determina quale script utilizzare per l'avvio dei programmi client e quale per l'avvio del server.
Nel ciclo while
, vengono scanditi gli eventuali argomenti utilizzati per avviare startx
, e se ne vengono trovati, questi prendono il sopravvento su quelli predefiniti.
Alla fine viene avviato xinit
con gli argomenti determinati in base all'elaborazione precedente.
Da quanto visto finora, si puÐ intuire l'importanza dello script ~/.xinitrc
. õ il mezzo attraverso cui avviare piÛ programmi client, ma non solo: esistono programmi che hanno lo scopo di configurare alcune impostazioni del server X e questo Õ l'unico posto comodo per metterli in esecuzione in modo automatico. Un esempio di questi programmi Õ xset
.
Supponendo di avere avviato startx
senza argomenti, si dovrebbe ottenere uno schema simile a quello seguente:
...---startx---xinit-+-.xinitrc---fvwm-+-FvwmPager | `-GoodStuff `-X |
Come si puÐ osservare, rispetto allo stesso esempio visto nella sezione precedente, si ha startx
che avvia xinit
che poi provvede al resto.
Questo script Õ quello predefinito per l'avvio dei primi programmi client di un server X avviato attraverso il programma xinit
.
Per preparare il proprio script personalizzato si puÐ partire da quello predefinito della distribuzione GNU/Linux che dovrebbe trovarsi all'interno di /usr/X11R6/lib/X11/xinit/
(oppure /etc/X11/xinit/
). Basta copiarlo nella propria directory personale e cambiargli nome facendolo diventare ~/.xinitrc
.
La preparazione di questo script Õ molto importante, se non altro perchÈ permette di definire il tipo di gestore di finestre che si vuole utilizzare.
Inizialmente occorre concentrarsi nella parte finale, quella che inizia dopo il commento: # start some nice programs
. Nel caso in cui il proprio sistema sia stato predisposto originalmente per utilizzare il gestore di finestre fvwm
, le ultime righe potrebbero apparire come nell'esempio seguente:
# start some nice programs xsetroot -solid SteelBlue fvwm |
Il programma xsetroot
definisce lo sfondo, in questo caso solo un colore, e quindi termina immediatamente l'esecuzione. Il programma fvwm
Õ il gestore di finestre (window manager) da avviare. Eventualmente, prima di avviare il gestore di finestre si possono indicare altri programmi che si vuole siano giÞ pronti in esecuzione quando si avvia il server. Per esempio, volendo avviare xclock
basterebbe modificare le ultime righe come segue:
# start some nice programs xsetroot -solid SteelBlue xclock & fvwm |
Figura 67.10:
L'avvio di X con il gestore di finestre fvwm
e xclock
aperto automaticamente.
In questo caso, xclock
viene avviato sullo sfondo perchÈ altrimenti, a differenza di xsetroot
, rimarrebbe in funzione fino al ricevimento di un segnale di interruzione, impedendo cosË l'avvio del gestore di finestre fino al termine del suo funzionamento.
La parte precedente dello script ~/.xinitrc
potrebbe apparire come nell'estratto seguente:
#!/bin/sh # $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $ userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi # start some nice programs ... |
All'interno dello script ~/.xinitrc
si incontrano di solito, tra le altre, le righe seguenti.
usermodmap=$HOME/.Xmodmap sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi |
In pratica, se esiste il file /usr/X11R6/lib/X11/xinit/.Xmodmap
, viene eseguito il programma xmodmap
utilizzando il suo contenuto, e quindi, se esiste il file ~/.Xmodmap
, viene eseguito il programma xmodmap
utilizzando il suo contenuto.
xmodmap
si occupa di ridefinire la tastiera per l'utilizzo con X. Di solito non Õ necessario ridefinire la mappa della tastiera, dal momento che questa Õ giÞ stata indicata all'interno del file di configurazione /etc/XF86Config
. Al massimo potrebbe capitare la necessitÞ a livello personale di ridefinire qualcosa per facilitare l'utilizzo di programmi che non riconoscono alcuni tasti o attribuiscono loro un significato diverso da quello che si vorrebbe.
Nella distribuzione GNU/Linux Slackware, il file /usr/X11R6/lib/X11/xinit/.Xmodmap
contiene a titolo di esempio la ridefinizione del tasto utilizzato come [Backspace]. In realtÞ non servirebbe perchÈ X funziona correttamente anche senza questa dichiarazione.
keycode 22 = BackSpace |
XFree86 puÐ gestire piÛ di una stazione grafica virtuale simultaneamente, con una modalitÞ d'uso simile a quella delle console virtuali di GNU/Linux. In pratica, Õ possibile avviare diversi server X a cui si abbina un numero di stazione grafica differente. Dal momento che si tratta sempre della stessa macchina fisica, la configurazione non cambia.
L'avvio di piÛ stazioni grafiche virtuali puÐ creare dei problemi con il mouse se il dispositivo corrispondente non consente la lettura simultanea da parte di piÛ processi. Questo Õ sempre lo stesso problema legato ai bus-mouse e si puÐ risolvere utilizzando il demone |
Come Õ stato descritto nelle sezioni precedenti, il sistema grafico viene avviato generalmente attraverso lo script startx
, o eventualmente richiamando direttamente il programma xinit
. Quando non si specificano opzioni particolari, si intende voler avviare il server X utilizzando la stazione grafica :0
. Questo si traduce in pratica nell'utilizzo della posizione corrispondente alla prima console virtuale libera di GNU/Linux, che di solito Õ la settima.
Se si vogliono avviare altri server X, occorre specificare un diverso numero di stazione grafica, cosa che serve solo a distinguerle. CosË, ogni nuovo server avviato utilizzerÞ una posizione corrispondente alla prima console virtuale rimasta libera. In pratica, [Ctrl+Alt+F7] dovrebbe permettere di raggiungere il primo di questi display, [Ctrl+Alt+F8] il successivo, e cosË di seguito.
Semplificando quanto mostrato nelle sezioni precedenti, a proposito di xinit
e di startx
, si puÐ fare riferimento alla sintassi seguente per avviare un server X.
xinit |
startx |
Dopo i due trattini di separazione della parte client da quella server, Õ possibile indicare il numero della stazione grafica, e subito dopo si possono indicare altre opzioni.
Di solito, si avvia startx
(e meno frequentemente si avvia direttamente xinit
) senza indicare alcuna stazione grafica, facendo riferimento implicitamente al numero :0
. Dopo averne avviato uno con questo numero, non ne possono essere avviati altri con lo stesso, quindi, se si vogliono gestire piÛ server contemporaneamente, occorre definire la stazione grafica.
$
startx
-
-
:1
L'esempio mostrato avvia una copia del server X utilizzando la stazione grafica :1
.
Ci possono essere dei motivi per avviare diversi server X simultaneamente; per esempio per avere due o piÛ sessioni funzionanti in qualitÞ di utenti differenti, oppure per poter confrontare il funzionamento in presenza di diverse opzioni del server, come nel caso seguente, dove si specifica una profonditÞ di colori di 16 bit.
$
startx
-
-
:2 -
bpp 16
õ importante tenere a mente che le opzioni del server, che nell'esempio sono costituite solo da
, vanno poste dopo l'indicazione della stazione grafica.
-
bpp 16
Per l'utilizzo normale che si puÐ fare di X non Õ necessario doversi rendere conto che ogni programma client deve specificare lo schermo su cui vuole apparire. Infatti, viene definita automaticamente la variabile di ambiente DISPLAY
contenente le coordinate dello schermo predefinito. Modificando eventualmente il contenuto di questa variabile, si cambia l'indicazione dello schermo predefinito per i programmi che verranno avviati ricevendo quel valore.
Generalmente Õ possibile informare un programma dello schermo su cui questo deve apparire attraverso un argomento standard,
, descritto nel capitolo
70.
-
display
Quando si esegue una sessione Telnet, o qualunque altra cosa che permetta di accedere a un sistema remoto, si avvia una procedura di accesso su un altro elaboratore, utilizzando il proprio come terminale o console remota. Quando si utilizza un server X Õ possibile condividere lo schermo del proprio monitor. Per farlo occorre autorizzare l'utilizzo del proprio schermo all'elaboratore remoto.
L'autorizzazione all'utilizzo del proprio schermo grafico da parte di programmi in esecuzione su altri elaboratori connessi in rete puÐ avvenire semplicemente in base a un elenco di indirizzi autorizzati, oppure attraverso altre forme di riconoscimento. Qui viene spiegato solo il modo piÛ semplice e meno sicuro; per avere una visione completa delle possibilitÞ si deve consultare Xsecurity(1).
xhost [[+|
|
xhost [+|
|
xhost
permette di aggiungere o togliere nomi dalla lista di elaboratori e utenti a cui Õ concesso di utilizzare lo schermo grafico, senza utilizzare forme di autenticazione. Se non vengono utilizzati argomenti, xhost
emette un messaggio informando sullo stato attuale del controllo degli accessi.
I nomi indicati nella sintassi di xhost
hanno una struttura particolare:
<famiglia>:<indirizzo> |
in pratica, per le connessioni su reti IPv4 si utilizza la famiglia inet
.
Le funzionalitÞ di X non sono sempre presenti su tutte le piattaforme. In questo caso particolare, potrebbe darsi che non sia possibile regolare gli accessi ai singoli utenti.
Se si vuole concedere sistematicamente l'accesso a qualche nodo, conviene inserire i comandi necessari all'interno del file ~/.xinitrc
in modo che siano eseguiti ogni volta all'avvio del server X.
+ |
L'accesso Õ consentito a tutti.
|
L'accesso Õ consentito solo agli elaboratori e agli utenti inclusi nell'elenco di quelli autorizzati.
[+]<nome> |
Il nome indicato -- puÐ trattarsi di un elaboratore o di un utente di un elaboratore -- Õ autorizzato a utilizzare lo schermo. Il segno +
iniziale Õ facoltativo.
|
Il nome indicato -- puÐ trattarsi di un elaboratore o di un utente di un elaboratore -- non Õ autorizzato a utilizzare lo schermo. Le connessioni in corso non vengono interrotte, ma le nuove connessioni vengono impedite.
$
xhost +
Autorizza chiunque ad accedere.
$
xhost
-
Limita la possibilitÞ di accesso ai soli nomi inseriti nell'elenco di elaboratori e utenti autorizzati.
$
xhost +inet:roggen.brot.dg
Consente all'elaboratore roggen.brot.dg
di accedere al server grafico.
$
xhost
-
inet:roggen.brot.dg
Elimina l'elaboratore roggen.brot.dg
dalla lista di quelli a cui Õ consentito accedere.
xon <host-remoto> [<opzioni>] [<comando>] |
xon
esegue un comando in un elaboratore remoto utilizzando rsh
, facendo in modo che venga utilizzato il server X locale. Si tratta in pratica di un modo abbreviato per eseguire un'applicazione remota senza la necessitÞ di utilizzare la solita opzione
.
*4*
-
display
Se attraverso gli attributi non viene indicato alcun comando da eseguire, xon
tenta di avviare xterm
, in pratica una sessione -
lsxterm
di login.
|
|
Prima di eseguire il comando indicato, utilizza xhost
nel tentativo di autorizzare l'elaboratore remoto a utilizzare il proprio server X. In effetti, lo scopo di xon
Õ quello di facilitare l'esecuzione di programmi remoti ma con un I/O locale, cioÕ attraverso il server X con il quale si interagisce.
|
Quando xon
viene avviato attraverso una finestra di terminale, utilizzando questa opzione si riceve lo standard output e lo standard error. In tal modo si possono conoscere eventuali segnalazioni di errore e qualunque altro output normale.
$
xon roggen.brot.dg
-
access /usr/X11R6/bin/xcalc
Avvia il programma xcalc
nell'elaboratore roggen.brot.dg
e utilizza il server X locale. Prima di farlo, avvia xhost
per consentire all'elaboratore remoto di accedere al proprio server X.
In base a quanto indicato nel file di configurazione /etc/XF86Config
nella sezione Files
, i tipi di carattere utilizzati da X, sono collocati nelle directory successive a /usr/X11R6/lib/X11/fonts/
. All'interno di queste directory si trovano una serie di file contenenti le varie fonti tipografiche e i loro nomi sono contenuti negli elenchi fonts.dir
.
Il nome di una fonte tipografica Õ strutturato in un modo altamente descrittivo. Segue un esempio che viene scomposto. *5*
-b&h-lucidatypewriter-medium-r-normal-sans-8-80-75-75-m-50-iso8859-1 |
b&h
Õ la fonderia, ovvero il produttore;
lucidatypewriter
definisce la famiglia;
medium
Õ lo spessore;
r
Õ il tipo -- r
sta per roman (tondo), i
indicherebbe italic (corsivo) e o
oblique (obliquo);
normal
Õ l'ampiezza orizzontale;
sans
Õ una particolaritÞ dello stile, in questo caso indica l'assenza di grazie o serif, cioÕ dei terminali che facilitano la lettura;
8
indica la dimensione in pixel;
80
indica la dimensione in decimi di punto tipografici (precisamente si tratta di 722,7 per pollice);
75
Õ la risoluzione orizzontale per la quale Õ stato progettato il tipo di carattere;
75
Õ la risoluzione verticale per la quale Õ stato progettato il tipo di carattere;
m
Õ la larghezza, in questo caso monospaced, ovvero a larghezza fissa, mentre l'alternativa sarebbe p
, cioÕ proportional;
50
Õ lo spessore medio espresso in decimi di punto (in questo caso si tratta di 5 punti normali);
iso8859
Õ l'insieme di caratteri, in questo caso, il codice -
1iso8859
corrisponde al noto ISO Latin-1.
-
1
L'utilizzo del sistema grafico senza mouse, o senza un dispositivo equivalente, puÐ essere importante in condizioni di emergenza, o comunque quando il tipo di mouse che si ha a disposizione potrebbe risultare piÛ scomodo che altro.
I server grafici di XFree86 offrono queste funzionalitÞ attraverso il tastierino numerico, dopo aver attivato le estensioni della tastiera. PerchÈ ciÐ sia possibile Õ necessario che nel file di configurazione sia commentata l'istruzione
# XkbDisable |
come si vede in questo esempio, oppure che sia assente del tutto. Per abilitare l'uso del tastierino numerico in modo che possa sostituirsi al mouse occorre utilizzare la combinazione [Ctrl+Shift+BlocNum] (control + maiuscole + numeri). Se la combinazione riesce si ottiene una segnalazione sonora (se si ripete la combinazione si disabilita l'uso del tastierino).
Da quel momento, si possono utilizzare i tasti [num(4)], [num(8)], [num(6)] e [num(2)], per spostare il puntatore rispettivamente verso sinistra, in alto, a destra e in basso. Inoltre, si possono usare anche i tasti [num(7)], [num(9)], [num(3)] e [num(1)], per ottenere degli spostamenti obliqui. Questi spostamenti sono piuttosto lenti in condizioni normali; per accelerarli, mentre si tiene premuto il tasto che si riferisce alla direzione scelta, si puÐ premere e rilasciare immediatamente un altro tasto, scegliendolo in modo tale che in quel momento non abbia un significato particolare; probabilmente la cosa migliore Õ usare per questo il tasto delle maiuscole: [Shift].
Per emulare i tasti del mouse si utilizzano gli altri tasti del tastierino numerico: [num(5)] corrisponde a un clic; [num(+)] corrisponde a un doppio clic; [num(0)] rappresenta la pressione di un tasto senza rilasciarlo; [num(.)] rilascia il tasto del mouse. In condizioni normali, ciÐ corrisponde al primo tasto del mouse, ma si puÐ specificare precisamente il tasto attraverso una combinazione con i tasti [num(/)], [num(*)] e [num(-
)], che rappresentano rispettivamente il primo, il secondo (quello centrale) e il terzo tasto del mouse. Per esempio, [num(*)+num(5)] corrisponde a un clic con il tasto centrale del mouse.
Combinazione | Effetto |
Ctrl+Shift+BlocNum | Abilita o disabilita l'emulazione del mouse da tastiera. |
num(4) | Sposta il puntatore a sinistra. |
num(7) | Sposta il puntatore a sinistra e in alto. |
num(8) | Sposta il puntatore in alto. |
num(9) | Sposta il puntatore a destra e in alto. |
num(6) | Sposta il puntatore a destra. |
num(3) | Sposta il puntatore a destra e in basso. |
num(2) | Sposta il puntatore in basso. |
num(1) | Sposta il puntatore a sinistra e in basso. |
num(5) | Clic con il primo tasto. |
num(/)+num(5) | Clic con il primo tasto. |
num(*)+num(5) | Clic con il secondo tasto. |
num(- )+num(5) | Clic con il terzo tasto. |
num(+) | Doppio clic con il primo tasto. |
num(/)+num(+) | Doppio clic con il primo tasto. |
num(*)+num(+) | Doppio clic con il secondo tasto. |
num(- )+num(+) | Doppio clic con il terzo tasto. |
num(0) | Mantiene premuto il primo tasto. |
num(/)+num(0) | Mantiene premuto il primo tasto. |
num(*)+num(0) | Mantiene premuto il secondo tasto. |
num(- )+num(0) | Mantiene premuto il terzo tasto. |
num(.) | Rilascia il primo tasto. |
num(/)+num(.) | Rilascia il primo tasto. |
num(*)+num(.) | Rilascia il secondo tasto. |
num(- )+num(.) | Rilascia il terzo tasto. |
XFree86, dopo un po' di tempo in cui non si utilizza piÛ il tastierino numerico in sostituzione del mouse, ne disabilita l'emulazione in modo automatico. |
The XFree86 Project, Inc.
---------------------------
Appunti Linux 1999.09.21 --- Copyright © 1997-1999 Daniele Giacomini -- daniele @ pluto.linux.it
1.) In realtÞ, per mantenere la coerenza con la struttura FHS, il collegamento simbolico contenuto in /usr/X11R6/bin/
Õ fisso e punta a un altro collegamento contenuto in /etc/X11/
. Quest'ultimo Õ quello che deve essere modificato effettivamente, in modo che faccia riferimento al server giusto.
2.) Quando si parla di cose legate all'informatica, Õ facile sbagliarsi. La frequenza si misura in Hz, che rappresenta il numero di cicli al secondo. I moltiplicatori di questa unitÞ di misura sono quelli standard della fisica, quindi k
sta per 1000, e non 1024.
3.) Se si vuole provare a vedere cos'Õ un server X senza client basta avviare X
. Come giÞ spiegato in precedenza, Õ sempre possibile uscire con la combinazione [Ctrl+Alt+Backspace].
4.) Prima di utilizzare xon
Õ indispensabile sapere gestire rsh
.
5.) Le fonti tipografiche di X servono solo per la rappresentazione di testo sullo schermo. In pratica, non sono utili per la stampa.