DirectFB在ubuntu10.04 下的安装及样例程序运行成功体现

来源:互联网 发布:自己动手写网络爬虫pdf 编辑:程序博客网 时间:2024/06/01 08:22
 

1、下载源码
(1)下载DirectFB源码
http://www.directfb.org/index.php?path=Main%2FDownloads
 DirectFB-1.3.0.tar.gz
 DirectFB-examples-1.2.0.tar.gz
2.解压
   将压缩文件copy到任意目录下解压(这里copy到~/目录下)
 tar -xzf DirectFB-1.3.0.tar.gz
 tar -xzf DirectFB-examples-1.2.0.tar.gz

3.安装DirectFB-1.3.0,依次输入下列命令

cd DirectFB-1.3.0

./configure

sudo make

sudo make install

注:如果在./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!

解决的方法可以参考:
 sudo apt-cache search libpng

 sudo apt-get install libpng12-dev

 sudo apt-cache search libjpeg

 sudo apt-get install libjpeg62-dev

 sudo apt-cache search freetype

 sudo apt-get install libfreetype6-dev

again "./configure,sudo make, sudo make install"

 

3、安装DirectFB-examples-1.2.0

a).(1)sudo vim /boot/grub/grub.cfg在linux后面加上vga=0x0341(分辨率1024*768)或者vga=788(分辨率800*600)把

frambuffer启动,如:

#****************start*************#
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os

{
 recordfail
 insmod ext2
 set root='(hd0,1)'
 search --no-floppy --fs-uuid --set 24ba3505-cc92-48be-8455-f5753696f941
 linux /boot/vmlinuz-2.6.32-24-generic root=UUID=24ba3505-cc92-48be-8455-f5753696f941 ro  

crashkernel=384M-2G:64M,2G-:128M quiet splash vga=0x0341
 initrd /boot/initrd.img-2.6.32-24-generic
}
#****************stop**************#
a).(2) sudo vim /etc/initramfs-tools/modules 文件加入如下三行内容
 fbcon
 vesafb
 vga16fb


a).(3)要把文件/etc/modprobe.d/blacklist-framebuffer里面的blacklist vesafb和vga16fb这两行给注释掉。这样你

就可以在内核后面加入vga=xxx这样的启动参数了。
  最好用hwinfo --framebuffer先看一下显卡支持的vga数值
   sudo hwinfo --framebuffer

b).updatedb #更新数据库

c).locate directfb.pc

    找到directfb.pc的路径,例如我的是这样的:

   /usr/lib/pkgconfig/directfb.pc
   /usr/lib/pkgconfig/cairo-directfb.pc
   /usr/local/lib/pkgconfig/directfb.pc
   /data/soft/DirectFB-1.1.0/directfb.pc.in
   /data/soft/DirectFB-1.1.0/directfb.pc

d).接着设置环境,将第3步得到的pkgconfig库目录加入环境之中:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
(这样只能在当前终端可以运行,关机后还得自已运行些命令,才能运行dfb程序,如要永久性加入可这样:
如你用的是root用户,可以vi /root/.profile中加入:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig )

e).sudo make

f).sudo make install

(注:若在sudo make时报错:x11什么的找不到文件等那就是说明当前的ubuntu系统还缺少一些支持包应该用apt-get

install 安装缺少的支持包)

g).将指定directfb的库目录:

    sudo vim /etc/ld.so.conf在最后一行加入:/usr/local/lib,保存退出。
    ldconfig

  (注:或者在终端中输入:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
 ldconfig)

h).重启计算机。 如果不重启,我的机子出现下面的错误:
(*) DirectFB/Core: Single Application Core. (2007-10-22 15:48)
(!) 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!

4、测试例子,cd DirectFB-examples-1.2.0/src/ 下,运行:

./df_andi

 

注:./df_andi这里应该出现企鹅的画面,但是似乎报错了,很多错误,包括什么初始化错误等。原因是我们没有配置

system和mode等参数,这就是在一开始说的关于x11的问题。
4.1 创建directfbrc文件
为什么要创建这个文件?是因为这个文件指定了运行directfb程序的参数。上一步报错的原因就是没设置好这些参数。
我们可以在$HOME下面创建一个.directfbrc文件,我这里是/home/kane/.directfbrc,创建好了之后运行程序会自动去

寻找这个这个配置文件。关于这个配置文件里面的参数说明可以参考这篇文章:
http://hi.baidu.com/weiliqun/blog/item/6f4ba4ebe601eee2cf1b3e57.html
我这里配置如下:
system=x11(fbdev始终报错,sdl不报错但是看不到效果)
mode=640x480(这个可以设成任意的,如果是用的x11的话,可以看到相应的不同的大小的窗口)
depth=16
pixelformat=RGB16(之前用RGB32结果x11的窗口一直闪烁)
关于fbdev,x11,sdl等介绍如下:
这部分代码在system目录下。这也是一个adapter层,主要对显示设备的抽象,有的也包括对输入事件的处理。其中包

括: fbdev: 输出到frame buffer device。 osx:   输出到mac os上。 vnc: 输出到Virtual Network Computing(

类似于微软远程桌面的一个协议)。 x11: 输出到X Window上,在0.9.24仍然有问题,建议使用SDL。 sdl:  输出到

Simple DirectMedia Layer。 4.2 效果展示
我运行的是examples里面src中的df_andi这个实例,可以看到很多企鹅在动,

原创粉丝点击