Chi ha a che fare per le prime volte con GNU/Linux, potrebbe trovare la console poco pratica, per nulla orientata alla grafica, preferendovi di certo l'ambiente a finestre X Window. Capita ogni tanto che molti utenti "Windows oriented", all'oscuro dell'esistenza di GNU/Linux, confondano questo O.S. con MS DOS. In realtà non ci vuole molto a capire che si tratta di un sistema operativo molto potente e la praticità è probabilmente solo una questione di abitudine.
Inoltre, grazie al supporto al framebuffer è possibile utilizzare la console anche per cose spesso considerate possibili solo con programmi per X Window. Fanno parte di queste la visualizzazione di immagini o addirittura di filmati, che non perde nulla in qualità. Il supporto al framebuffer fornisce "un'astrazione" per le schede video, garantendo alle applicazioni un'interfaccia generica ad alto livello ben definita. In poche parole consente alle applicazioni un più facile uso della periferica alla quale è associato anche un character device (/dev/fbX, dove X è un numero, 0 se avete una sola scheda video).
Tra le applicazioni che ne traggono maggiore vantaggio vi è XFree86 stesso che può girare anche sulle schede sulle quali non è supportato direttamente ma che sono compatibili con VESA 2.0 (requisito necessario per il supporto al framebuffer). Alcuni programmi (come mplayer per la visualizzazione di filmati) consentono di utilizzare direttamente il frame buffer, rendendo di fatto più agevole il compito al programma, che non deve ricorrere al server X. È consigliabile però utilizzare il server X per framebuffer solo quando è strettamente necessario in quanto si farebbe a meno dell'accelerazione alla nostra scheda video. È comunque possibile utilizzare il server relativo alla propria scheda video anche se si usa il framebuffer per la console. Si può anche accedere al frame buffer come una memoria: utilizzando il character device corrispondente potremo essere in grado addirittura di salvare ciò che è sullo schermo. Basterà un semplice: cp /dev/fb0 fileframebuffer per salvare uno "screenshot" che potremo visualizzare con "cp fileframebuffer /dev/fb0".
Vediamo quindi come sia possibile abilitare il supporto al framebuffer e configurarlo opportunamente. Molte distribuzioni abilitano direttamente il supporto necessario, per cui è possibile che non abbiate bisogno di eseguire la parte relativa alla compilazione del kernel. Segno di distinzione del supporto in questione è il logo di TUX (il pinguino di Linux) in alto a sinistra. È comunque possibile sostituire il logo, per cui badate al fatto se vi sia o meno un'immagine sullo schermo in fase di boot.
Prima di tutto è necessario assicurarsi che il kernel sia stato compilato con il supporto relativo. Per questo tutorial è stato preso di riferimento LILO come bootloader e il kernel della serie 2.4, ma le differenze per la configurazione pratica con i kernel 2.2.X non sono molte. Bisognerà ricompilare il kernel, un'operazione che probabilmente lascerà perplessi quelli che tra di voi hanno poca esperienza con GNU/Linux. Per coloro che non hanno la minima idea di cosa voglia dire "ricompilare il kernel" rimando a un mio precedente articolo pubblicato qualche tempo fa.
È importante abilitare (come built-in, non come modulo) le voci: - VGA Text Console - Video mode selection support dal menu "Console Drivers".
Sempre dallo stesso menu entrate nel sottomenu "Frame-buffer support" e attivate (sempre come built-in):
- Support for frame buffer devices (EXPERIMENTAL)
- VESA VGA graphics console
- Advanced low level driver options
- Monochrome support
- 2 bpp packed pixels support
- 4 bpp packed pixels support
- 8 bpp packed pixels support
- 16 bpp packed pixels support
- 24 bpp packed pixels support
- 32 bpp packed pixels support
Fatto questo bisognerà impostare il file di configurazione di LILO. Apriamo quindi con un editor a scelta il file /etc/lilo.conf. L'unica cosa da aggiungere è la risoluzione con la quale vorremo far partire il sistema operativo. Per questo, basta aggiungere una riga del tipo "vga=XXXX" nel file in questione. La riga può essere messa anche in un blocco relativo a un'immagine di boot, in modo da essere specifica a quel sistema operativo. Al posto di XXXX può essere messo "ask" in modo che ci venga chiesta ogni volta al boot la risoluzione da noi scelta, oppure uno dei valori espressi in tabella (tratta dal Framebuffer-HOWTO):
|
Come potete vedere le colonne rappresentano le risoluzioni disponibili, mentre le righe i colori (16 per 4 bit, 256 per 8 bit, 32.768 per 15 bit, 65.536 per 16 bit, 16,8 milioni per 24 bit e 32 bit). Poichè è probabile che non tutte le risoluzioni siano supportate dal vostro hardware, è bene prima testare quella che fa al caso nostro (inserendo "vga=ask" in /etc/lilo.conf e lanciando nuovamente lilo). Al boot ci verrà chiesto di premere invio per inserire la modalità scelta. Scriveremo quindi uno dei valori indicati in tabella senza la x. Se ad esempio volessimo utilizzare la risoluzione 1024x768 a 16 bit (con 65.536 colori) dovremo scrivere 0317, mentre scriveremo 0301 per una 640x480 con 256 colori. Una volta scelta la modalità grafica che fa al caso nostro potremo modificare opportunamente il file /etc/lilo.conf inserendo il valore appropriato dopo "vga= ", stavolta anche con la x (ricordatevi sempre di lanciare il comando lilo ad ogni modifica del file di configurazione). Ad esempio se volessimo far partire sempre Linux nella modalità 800x600 a 16,8 milioni di colori dovremo inserire (o modificare se già presente) la riga: vga=0x315.
Se disponete di una scheda video Matrox, nVidia, Permedia, Cirrus Logic, Cyber Pro, SiS, ATI, Trident, 3Dfx, NeoMagic, potete provare anche ad utilizzare i driver specifici (per alcune di queste come la Permedia la scelta è obbligata) forniti nel kernel abilitando la voce corrispondente. La trattazione dei driver specifici esula dagli obiettivi di questo articolo perché per ogni scheda video meriterebbe di essere dedicato dello spazio a parte, vista la vastità dell'argomento e le opzioni disponibili per ogni driver. Rimando quindi alla documentazione relativa o a un futuro articolo. Un'ultima avvertenza: fate attenzione alla ricompilazione del kernel e soprattutto vi consiglio di utilizzare le opzioni del framebuffer sempre relativamente a un'immagine del kernel e di avere un'immagine "di riserva" senza supporto al framebuffer in modo da non rischiare una poco gradevole inusabilità del sistema derivata dall'aver impostato Linux per fare il boot in una modalità non supportata dalla vostra scheda video.
La console grafica può rilevarsi uno strumento molto potente e non sono pochi quelli che pensano che possa essere un valido sostituto al più pesante X Window. I programmi ci sono (vi consiglio fbi per la visualizzazione di immagini e mplayer per quella dei filmati) e altri sono in fase di sviluppo (ad esempio la prossima versione di links, il browser testuale, sarà anche in versione "framebuffer"). Sicuramente non vi farà sbarazzare di X, ma certo vi renderà più gradevole l'uso della console.