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 |
Sì |
Browser Web |
links2 -driver fb |
Esc richiama i menù, g per inserire indirizzo |
Mplayer |
Mplayer |
Sì |
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.