Ubuntu下DirectFB的编译安装,样例程序编译及运行体验


Ubuntu下DirectFB的编译安装,样例程序编译及运行体验

DirectFB和样例的源代码可以到DirectFB.org下载到目录/home/。

整个步骤依次为:

1、切换到目录/home/下,将两个包解压:

    tar -xzf DirectFB-1.3.0.tar.gz
    tar -xzf DirectFB-examples-1.2.0.tar.gz

2、安装DirectFB-1.3.0,依次输入下列命令

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!

        解决的方法可以参考:
            输入命令
                apt-cache search libpng
                apt-cache search libjpeg
                apt-cache search libfreetype
            依次安装找到的文件。
            例如:

                 查找关于png方面的包:apt-cache search libpng
                 安装查找的相关包    :apt-get install cl-png libglpng-dev libimage-size-ruby1.8 libpng3-dev等待。
 
 
make

make install

3、安装DirectFB-examples-1.2.0

a).vi /boot/grub/menu.lst在kernel后面加上vga=0x0317(分辨率1024*768)或者vga=788(分辨率800*600)把frambuffer启动,如:

#****************start*************#
title           Ubuntu, kernel 2.6.17-10-generic
root            (hd0,6)
kernel          /vmlinuz-2.6.17-10-generic root=/dev/sda8 ro quiet splash locale=zh_CN vga=0x0317
initrd          /initrd.img-2.6.17-10-generic
quiet
savedefault
boot
#****************stop**************#

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).make

f).make install

g).将指定directfb的库目录:
    vi /etc/ld.so.conf在最后一行加入:/usr/local/lib,保存退出。
    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.3.0/src/ 下,运行:

./df_andi

安装完成!

另:如果想不让你的directfb应用程序不在全屏显示,不使用fbdev引擎而改成SDL时,可以创建并修改/etc/directfbrc文件,关于此文件,稍后再给出。
上面过程中可能出现framebuffer没有启动的问题,需要在ubuntu中配置以让其启动framebuffer支持,参考以下方法
7.10默认屏蔽了framebuffer模开,所以无法在gurb参数上加vga=xxx来启用frame buffer.
解决解决方法:
首先,编辑你的 /etc/initramfs-tools/modules 文件
加入如下三行内容
fbcon
vesafb
vga16fb

最重要的一步,要把文件/etc/modprobe.d/blacklist-framebuffer里面的vesafb和vga16fb这两行给注释掉。
这样你就可以在内核后面加入vga=xxx这样的启动参数了。

最好用hwinfo --framebuffer先看一下显卡支持的vga数值
sudo hwinfo --framebuffer
引用:
02: None 00.0: 11001 VESA Framebuffer
[Created at bios.447]
Unique ID: rdCR.il6towt04X5
Hardware Class: framebuffer
Model: "Intel(r) 82945GM Chipset Family Graphics Chip Accelerated VGA BIOS Intel(r) 82945GM Chipset Family Graphics Controller"
Vendor: "Intel Corporation"
Device: "Intel(r) 82945GM Chipset Family Graphics Controller"
SubVendor: "Intel(r) 82945GM Chipset Family Graphics Chip Accelerated VGA BIOS"
SubDevice:
Revision: "Hardware Version 0.0"
Memory Size: 7 MB + 704 kB
Memory Range: 0xd0000000-0xd07affff (rw)
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0315: 800x600 (+3200), 24 bits
Mode 0x0301: 640x480 (+640), 8 bits
Mode 0x0303: 800x600 (+832), 8 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Config Status: cfg=new, avail=yes, need=no, active=unknown
在内核后面加入了vga=0x0317,是1024x768的16位色。

最后刷新一下
代码:
sudo update-initramfs -u
重启

相关内容