Pratica di X

La panoramica sull'architettura di X e i suoi strumenti di sviluppo, peraltro interessante per un programmatore o aspirante tale, ha lo scopo di rendere il lettore più consapevole di quanto accade sotto il cofano del luccicante ambiente grafico. All'atto pratico, sarà sufficiente scegliere l'ambiente grafico tra i due più importanti KDE e GNOME (se avete scelto qualche altro ambiente grafico probabilmente non avete bisogno di leggere questo manuale). Inserite eventualmente:

# aptitude install kde
oppure

# aptitude install gnome
La configurazione standard di Debian prevede all'avvio di eseguire il runlevel due (paragrafo 2.8.2), che fa partire il server X ed attiva automaticamente il login grafico che lancerà KDE o GNOME. Alcuni utenti potrebbero preferire di restare in console e lavorare mediante la shell, senza avviare automaticamente il server X. In questo caso, possiamo poi in qualunque momento avviare il server X con il comando:

$ startx
che in generale prende la seguente sintassi:

$ startx - :<n> vt<g>
ove:


\begin{labeling}{00.00.0000}
\item [<n>]numero di schermo
\item [<g>]numero della console grafica
\end{labeling}
Provate:

$ startx - :1 vt8
Facendo però partire il server X da console, dobbiamo specificare noi quale ambiente grafico lanciare, modificando il file ~/.xinitrc inserendovi la seguente riga:

startkde
per far partire KDE oppure:

gnome-session
per far partire GNOME. Per ottenere tale risultato, potremmo per esempio personalizzare il runlevel tre, commentando nel file /etc/inittab la riga:

id:2:initdefault:
ed impedendo l'avvio del login grafico nel runlevel tre; nel caso per esempio si usi il session manager kdm del KDE, occorrerà inserire:

# update-rc.d -f kdm remove

# update-rc.d kdm start 99 2 4 5 . stop 01 0 1 6 .

Con questa personalizzazione il computer si fermerà durante l'avvio a chiedere il valore di runlevel da utilizzare; inserendo il numero tre avremo il login che ci porterà direttamente in console.

Spesso gli utenti incontrano problemi a far funzionare correttamente la scheda video del computer; ciò dipende dal fatto che i produttori mantengono segrete le specifiche tecniche e nel migliore dei casi rilasciano driver proprietari, che non possono essere inclusi in Debian (e che spesso funzionano anche male). Un certo numero di schede video è supportato dal relativo driver all'interno di XFree86; per togliervi ogni dubbio in proposito andatevi a leggere il file (compresso) :

$ zless /usr/share/doc/xserver-xfree86/Status.gz
ma non aspettatevi miracoli; sono pochi i programmatori che hanno la capacità di scrivere driver video in reverse-engineering. E' sempre possibile tornare sul menu di configurazione della scheda video, inserendo:

# dpkg-reconfigure xserver-xfree86
Figure 4.2: Flightgear: Cessna C-172 in volo a diecimila piedi
Image c172

Attenzione, perché purtroppo debconf non dà alcuna indicazione sul modello di scheda video, richiedendo direttamente di specificare il driver. Le note si fanno ancora più dolenti per la grafica tridimensionale accelerata in hardware, che XFree86 ha introdotto usando DRI (Direct Rendering Infrastructure), indispensabile per far funzionare molti giochi e programmi che fanno un uso intenso della grafica, come modellatori molecolari o simulatori di volo e spaziali (Fig.4.2). Se non sono tante le schede video supportate direttamente da XFree86, ancora meno sono quelle capaci di usare DRI; per sapere se la vostra scheda ha l'accelerazione hardware attiva, inserite in una console grafica, ovvero sotto X:

$ glxinfo
Se nel copioso output leggete la riga:

direct rendering: no
allora non avete l'accelerazione grafica hardware attiva. Solo una maggiore apertura dei produttori delle schede video ed un impegno delle distribuzioni Linux a dedicare allo sviluppo di X la stessa attenzione e lo stesso numero di programmatori che forniscono al kernel potrà eliminare l'aspetto - la mancanza di driver video - che causa problemi all'utente finale.

Mauro Darida 2006-07-25