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位色。