Speciale Installazione: primo approccio con X server

Alla scoperta dell'interfaccia grafica del Pinguino

Speciale Installazione: primo approccio con X server
INFORMAZIONI SCHEDA
Articolo a cura di

La Storia siamo noi

Fino a qualche anno fa uno dei primi problemi che si presentava al volonteroso utente che si accingesse ad installare per la prima volta una distribuzione di GNU/Linux, era la scarsa immediatezza. Tale carenza era dovuta principalmente al fatto che un tempo, una volta installato il sistema operativo, ci si ritrovava di fronte alla shell dei comandi, della quale il neo-utente sapeva ovviamente ben poco. Per configurare l'interfaccia grafica erano necessari svariati passaggi non propriamente alla portata di tutti, per eseguire i quali era quasi d'obbligo qualche sessione di documentazione in rete onde comprendere innanzitutto l'uso del potentissimo strumento che era ed è la shell, sia dei passi richiesti per mettere a punto il fantomatico "X server", latore di quell'interfaccia grafica in mancanza della quale difficilmente l'utente medio avrebbe accettato di rinunciare ad un sistema operativo Windows.
Eliminare, o ridurre di molto, questo primo scoglio, era uno dei primi requisiti che Linux doveva soddisfare per poter aspirare a fare il grande balzo: passare dall'essere un sistema "d' élite" all'essere alla portata di più o meno tutti.

Ma questa è un'altra storia

