从终端操作framebuffer

参考http://www.armadeus.com/wiki/index.php?title=FrameBuffer, 总结一下


LCD进入睡眠

 echo "0" > /sys/class/graphics/fb0/blank 

LCD显示退出睡眠模式方法
1、 echo -e "\033[9;0]" > /dev/tty0
2、echo 1 > /sys/class/graphics/fb0/blank

如果想屏幕永不休眠,在UBOOT启动参数bootargs中增加  consoleblank=0


在/sys/class/graphics/fbx/ 下的属性文件可以显示当前显示的一些属性。

比如root@sabresd_6dq:/sys/class/graphics/fb0 # ls
bits_per_pixel
blank
console
cursor
dev
device
fsl_disp_dev_property
fsl_disp_property
mode
modes
name
pan
power
rotate
state
stride
subsystem
uevent
virtual_size

root@sabresd_6dq:/sys/class/graphics/fb0 # cat fsl_disp_dev_property
lcd

表示当前显示设备为 LCD

root@sabresd_6dq:/sys/class/graphics/fb0 # cat mode
U:1024x768p-59

表示当前显示分辨率

 # cat fsl_disp_property
2-layer-fb-bg

2-layer-fb-bg,表示fb0使用MEM_BG_SYNC通道,在IPU 的Display Process模块和MEM_FG_SYNC通道来的数据合并,再送入DC。


# ioctl -l 16 -r /dev/graphics/fb0 0x4600    //0x4600 在linux/fb.h头文件定义的 FBIOGET_VSCREENINFO

它使用的结构体为:

struct fb_var_screeninfo{

   __u32  xres;

   __u32 yres;

   __u32  xres_virtual;

   __u32 yres_virtual;

};
sending ioctl 0x4600 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
return buf: 00 04 00 00 00 03 00 00 00 04 00 00 00 09 00 00

可见屏幕高为 1024(0x400), 768(0x300)  , 虚拟高为1024,  宽为2304(0x900)



其它操作后续再研究。






你可能感兴趣的:(android系统)