2008年11月7日 星期五

第六章 gtk 在arm版的測試

步驟一:
將Cross好的library放入arm版內,我的作法是將放在/mnt/sd/arm_lib_4.2.1的資料放在記憶卡上,在開機的時候讓它自動將記憶卡 mount在/mnt/sd/的這個位置。(這就是為什麼我作好的library要放在本機上mnt/sd中/為的就是要搭配arm版上的使用環境,這樣可以避免很多不必要的麻煩跟設定,當然應該還有更好的方法,只是我目前沒有想到!!)

步驟二:
在本機的/mnt/sd/會有一個fonts的目錄請將他cp到記憶卡上,在來將本機/usr/share/fonts/X11整個目錄 cp到記憶卡中fonts/的目錄中。


步驟三:
當然就是將記憶上放到arm版上~開機啦!!並將記憶卡mount起來!!

步驟四:
確認Xserver是否能啟動(其實這裡在作到Xserver時就因該要自覺先試試看否能在arm版上run成功,在繼續作下去,不然一切都是白搭。

測試方式很簡單:

在arm_4.2.1里面有一個bin的目錄,有一個Xfbdev的執行檔,執行他就好了

成功的話會出現xserver的畫面,並且可以使用mouse。

失敗的話可能就是那裡有作錯了,或是設定上有問題。


因為測試版上的arm的內存有限很難將所有的library用到arm版上,為了方便跟省時,我的作法是在開機的時候作一個自動執行的shell 在開機的時候將arm版根目錄中會有一個lib目錄將他砍了,然後自動mount 記憶卡,在下一個ln -s的指令,將arm版目錄中 /mnt/sd/arm_lib_4.2.1/lib 作個軟連接到你的根目錄 去取代那一個被你砍掉的lib目錄,但是呢!在這之前你必須要將原本lib目錄中的資料,先cp到arm_lib_4.2.1/lib的目錄中,不然會有問題,因為會有一些arm版自身要用的library會找不到導致無法執行任何程式。


步驟五:
在你確定Xserver就可繼續以後的設定!!

在arm版上/mnt/sd/arm_lib_4.2.1/bin

請執行 fc-cache -f -v 這一個是要將字型的cache載入

請執行 fc-list 確定字型是否有成功載入

cache的存放會在/mnt/sd/fonts/var/cache/fontconfig

在做 fc-cache -f -v 的時候會有出現寫不進cache的錯誤 發現因該是fonts目錄權限上有問題可是很奇怪,用chmod -R 775 or 777改了~還是照錯(不知道別人的版子是否一樣),試到最後解決的方法真的很瞎!! 但也很有用就是在arm版中將fonts 改成 fonts2 再cp -R font2 fotns 這樣就可以解決那一個cache寫不進去的問題!!(不要問我為什麼!!我也不知道)



步驟六:

1.確認/arm_lib_4.2.1/lib/xserver/SecurityPolicy 是否有這個一個檔案。

2.確認/arm_lib_4.2.1/etc/gtk-2.0/gdk-pixbuf.loaders 是否有這一個檔案。

這一個檔案必須由 /mnt/arm_lib_4.2.1/bin/gdk-pixbuf-query-loaders > gdk-pixbuf.loaders 來產生,之後再cp過去就好了。

3.確認/arm_lib_4.2.1/etc/pango/pango.modules 是否有這一個檔案。

這一個檔案必須由/mnt/sd/arm_lib_4.2.1/bin/pango-querymodules > pango.modules 來產生,之後在cp過去就好了。

它會將pango+modules的資料載入 /mnt/sd/arm_lib_4.2.1/lib/pango/1.6.0/modules所以必須確定modules裡面要有資料。

步驟七:
當你完成上面的設定後接下來就簡單啦~~

執行/mnt/sd/arm_lib_4.2.1/bin

1. Xfbdeb & "背景執行"

2. gtk-demo 出現錯誤 (gtk-demo:608): Gtk-WARNING **: cannot open display:

3. export DISPLAY=:0.0

4.gtk-deom 這樣就成功啦!!字型也正常顯示!!





Xserver 成功



gtk-demo成功