從終端操作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)



其它操作後續再研究。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章