Alla scoperta del Framebuffer


Oggi vedremo come far funzionare un'utilissima funzionalità del kernel Linux denominata Framebuffer.

Ma procediamo per gradi. Innanzitutto dovremo sapere cos'è il Framebuffer. Il Framebuffer è un particolare sistema che consente di avviare piccole interfaccie grafiche direttamente dalla console. Ad esempio potremo navigare in Internet, visualizzare video, foto e pdf direttamente dalla nostra amata shell.

Il Framebuffer è utilissimo per recuperare vecchi pc (Come 386) per i compiti più semplici oppure non essere costretti ad abbandonare la console per effettuare operazioni che necessitano di un minimo di grafica.

Non avendo a disposizione nè Internet, nè una distro completa (il pc con cui scrivo è un pò anzianotto, e ci gira Puppy) la distro di riferimento è una vecchia Ubuntu 8.10 usata dalla redazione di LInux Magazine a Maggio del 2009 ma comunque è stato tutto testato anche con la mia ex-distro Sabayon 3.5 e Ubuntu 10.04 del mio computer principale.

La prima cosa da fare, è quella di fare in modo che all'avvio il sistema carichi i moduli necessari al funzionamento del framebuffer. Per fare ciò, apriamo con un editor di testi con i privilegi di root (se usiamo vi, sudo vi, se nano sudo nano, se geany, sudo geany e cosi via) e carichiamo il file /etc/modprobe.d/blacklist-framebuffer, a questo punto, individuiamo la riga blacklist vesafb e commentiamola aggiungendo # al suo inizio. Salviamo il file. Ora apriamo, sempre da root, il file /etc/initramfs-tools/modules e, alla fine del file, aggiungiamo le righe fbcon e vesafb (possiamo anche usare il comando sudo echo fbcon >> /etc/initramfs-tools/modules && sudo echo vesafb >> /etc/initramfs-tools/modules). Dopodichè, lanciamo sudo update-initramfs -u -k -all per aggiornare initramfs.

A questo punto, modifichiamo il file menu.lst di GRUB 1 (/boot/grub/menu.lst) ed impostiamo la risoluzione video inserendo vga=valore_vga nella riga che comincia per #kopt=root... dove valore_vga è il numero relativo alla propria risoluzione. Inserendo ask il valore viene chiesto ad ogni avvio. Salviamo e lanciamo sudo update-grub per aggiornare il bootloader. Per LiLo o GRUB 2 occore googlare un pò.

RISOLUZIONE
COLORI
VALORE_VGA
800x600
256
771
800x600
32K
787
800x600
64K
788
800x600
16M
789
1024x768
256
773
1024x768
32K
790
1024x768
64K
791
1024x768
16M
792
1280x1024
256
775
1280x1024
32K
793
1280x1024
64K
794
1280x1024
16M
795

Dopodichè, aggiungiamo il gruppo video al nostro utente, per poter avere i privilegi per usare il framebuffer. Per farlo lanciamo sudo adduser utente video dove utente è il proprio nome utente.

Ora lanciamo sudo dpkg-reconfigure console-setup e seguiamo le istruzioni per impostare la console.

Riavviamo il pc e accediamo alla console.

Ora installiamo il demone GPM con il nostro package manager (su Debian sudo apt-get install gpm) per poter usare il mouse. SE muovendo il mouse sullo schermo non compare alun cursore, basta riconfigurare gpm (sudo dpkg-reconfigure gpm)

Vediamo come usare i programmi framebuffer.

NOME
NOME DEL PACCHETTO
INSTALLATO IN UBUNTU?
GENERE
COMANDO
NOTE
Links2
Links2

Browser Web
links2 -driver fb
Esc richiama i menù, g per inserire indirizzo
Mplayer
Mplayer

Video
mplayer -vo fbdev -fs -vf scale=RISOLUZIONE_SCHERMO
Spazio=Pausa, o=OSD,ESC=Esci
Fbi
Fbi
No
Immagini
fbi

Fbgs
Fbi
No
PDF
fbgs
Fa parte di fbi
Fbgrab
Fbgrab
No
Screenshoot
fbgrab
Salva in formato PNG

Concludiamo questo articolo sul framebuffer spiegando come catturare gli screenshoot. Si può o usare il software Fbgrab per salvare in png, oppure salvare il contenuto di /dev/fb0 su un file con il comando cp /dev/fb0 snapshot. Per visualizzare la foto, basta invertire il comando: cp snapshot /dev/fb0.

La nostra pagina su Twitter!