全部博文(40)
2011年(40)
分类: 嵌入式
2011-02-15 13:49:43
下载DirectFB与样例的源码包:
DirectFB-1.3.0
DirectFB-examples-1.2.0
一、安装DirectFB-1.3.0
1.下载到/huang目录,解压到本目录
$sudo tar zxvf DirectFB-1.3.0.tar.gz
2.安装
$cd DirectFB-1.3.0
$./configure
注:如果在./configure这步出现下面的提示:
PNG support is missing - many applications won't work correctly!
JPEG support is missing - many applications won't work correctly!
FreeType2 support is missing - many applications won't work correctly!
参考解决方法:
查找关于png方面的包: $apt-cache search libpng
安装查找的相关包: $apt-get install libpng12-dev
$apt-cache search libjpeg
$apt-get install libjpeg62-dev
$apt-cache search libfreetype
$apt-get install libfreetype6-dev
$sudo make
$sudo make install
二、安装DirectFB-examples-1.2.0
1.下载到/huang目录,解压到本目录
$sudo tar zxvf DirectFB-examples-1.2.0.tar.gz
2.安装
a).找到directfb.pc的路径,让其能找到对应的directfb。
$updatedb -----更新数据库
$locate directfb.pc
例如得到信息:
/huang/DirectFB-1.3.0/directfb.pc
/huang/DirectFB-1.3.0/directfb.pc.in
/usr/local/lib/pkgconfig/directfb.pc
b)接着设置环境,将上一步得到的pkgconfig库目录加入环境之中:
$export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
(这样只能在当前终端可以运行,关机后还得自已运行些命令,才能运行dfb程序,如 要永久性加入可这样:
如你用的是root用户,可以$vi /root/.profile中加入:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig )
c)$cd DirectFB-examples-1.2.0
d)$./configure
e)$.sudo make
f)$sudo make install
g)指定directfb的库目录:
$sudo vi /etc/ld.so.conf在最后一行加入:/usr/local/lib,保存退出。
$ldconfig
h)到目录/usr/local/bin或/huang/DirectFB-examples-1.2.0/src下测试样例
$cd /huang/DirectFB-examples-1.2.0/src
$sudo df_andi
这时,如果通过的话会得到不美观的全屏显示画面(因为图形system默认用fbdev引擎), 若要得到美观的自定义的画面在下一步给出。
注意:如果没有通过且出现错误提示:
(*) DirectFB/Core: Single Application Core.
(!) Direct/Util: opening '/dev/fb0' failed
--> No such device
(!) DirectFB/FBDev: Error opening framebuffer device!
(!) DirectFB/FBDev: Use 'fbdev' option or set FRAMEBUFFER environment variable.
(!) DirectFB/Core: Could not initialize 'system_core' core!
--> Initialization error!
df_andi.c <462>:
(#) DirectFBError [DirectFBCreate( &dfb )]: Initialization error!
上面过程中可能出现framebuffer没有启动的问题,需要在ubuntu中配置以让其启动f ramebuffer支持。
参考以下方法:先重启计算机,不行的话进行下面操作。
首先,编辑你的 /etc/initramfs-tools/modules 文件
加入如下三行内容
fbcon
vesafb
vga16fb
最重要的一步,要把文件/etc/modprobe.d/blacklist-framebuffer里面的vesafb和vga16fb 这两行给注释掉。
这样就可以在内核后面加入vga=xxx这样的启动参数了。
最好用$hwinfo --framebuffer先看一下显卡支持的vga数值
$sudo hwinfo --framebuffer
参考:在内核后面加入了vga=0x0317,是1024x768的16位色。
最后刷新一下代码:
$sudo update-initramfs -u
重启
安装完成。
三、运行样例
1.创建配置文件
$sudo vi /usr/local/etc/directfbrc
写进参考参数:
system = x11
设定使用的图形系统为x11。默认使用Linux frame buffer (fbdev)。
wm = default
设定窗口管理层,默认default(0)。
mode = 640x480
设定默认的屏幕显示。如果不设定,DirectFB将使用/etc/fb.modes 的 第一个设定 值。一些frame buffer设备(如 vesafb)不支持模式切换,而只能使用启动时 设 定的值。
scaled = 640x480
设定主窗口。
depth = 32
使用二进制位数设置每像素默认的像素深度。如果没有指定,DirectFB将 使用 /etc/fb.modes 里面的第一个指定的深度值。DirectFB支持8, 15, 16, 24和32位的颜 色深度(color depths),这些值依赖于你使用的frame buffer设备是否支持。一些 frame buffer设备(如: vesafb)根本就不支持模式切换,只能使用在启动时设定 的像素深度值。
pixelformat = RGB32
设置默认的像素格式。和上面描述的深度参数类似但允许更精细的控制。Pixelformat的值可以为LUT8, RGB332, RGB16, RGB24和RGB32。一些设备可能还支持更奇怪的A8, ALUT44, ARGB, ARGB1555, I420, UYVY, YUY2和YV12像素格式。
mouse-protocol = IMPS/2
为一个串口鼠标指定使用的协议。以下的协议被支持:
MS 使用微软鼠标协议的两个按钮的鼠标;
MS3使用扩展的微软鼠标协议的三按钮鼠标;
MouseMan使用一种Logitech开发的另一种扩展的微软鼠标协议的三按钮的鼠标;
MouseSystems 广泛使用的三按钮鼠标。
串口鼠标所使用的协议的详细信息可参考相关资料。
bg-color = 00FFFF
控制背景的颜色。颜色的值为十六进制值。默认的alpha值为完全不透明并可能被 忽略。例如,设定背景色为红紫色(magenta),可以使用bg-color=FF00FF。
具体参数可以参考
或http://blog.chinaunix.net/u3/104335/showart_2061486.html
或者在终端上查看
$man directfbrc
2.运行
$sudo df_andi
看到:
如果这时还是得到不美观的全屏显示画面的话,检查x11是否已经安装。
3.检查x11包
$./configure --enable-x11=yes 如果看到没支持x11,需要安装。
4.安装x11
$apt-cache search x11
$apt-get install xorg-dev
5.重新运行
ai011h
2011-02-15