歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu下DirectFB的編譯安裝,樣例程序編譯及運行體驗

Ubuntu下DirectFB的編譯安裝,樣例程序編譯及運行體驗

日期:2017/2/28 16:45:41   编辑:Linux教程

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

Copyright © Linux教程網 All Rights Reserved