2008年4月25日 星期五

GTK+ on DirectFB on 資策會 PXA270 實驗板

本文在 2008/04/25 11:14 發表於 Yahoo!奇摩部落格
因Yahoo!奇摩部落格將於2013年12月26日終止服務故遷移至此


再編譯一次GTK + DirectFB
重複的工作是罪惡的啊...XD
這次的目標是資策會的PXA270實驗板
這傢伙:




相當奇怪的設計XD
LCD 後面居然用了一片超大 PCB 固定
那塊PCB上有一大片 GND 的銅箔和少數的轉接線路
就......這樣...
好像沒有其他元件,因為高壓板上似乎完成了全部的電源線路
就我看過的高壓板多只提供高壓部分轉換
LCD 需要的多階電壓多半實作在實驗板上或是在 LCD 固定用電路板上
沒看過有人拿這麼大的 PCB 只當轉接用
好像 PCB 是免錢的樣子XD
不過既然是政府的那就說得通了XD

扯遠了...XD
本次主要紀錄一下編譯 GTK 和 DirectFB 的一些"小動作"
延續前一篇 GTK+ on DirectFB on Creator PXA270 內容
語法都相同,沒有改變,可以直接套用工作
不過以下套件可以刪除:

gettext-0.16
busybox 1.8.2 抽出cmp工具供後面套件使用
修改 Kernel driver
e2fsprog 1.40.2

gettext-0.16 是 host 需要的工具,不是要編上 target 的
所以改成用 apt-get 去抓
busybox 1.8.2 抽出 cmp 工具這也是 host 端需要的
上次還傻傻的跑到 target 上執行...
修改 Kernel driver 則是看板子
資策會的玩具完成度極高,根本不用改
e2fsprog 1.40.2 則是看應用,如果有需要格式化 ramdisk 才需要
不過好像可以透過掛 tmpfs 來解決的樣子?

在編譯時的細節方面:

1.選擇相同的工作路徑
假設 host 端工作目錄是 /myproj/rootfs
那在掛載 NFS 或隨身碟到目標平台上時請選擇一模一樣的目錄掛載
也就是把 /myproj/rootfs 透過 NFS 或隨身碟掛到目標平台的 /myproj/rootfs 上
因為很多 library 是鎖連結路徑的
我想這可能有辦法改,但至少我不會XD
既然不會就用蠢方法吧XD
我把所有 package 的 source 都放到 /myproj/rootfs/src 底下
然後設定 PREFIX 時就設為 /myproj/rootfs
這樣一來就所有和這專案相關的檔案都在同一目錄下了
這樣比較容易管理
有書籍提到 source 只要一份就好, PREFIX 設不同地方
然後 configure 時設不同參數即可一份 source 灌到多個 PREFIX
可是我發現有些 package 一旦 configure 後就會動到設定
往往使得重新 configure 新設定後仍然會受舊設定影響
為了避免麻煩還是每次都解壓縮一份 package 省得麻煩

2.設定好 pkg-config
這些大軟體的 package 在定位關聯套件時多透過 pkg-config 這工具
而 pkg-config 會去 PKG_CONFIG_PATH 這環境變數下找軟體設定
所以這變數一定要設對,不然拿到系統的 PKG_CONFIG_PATH 就不是連到正確的 lib 了
也因為 PKG_CONFIG_PATH 下的東西關係到編譯參數
如果發現找不到 library 就可以從這裡下手
trace 一下 configure 的原始碼就可以發現
這 script 在測試你的 package 是否有安裝時是採用丟程式下去編看看來測
例如我想測試 GTK 有沒有正確安裝,我只要寫一個程式:

#include "gtk/gkt.h"
void gtk_init();
int main(int argc, char *argv[]){
    gtk_init();
}

只是個例子,程式可能不對,僅供參考
接著我編譯看看

$target-gcc `pkg-config --cflags --libs gtk+-2.0` this_file.c

如果我參數正確, lib 存在
我這隻程式應該可以順利的連接上 lib
儘管它一定不能執行,但 ld 會傳回連接成功
如果 PKG_CONFIG_PATH 不正確,它可能會連上系統裡的
也就是 X11 的 lib, 那保證出錯
因為我們並沒有編譯 X11
所以前篇的編譯過程中有幾個是改 .pc 檔就是這樣來的

3.配置好 share memory
DirectFB 似乎會依賴 ramdisk 作為交換資料的空間
因此要把 tmpfs 掛載到 /dev/shm 下才會正確工作

4.配置字型
$PREFIX/etc/fonts 下有字型設定檔
那必須改到正確的字型存放路徑
字型可以從桌上型系統裡複製
其中中文字型肥大,約11MB
請斟酌使用,若沒有需要動態繪製中文可以改用圖片
複製後修改一下字型設定檔
只有兩個檔,打開在前幾行就會找到路徑配置
改一改就會動了

大致上就這樣
接著展示...XD


近看


像素!!


螢幕很大,但解析度並不大,240x480而已
文字都有反鋸齒,感覺還不錯

やらないか?XD

\いさじ/ \いさじ/ \いさじ/ (謎XD)

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。