Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1556373
  • 博文数量: 290
  • 博客积分: 3468
  • 博客等级: 中校
  • 技术积分: 3461
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-28 22:21
文章分类

全部博文(290)

文章存档

2016年(13)

2015年(3)

2014年(42)

2013年(67)

2012年(90)

2011年(75)

分类: 嵌入式

2013-10-31 11:28:47

原文:改变console 的颜色:

Introduction

Linux Framebuffer is the lowest level (standardized) API for userspace programs to access video capabilities of the system you're running on. It allows you to directly "draw" your graphics in the video memory. Some higher level librairies can be put on top of the Framebuffer for more portability: SDLQt/Embedded, GTK, DirectFB, etc...

Kernel configuration

Note Note: Framebuffer is already configured (for Sharp LQ043 LCD on APF9328 and for Chimei LW700 on APF27/APF51) in standard/default Armadeus kernel image. APF28 has a boot option to choose the LCD.


Instructions to configure Linux kernel were moved to Talk:FrameBuffer and are only given as references or if you want to change the default LCD.

Userland

  • Framebuffer device can be accessed with /dev/fb0.
  • You can activate some tools from the Buildroot's menuconfig:
 $ make menuconfig
 Package Selection for the target
     ...
     Graphic libraries and applications (graphic/text)  ---> 
     ...
         [*] fbgrab
         [*] fbtest
         [*] fbv
     ...
        ---> Graphic libraries and applications (graphic/text)  
            ---> fbset/fbv/fbgrab
Note Note: As explain on LinuxInstall page, to compile fbtestlibnetpbm10-dev must be installed in your host system


  • For example to grab a snapshot of the framebuffer:  //抓图
# fbgrab /tmp/snapshot.png
  • For example to display an image using standard image file formats PNG, GIF...:  //看图
# fbv myimage.png

Tips

  • To stop blinking cursor:  //光标停止闪烁
 # echo 0 > /sys/class/graphics/fbcon/cursor_blink

also possible at boot time (with 3.x recent kernels):

BIOS> setenv extrabootargs vt.global_cursor_default=0
  • To make it blinking again:
 # echo 1 > /sys/class/graphics/fbcon/cursor_blink
  • To grab a screenshot of a running Framebuffer application, use FBGrab
  • To enter in Framebuffer sleep mode:
 # echo 1 > /sys/class/graphics/fb0/blank
  • To leave Framebuffer sleep power mode:
 # echo 0 > /sys/class/graphics/fb0/blank
  • To set "sleep mode"/screensaver entering time (where X is a time in minute; 0 = never):  //设置休眠模式
 # echo -e '\033[9;X]' > /dev/tty1    (from serial console)

or

 # echo -e '\033[9;X]'    (from framebuffer console)

or to set it at each boot, use /etc/inittab:

 tty1::sysinit:echo -e '\033[9;X]'

Other usefull ESC sequences

  • To (definitly) hide cursor:  //隐藏光标
 # echo -e '\033[?17;0;0c' > /dev/tty1    (from serial console)

or

 # echo -e '\033[?17;0;0c'    (from framebuffer console)
  • inverse screen on:
 # echo -e '\033[?5h' > /dev/tty1
  • inverse screen off:
 # echo -e '\033[?5l' > /dev/tty1

Links

阅读(1204) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~