Framebuffer - recursos gráficos sem o X
Dica publicada em Linux / Software
Framebuffer - recursos gráficos sem o X
Quem foi que disse que quando se refere à recursos gráficos no Linux, estamos falando necessariamente do X? Nesta dica, mostrarei algumas coisas legais a se fazer com um recurso não muito explorado pelos usuários do Linux: O framebuffer. Ele é usado num terminal em modo texto (tty1,tty2,tty3,...,ttyN). Não, não se trata de ASCII Art (aa) nem caca (Colour ASCII Art). São imagens mesmo, pixel a pixel, e animações e vídeos frame a frame. Incrível!
Primeiramente, tenha certeza de estar com o kernel compilado com suporte a este recurso, além de o lilo (ou grub) estar configurado para tal situação. Se você usa o bootsplash, certamente está. Não vou entrar no mérito de explicar como fazer isso, mas há ótimos artigos e dicas aqui no VOL e na internet explicando como proceder.
Neste breve momento, mostrarei algumas coisas legais que podemos fazer usando o framebuffer (fb, para os íntimos).
Nota: Todos os comandos que vou citar devem ser executados num terminal em modo texto - estou usando o tty1 (Ctrl+Alt+F1).
1 - Assistir filmes:
Para isso, você deve estar com o programa MPlayer corretamente instalado e funcional. Além de ter sido compilado com suporte a framebuffer, é claro.
$ mplayer video.mpg # tela-cheia
Isto mesmo, não é preciso usar nenhum parâmetro extra na execução do MPlayer, pois o driver de vídeo é automaticamente escolhido. Caso este comando não funcione, tente este abaixo, que executará o vídeo em tamanho normal.
$ mplayer video.mpg -vo fbdev # ou fbdev2
Onde video.mpg é o arquivo do vídeo, e "-vo fbdev" é o parâmetro que define o driver de vídeo a ser usado.
Logicamente que você pode usar outros parâmetros, na execução do MPlayer, mas a escolha do driver é realmente necessária.
Você pode também usar o Xine-Player. Basta ter o pacote xine-ui corretamente instalado. Para assistir em tela cheia, use o comando:
$ fbxine -V fb video.mpg
Onde a opção "-V fb" seleciona o driver de vídeo.
Nota: Todos os parâmetros válidos para o comando xine funcionam também para o fbxine, inclusive para assistir dvds, etc.
Primeiramente, tenha certeza de estar com o kernel compilado com suporte a este recurso, além de o lilo (ou grub) estar configurado para tal situação. Se você usa o bootsplash, certamente está. Não vou entrar no mérito de explicar como fazer isso, mas há ótimos artigos e dicas aqui no VOL e na internet explicando como proceder.
Neste breve momento, mostrarei algumas coisas legais que podemos fazer usando o framebuffer (fb, para os íntimos).
Nota: Todos os comandos que vou citar devem ser executados num terminal em modo texto - estou usando o tty1 (Ctrl+Alt+F1).
1 - Assistir filmes:
Para isso, você deve estar com o programa MPlayer corretamente instalado e funcional. Além de ter sido compilado com suporte a framebuffer, é claro.
$ mplayer video.mpg # tela-cheia
Isto mesmo, não é preciso usar nenhum parâmetro extra na execução do MPlayer, pois o driver de vídeo é automaticamente escolhido. Caso este comando não funcione, tente este abaixo, que executará o vídeo em tamanho normal.
$ mplayer video.mpg -vo fbdev # ou fbdev2
Onde video.mpg é o arquivo do vídeo, e "-vo fbdev" é o parâmetro que define o driver de vídeo a ser usado.
Logicamente que você pode usar outros parâmetros, na execução do MPlayer, mas a escolha do driver é realmente necessária.
Você pode também usar o Xine-Player. Basta ter o pacote xine-ui corretamente instalado. Para assistir em tela cheia, use o comando:
$ fbxine -V fb video.mpg
Onde a opção "-V fb" seleciona o driver de vídeo.
Nota: Todos os parâmetros válidos para o comando xine funcionam também para o fbxine, inclusive para assistir dvds, etc.
2 - Ficar escrevendo coisas inúteis, com aquelas fontes legais que baixamos da internet:
Para isso, você deve estar com o bootsplash corretamente instalado e funcionando. Deve ser executado como root:
# fbtruetype -f aladdin.ttf -s 200 -x 100 -y 500 -t ddaadd -a 100 `uname`
O que o comando acima diz?
Escreva no terminal com framebuffer, usando o arquivo de fonte aladdin.ttf (-f aladdin.ttf), com as letras no tamanho 200 (-s 200), começando nas coordenadas 100 em x (-x 100) e 500 em y (-y 500) com a cor "ddaadd" - em RGB - (-t ddaadd) e opacidade 100% (-a 100), com o texto sendo `uname` (que gera a palavra Linux). Mais informações, use o parâmetro --help.
3 - Brincar com essas animações idiotas - também precisa do boosplash:
Primeiro, crie uma animação no formato .mng - pronuncia-se "ming". O GIMP é ótimo para isso. Não sabe como criar? Nessa dica você encontra um exemplo de criação de animação. A diferença é que você deve salvar a animação com o formato .mng.
No GIMP, acesse: Script-Fu >> Animadores. Abrirá um submenu com várias opções de animação. "Abra e sirva-se" ;)
Veja as animações simples que eu criei:
- Planeta: planeta-2.mng
- TuxWav: logo.mng
$ fbmngplay animação.mng -a 70 -x 200 -y 200
Os parâmetros têm o mesmo significado que no exemplo anterior. Para mais informações, use o parâmetro --help.
Para finalizar uma animação, simplesmente dê ^C (Ctrl+C).
Nota: Veja o processo de finalização da animação. Muito bom!!
4 - Visualizar imagens
Para isso, tenha instalado o programa Fbi:
$ fbi imagem.png *.jpg imagem.gif # Você pode abrir muitas imagens
Simples e eficiente. Use as setas direcionais do teclado para "navegar" nas imagens maiores que a tela, e PgUp para ir para a próxima imagem e PgDown para ir para a anterior. "+" para aumentar o zoom e "-" para diminuir.
5 - Visualizar arquivos PostScript (.ps) e PDF.
Para isso, é necessário estar com o pacote fbi (citado acima) corretamente instalado:
$ fbgs arquivo.ps
Ou
$ fbgs arquivo.pdf
As teclas aqui funcionam da mesma forma que no item 4.
6 - Outra coisa legal a se fazer é navegar na internet, usando o navegador Links:
$ links -g -driver fb
Ou, para abrir uma página local:
$ links -g -driver fb arquivo.htm
Onde a opção -g serve para ativar o navegador em modo gráfico e a opção "-driver fb" serve para escolhermos o driver de vídeo a ser usado.
Se você usa o GPM (general purpose mouse server), que é um programa que permite usar o mouse nos terminais em modo texto, poderá navegar na internet com o ele desta forma, como se estivesse no X.
Notas:
- No Slackware, para ativar o GPM:
1 - dê permissão de execução no arquivo /etc/rc.d/rc.gpm 2 - execute, como root: /etc/rc.d/rc.gpm start - No Links, o ponteiro do mouse é uma cópia quase perfeita do ponteiro do X. Só tem um movimento meio estranho. :)
- Na navegação, use o botão do meio do mouse para rolar a tela.
- É possível usar o links como um visualizador de imagens simples.
Se alguém aí teve sucesso com este programa, parabéns :)
Legenda: "Acredite: Essa é uma "foto" do links num terminal em modo texto. Destaque para o ponteiro do mouse."
7 - Tirar screenshots de janelas do terminal:
Sim, isto é possível!! Afinal, de onde você acha que eu tirei as imagens desta dica? Para isso, é necessário estar com o programa fbshot instalado:
# fbshot -c 1 imagem.png # Deve ser usado como root!
Onde a opção "-c 1" diz que a screenshot deve ser do primeiro terminal (tty1) (/dev/vc/1), e "imagem.png" é a imagem final.
Mas se você quiser tirar uma screenshot com um delay, use o parâmetro "-s segundos", como em:
# fbshot -c 4 imagem.png -s 5 #
Isso significa que a screenshot deve ser tirada 5 segundos após a execução deste comando, no quarto terminal virtual.
Para mais opções, tente:
# fbshot --help
Eu, quando vi todos estes recursos, fiquei impressionado com o framebuffer. Se você realmente quiser abandonar o servidor X (não me pergunte o por quê), sem abrir mão de comodidade, estas dicas lhe serão muito úteis.
Leitura Recomendada:
Artigo sobre o Links gráfico:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2402
Artigo sobre o bootsplash:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=776
Dica sobre o GPM:
http://br-linux.org/artigos/dicas_mouse3.htm
Sobre o framebuffer:
http://en.wikipedia.org/wiki/Linux_framebuffer
Links: Muito obrigado, e até a próxima.
valeu