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 重启
|