Facendo un salto nel tempo uguale e contrario a quel che ci ha portato alle prime -o giù di lì- incarnazioni del Pinguino, ritorniamo ai primi giorni di vita del 2006: giorni che vedono la situazione a dir poco stravolta rispetto a quella di una decina scarsa di anni fa (corrispondenti più o meno a qualche era geologica, se parliamo d'informatica). Le più comuni distribuzioni di Linux, infatti, nella gran parte dei casi hanno ben pochi problemi, in fase d'installazione, nel configurare automaticamente l'interfaccia grafica, e dunque a men che non la disattiviamo espressamente, al primo avvio del sistema ci troveremo di fronte alla schermata di login grafico. Il che ci porta dritti a fare i primi passi fra le finestre di Linux, nonché verso i primi dubbi che ovviamente possono sorgere quando ci si avvicina a qualcosa di nuovo.
Le cose però non sono poi così difficili, e capiremo presto che oramai le interfacce Linux non hanno nulla da invidiare ad altre ben più rinomate, e anzi il server X dispone di una flessibilità e di capacità assolutamente eccezionali ed uniche.

Al vostro Servizio

Apriamo una breve parentesi di interesse generale -e meno 'pratico'- per dire che, arrivati a questo punto, qualcuno avrà già notato che l'elemento principale delle interfacce Linux è tale "X server". Il nome non tragga però in inganno: anche se di server si sente parlare principalmente per applicazioni online, l'utilizzo dell'interfaccia grafica non è assolutamente vincolato alla rete.
Il server X è un servizio (appunto) che in un certo senso fa da "tramite" fra l'utente e le applicazioni grafiche, che sono dunque client e sfruttano alcune funzioni che il server fornisce. In particolare, il server X si occupa di catturare l'input degli utenti per trasmetterlo alle applicazioni client, per le quali soddisfa le richieste di output.
Se questo può sembrare complicato, o inutilmente elaborato, così non è in realtà. Un'organizzazione simile consente infatti molte sottigliezze altrimenti impossibili (o più difficili da realizzare): tornando ad un discorso di poco sopra infatti, anche se generalmente le applicazioni client vengono eseguite sulla stessa macchina su cui viene eseguito il server, c'è la possibilità concreta di eseguire applicazioni grafiche appoggiandosi ad un server X in esecuzione su un'altro computer. E parimenti, possiamo usare svariate interfacce grafiche (gestori di finestre e desktop) in maniera efficiente e senza dover configurare l'aspetto tecnico di ognuna: il server X si occupa infatti della gestione di scheda video, monitor, e periferiche di input, che funzioneranno con qualsiasi interfaccia (client) si decida di utilizzare.

Il nome della cosa

Un dubbio che a questo punto apparirebbe più che legittimo è quello che ha una forma del tipo: "Qual'è il server X installato sul mio PC Linux?". E' legittimo prima di tutto perché ne abbiamo parlato finora senza fornire dettagli su quello che è, in effetti, il programma che corrisponde a questa definizione; ed in secondo luogo, perché sapere quale server è installato non è secondario se vogliamo configurarlo a puntino.
Innanzitutto, è bene sapere che di server X per Linux ce ne sono due, da ormai più di un anno. X.org, questo il nome del più recente -e attualmente più usato- nasce infatti nell'Aprile del 2004, a seguito di alcune modifiche alla licenza di Xfree, fino ad allora usato praticamente in tutte le distribuzioni. Senza dover entrare nei dettagli di tale modifiche, che comunque non intaccavano né intaccano la natura open source di Xfree, ci limitiamo a dire che rendevano semplicemente più complicata la distribuzione delle stesse. Basta sapere, comunque, che le differenze fra i due server non sono poi così marcate; X.org infatti è quel che si definisce una "fork" di Xfree, nata dalla sua ultima versione prima del cambio di licenze. A livello pratico, non cambia nulla nel nome dell'eseguibile -che comunque difficilmente lancerete manualmente- ma è diverso il file principale di configurazione, che si chiamerà xorg.conf se usiamo X.org, e XF86Config (o, in alcuni casi, XF86Config-4) per Xfree.
La struttura interna è comunque paragonabile, dunque la differenza fra la configurazione dei due server non và al di là dei nomi.
Se dunque la nostra installazione è andata a buon fine, ma per un qualsiasi motivo ci siano dei particolari da configurare con più attenzione, abbiamo più d'una opzione.
La prima e più immediata è quella di usare un tool di configurazione automatica o passo passo per impostare, da shell, le periferiche da usare con X server e la risoluzione dello schermo. Con X.org, il comando xorgsetup effettua il riconoscimento automatico delle periferiche di input e del comparto video, così da generare da zero un file xorg.conf. Un altro strumento importante è xorgconfig che, con una serie di domande, consente di configurare individualmente mouse, tastiera, scheda video e monitor, nonché le risoluzioni da usare.

Chi fa da sé fa per tre

Ma se i vari strumenti di riconoscimento automatico sono ottimi per far funzionare le periferiche più comuni, e di conseguenza la nostra bella interfaccia grafica, senza troppi patemi, è anche vero che per impostazioni più "ad hoc", o per configurare periferiche meno diffuse, la via migliore è un'altra.
La seconda opzione per la configurazione del server X è infatti quella di aprire con un qualsiasi editor di testo il file /etc/X11/xorg.conf (o XF86Config) e modificarlo -magari non prima di averne fatta una copia di riserva- seguendo le proprie esigenze. Questo procedimento ovviamente non è del tutto immediato, anche se è quello che consente maggiore libertà e precisione. Il file xorg.conf è organizzato in sezioni, e consente di configurare fra le altre cose scheda video, monitor e periferiche di input per l'uso con l'interfaccia grafica. Queste sono le cose che con più probabilità vorremo andare a modificare nel caso ci trovassimo ad aver sotto gli occhi tale file, e per queste ci sono alcune convenzioni che vale la pena aver presente. Ogni pezzo di hardware configurato, che sia una periferica di input o una scheda video, è situato all'interno di una sezione. La sintassi per la delimitazione di una sezione è

Section "Nome Sezione"
[...]
EndSection

e all'interno si trovano generalmente altre istruzioni per definire caratteristiche come il tipo di periferica, il driver da usare, e altre opzioni per il suo uso.
Il nome della sezione "Nome Sezione" può essere diverso a seconda del dispositivo, ad esempio InputDevice per le periferiche di input (mouse, tastiere, touchpad e via dicendo), Monitor per lo schermo, Device per le schede video e così via. Da non confondere è la sezione Screen, che non si occupa della configurazione hardware del monitor, ma delle impostazioni dello schermo -appunto- come risoluzione e profondità di colore.
Tenere a mente questa prima, e poco dettagliata, suddivisione è utile soprattutto per riuscire ad identificare senza troppi problemi la sezione che ci interessa a seconda che vogliamo cambiare le impostazioni di un dispositivo piuttosto che di un altro. Va detto inoltre che le sezioni non sono identificate dal "Nome Sezione" ma dalla caratteristica Identifier, solitamente la prima specificata dopo l'apertura della sezione. E dunque, se per esempio utilizziamo più periferiche di input, possiamo avere altrettante sezioni InputDevice, ognuna per ogni periferica che ha bisogno di una diversa configurazione. Questo dovrebbe risultare comunque ovvio sapendo che sia mouse che tastiera utilizzano lo stesso nome per la propria sezione, ma ovviamente potremmo anche avere configurati più di un monitor.
Non entriamo nel dettaglio delle altre opzioni che si possono utilizzare nella configurazione dell'hardware, proprio perché queste dipendono molto dall'hardware stesso, ma vale la pena spendere due parole sulle sezioni ServerLayout, che definiscono quali sezioni (e dunque quale hardware ed impostazioni) utilizzerà il nostro server X.
Qui vengono elencati lo "Screen" e gli "InputDevice" (che solitamente sono almeno due, corrispondenti a mouse e tastiera) utilizzati. E' da notare come il monitor e la scheda video non siano indicati direttamente, ma indirettamente tramite la sezione Screen, già citata in precedenza, che sarà dunque quella da modificare se vogliamo selezionare un altro monitor o scheda video già configurati.

Vado al massimo...?

Effettuare il riconoscimento automatico di monitor e scheda video, o selezionare manualmente i moduli appropriati fra quelli distribuiti con il sistema operativo, spesso è sufficiente per avere un server X perfettamente funzionante, almeno nell'uso comune. La cosa migliore, tuttavia, è installare i driver specifici per la propria scheda video, in modo da attivare l'accelerazione 3D, e perché in generale dovrebbero funzionare meglio, a partire dalla gestione della centratura dello schermo, ma non solo. I due maggiori produttori attuali di schede video, Ati ed Nvidia, forniscono entrambi versioni periodicamente aggiornate dei driver per linux e le proprie schede video, e anche se quelli della prima hanno acquisito un'interfaccia di installazione più intuitiva, i driver Nvidia sono tutt'altro che impossibili da installare con successo senza troppi patemi. L'aspetto che potrebbe risultare più problematico, dovendo installare questi ultimi, è che il procedimento richiede che il server X sia inattivo. Questo può risultare un punto oscuro per chi non ha ancora dimestichezza con Linux e soprattutto con il passaggio da interfaccia grafica a shell. Senza addentrarci nel perché, ci limitiamo a dire che, nel caso abbiate completato un'installazione di linux con avvio automatico da login grafico, basterà eseguire i seguenti passi:

- Passare alla prima shell disponibile (CTRL+SHIFT+F1)

-Effettuare il login come root

-Arrestare il server X passando alla modalità solo testuale (con il comando "init 3")

-Installare i driver

-Riavviare il server X ("init 5") o direttamente il PC


Fino a qualche versione fa, era anche necessario modificare manualmente all'interno del file di configurazione del server X (xorg.conf o XF86Config, come sopra), le ultime versioni invece dovrebbero aggiornarlo automaticamente. Nel caso ciò non succeda, o si verifichino altri problemi, sarà in genere sufficiente seguire alla lettera le istruzioni contenute nel file di documentazione post-installazione di Nvidia, indicato alla fine della procedura.
Come già detto, per Ati la situazione è più semplice, e se non ci dà troppo peso l'esecuzione di una procedura non personalizzata, potremmo cavarcela con pochi click ed un riavvio del computer.
In entrambi i casi, l'installazione dei driver della scheda video può essere utile per i motivi già citati, e per sfruttare tute le caratteristiche della scheda: anche se non avete intenzione di sfruttare l'accelerazione 3D, comunque con i driver specifici sarà possibile usare tutte le uscite video presenti, e ottenere risultati migliori nel caso si vogliano sperimentare particolari effetti grafici del proprio gestore di finestre, come le trasparenze o desktop 3D.
Per verificare che l'accelerazione sia attiva -l'installazione dei driver dovrebbe bastare per renderla tale- è suficiente digitare, da console o shell, il comando "glxinfo", e verificare il valore "direct rendering": molto banalmente, se è yes allora sarà attiva, disattiva altrimenti. Per velocizzare e visualizzare quell'unica riga, è ancor più semplice digitare: "glx info | grep direct".

Linux Per concludere, possiamo sintetizzare questa prima panoramica sul server X con il dire che ci troviamo in mano uno strumento dalle ampie potenzialità, e che proprio per questo merita di essere conosciuto a fondo per essere degnamente sfruttato. Naturalmente, l'approfondimento potrà variare a seconda di quel che vogliamo ottenere dalla nostra GUI, e dagli usi che ci prefiggiamo. Per un normale uso locale, e soprattutto per chi è alle prime armi, la prima cosa è ottenere un sistema che funzioni, e riuscire a comprendere a grandi linee la filosofia dietro le procedure di configurazione. E' anche vero che, sebbene queste siano ormai quasi automatizzate per quanto riguarda il semplice riconoscimento delle periferiche più strettamente necessarie al funzionamento, non è un'idea malvagia saperne comunque qualcosa di più, che è quasi d'obbligo se si vogliano installare dei driver particolari ma che, in ogni caso, aiuta a renderci conto degli strumenti che abbiamo a disposizione, e di come possiamo usarli al meglio.