Chinaunix首页 | 论坛 | 博客

分类: 嵌入式

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里面的vesafbvga16fb 这两行给注释掉。
这样就可以在内核后面加入vga=xxx这样的启动参数了。

最好用$hwinfo --framebuffer先看一下显卡支持的vga数值
$sudo hwinfo --framebuffer
参考:在内核后面加入了vga=0x0317,是1024x76816位色。
最后刷新一下代码:
$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, 2432位的颜 色深度(color depths),这些值依赖于你使用的frame buffer设备是否支持。一些 frame  buffer设备(如: vesafb)根本就不支持模式切换,只能使用在启动时设定 的像素深度值。

pixelformat = RGB32

设置默认的像素格式。和上面描述的深度参数类似但允许更精细的控制。Pixelformat的值可以为LUT8, RGB332, RGB16, RGB24RGB32。一些设备可能还支持更奇怪的A8, ALUT44, ARGB, ARGB1555, I420, UYVY, YUY2YV12像素格式。 

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

 

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