MiniGUI移植到ARM板.docx_第1頁(yè)
MiniGUI移植到ARM板.docx_第2頁(yè)
MiniGUI移植到ARM板.docx_第3頁(yè)
MiniGUI移植到ARM板.docx_第4頁(yè)
MiniGUI移植到ARM板.docx_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):/u2/72666/showart_1097564.htmlMiniGUI 1.3.3 移植詳解作者:大漠孤狼 注:紅色部分為本人修改。最近移植了 MiniGUI 1.3.3到一個(gè)開(kāi)發(fā)板上,中間遇到許多問(wèn)題,在論壇上發(fā)問(wèn)題,結(jié)果也沒(méi)多少人回我,就算偶爾有回的,基本上回答也沒(méi)有什么用,網(wǎng)上找不到一個(gè)完整的移植文章,所以就決定把自己這次移植摸出來(lái)的一些方法寫(xiě)出來(lái),給像我一樣的小菜鳥(niǎo)做個(gè)參考吧。本文不教你怎么寫(xiě)驅(qū)動(dòng),只是教怎么樣在最短的時(shí)候在你的PC機(jī)上搭建起開(kāi)發(fā)環(huán)境,同時(shí)在你的板子上跑起MiniGUI 來(lái),這樣你就可以在PC上開(kāi)發(fā)好程序,調(diào)試完畢,然后交叉編譯一下,直接Copy到板子上就可以了。首先,你需要下載的MiniGUI 的包:/download/libminigui-1.3.3.tar.gz /download/minigui-res-1.3.3.tar.gz 這兩個(gè)包的下載需要你在上注冊(cè)過(guò)才可以下載,免費(fèi)注冊(cè)的,自己去下吧/downloads/minigui13/mde-1.3.0.tar.gz圖形界面程序/downloads/minigui13/mg-samples-1.3.0.tar.gz一些小例子好,首先就下載這幾個(gè)包吧,后面還有需要下載的包,后面再說(shuō)1.PC環(huán)境的搭建首先你需要一個(gè) Linux 環(huán)境,我安裝的是 RedHat 9.0 安裝時(shí)記著選 everything,這樣可以避免到時(shí)候編譯少了東西。這里搭建的環(huán)境是讓 MiniGUI 在你的 PC 上可以跑起來(lái),這樣以后你開(kāi)發(fā)程序就可以只在 PC上開(kāi)發(fā),調(diào)試好,最后交叉編譯一下放到板子上就行了。后面會(huì)講怎么為板子編譯MiniGUI ,耐心的看吧:首先建立自己的開(kāi)發(fā)目錄Root# mkdir /optRoot# cd /optRoot# mkdir st2410 /這個(gè)是我的板子,Root# chmod 777 st2410 /給一般用戶操作權(quán)限user# cd /opt/st2410 /進(jìn)到目錄中去,在這個(gè)目錄下工作,用普通用戶來(lái)工作把 libminigui-1.3.3.tar.gz 解開(kāi)user# tar zxf libminigui-1.3.3.tar.gzuser# tar zxf minigui-res-1.3.3.tar.gz編譯 libminigui ,這個(gè)是 minigui 運(yùn)行所必需的庫(kù)文件,必須編譯成功user# cd libminigui-1.3.3user# ./configure /最簡(jiǎn)單的編譯方式,讓它自己去配置 ,這里采用缺省的Thread 模式而不是/Lite模式,因?yàn)檫@種方式在 PC 機(jī)上使用最方便,后面移到板子上再改成 Lite 模式即可注意屏幕上的輸出,特別是下面幾條:checking for FrameBuffer console support. yeschecking for pthread library. yeschecking for TT_FreeType_Version in -lttf. yeschecking for T1_InitLib in -lt1. nochecking for jpeg_std_error in -ljpeg. yeschecking for png_check_sig in -lpng. yes其中 lttf lpng 必須是 yes ,不然后面你的程序肯定會(huì)有問(wèn)題,如果這里不是 yes 的話,肯定是你的 Redhat 9 安裝不對(duì),告訴過(guò)你安裝時(shí)選 everything ,你選了嗎?其中 ttf 庫(kù)是對(duì) TrueType 字體的支持,png 庫(kù)是對(duì) png 圖形的支持,MiniGui 里都需要這兩個(gè),在后面為板子交叉編譯的時(shí)候也需要這兩個(gè),不然你的程序跑不起來(lái),切記切記。好了,現(xiàn)在通過(guò)了,下面是編譯了user# make 接來(lái)來(lái)就是漫長(zhǎng)的等待了,讓它慢慢的編譯吧,呵user# su /切到 Root 用戶權(quán)限下,不然安裝時(shí)沒(méi)法把文件寫(xiě)到你的 /usr/local 目錄下Root# make install 好了,庫(kù)安裝完畢,下面是安裝資源Root# cd /opt/st2410/minigui-res-1.3.3Root# make install OK,基本的安裝完成了,現(xiàn)在檢查一下看看在你的目錄 /usr/local/lib 下是不是有以下文件libmgext-1.3.so.3 - libmgext-1.3.so.3.0.0libmgext-1.3.so.3.0.0libmgext.alibmgext.lalibmgext.so - libmgext-1.3.so.3.0.0libminigui-1.3.so.3 - libminigui-1.3.so.3.0.0libminigui-1.3.so.3.0.0libminigui.alibminigui.lalibminigui.so - libminigui-1.3.so.3.0.0libvcongui-1.3.so.3 - libvcongui-1.3.so.3.0.0libvcongui-1.3.so.3.0.0libvcongui.alibvcongui.lalibvcongui.so - libvcongui-1.3.so.3.0.0里面還有一個(gè)目錄 minigui ,可以進(jìn)到里面去看,分別為 minigui/res/ bmp , cursor,icon ,. 好幾個(gè)目錄,里面有相應(yīng)的文件檢查 /usr/local/include 里面是不是多了一個(gè) minigui 目錄,/usr/local/include/minigui 時(shí)面好多的 .h 文件,如下:common.h control.h endianrw.h fixedmath.h mgext.h mywindows.h vcongui.hconfig.h dti.c filedlg.h gdi.h minigui.h skin.h window.h如果這里檢查沒(méi)有這些東西的話,那你前面的步驟肯定有問(wèn)題,自己檢查一下吧。首先,修改你的 /etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib然后執(zhí)行 Root# ldconfig OK !Root# vi /usr/local/etc/MiniGUI.cfg在里面找到 system# GAL engine#gal_engine=fbcongal_engine=qvfb /這里修改# IAL engine#ial_engine=consoleial_engine=qvfb /這里修改mdev=/dev/mousemtype=IMPS2fbcondefaultmode=1024x768-16bppqvfbdefaultmode=640x480-16bpp /這里修改display=0保存一下,OK了!現(xiàn)在你需要安裝一個(gè) qvfb ,因?yàn)?Redhat 9 里面沒(méi)有,從下面地址下載/downloads/dep-libs/qvfb-1.0.tar.gz老方法:user# tar zxf qvfb-1.0.tar.gzuser# cd qvfb-1.0user# ./configureuser# makeuser# make install在這個(gè)過(guò)程中如果出現(xiàn)error while loading shared libraries: libqt-mt.so.3: cannot open shared object file說(shuō)明你的系統(tǒng)少了 libqt-mt.so.3 這個(gè)庫(kù),還是回去檢查一下,你安裝時(shí)Redhat 時(shí)是否選了everything,或者在實(shí)際操作的過(guò)程中,這個(gè)庫(kù)有可以被誤刪除掉,我就出現(xiàn)過(guò),這時(shí)候你可以 google 一下 ,輸入 libqt-mt.so.3 redhat 9 ,應(yīng)該就可以搜到相應(yīng)的 rpm 包,安裝時(shí)root# rpm i -force 你的包名 就OK了 這里有個(gè)下載地址,可以試試,我是用訊雷下載的,別的工具沒(méi)試過(guò)/mirror//planetccrma/mirror/redhat/linux/planetccrma/9/en/os/i386/qt33-3.3.3-0.1.rh90.ccrma.i386.rpm注意:在你后面的操作過(guò)程中有可能會(huì)導(dǎo)致 libqt-mt.so.3 丟失,這時(shí)候只要重裝一下就OK了解決了這個(gè)問(wèn)題后重復(fù)安裝過(guò)程user# ./configureuser# makeuser# make installOK ,環(huán)境搭建好了,下面是測(cè)試了:還記得前面讓你下載的 mg-samples-1.3.0.tar.gz 這個(gè)包吧,這個(gè)就是一些例子,現(xiàn)在試試吧。user# tar zxf mg-samples-1.3.0.tar.gzuser# ./configureuser# makeuser# cd src看看 src 目錄下是不是已經(jīng)編譯出可執(zhí)行文件來(lái)了現(xiàn)在來(lái)執(zhí)行一下吧,首先把 qvfb 加到你的可執(zhí)行路徑中去user# cd $HOMEuser# vi .bashrc在 .bashrc 最后面加上一句export PATH=$PATH:/sbin:/usr/local/arm/2.95.3/bin:/usr/local/bin:/usr/local 保存退出,這里面有些路徑是為以后用的,比如 /usr/local/arm/2.95.3/bin ,先加上吧。 user# source .bashrc /讓它執(zhí)行一下,當(dāng)然你也可以選擇重啟一下電腦,效果是一樣的,呵執(zhí)行例子程序:user# qvfb & /在圖形界面下執(zhí)行,呵,別告訴我你只在命令行工作啊。 在 qvfb 中選 File Configure 640x480 VGA 16bit ,這樣看起來(lái)舒服user# cd /opt/st2410/ mg-samples-1.3.0/srcuser# ./hellowordOK ,這個(gè)時(shí)候你應(yīng)該可以看到在 qvfb 中的執(zhí)行效果了吧,記?。阂欢ㄒ冗\(yùn)行 qvfb ,并且設(shè)置 qvfb ,然后再運(yùn)行你的程序,而且qvfb 每重啟一次就需要重新設(shè)置一下,真麻煩OK 你的 PC 環(huán)境搭建完畢了,你現(xiàn)在可以在 PC 上開(kāi)發(fā)你的程序,并且編譯,并在 qvfb 中執(zhí)行,等完全驗(yàn)證它是正確的了,把它交叉編譯一下,放到板子上去就可以了,呵呵!MiniGUI 還有一種執(zhí)行方式,就是在 Console 下在 Framebuffer 上執(zhí)行,這種方式太麻煩,在PC 上不推薦,你還是用 qvfb 執(zhí)行吧,方便,呵呵!在FrameBuffer 上執(zhí)行修改 /usr/local/etc/MiniGUI.cfg 文件,如下system# GAL enginegal_engine=fbcon/這里修改# IAL engineial_engine=console/這里修改mdev=/dev/mousemtype=none /這里改成none,因?yàn)榻?jīng)常鼠標(biāo)不正常fbcondefaultmode=1024x768-16bppqvfbdefaultmode=640x480-16bpp display=0重啟動(dòng)你的 RedHat 9 ,在出現(xiàn) Grub 的時(shí)候按 E 鍵,在 kernel =. 這一行的最后加入 vga=0x317 ,然后:Enter ,然后在 kernel= 這一行上按 b 就可以了,這時(shí)候可以在啟動(dòng)時(shí)看到一個(gè)小企鵝的圖標(biāo),OK進(jìn)去后,直接在 例子程序的目錄下執(zhí)行 ./helloword 就可以了 :)2.為你的實(shí)驗(yàn)板進(jìn)行交叉編譯OK,PC機(jī)的開(kāi)發(fā)環(huán)境已經(jīng)建立好了,下面就是要移植到我們的板子上去了,這里不介紹怎么移植 Linux 系統(tǒng),假設(shè)你已經(jīng)有一個(gè)可以在板子上跑的Linux 系統(tǒng)了,并且已經(jīng)有一個(gè)可以用的根文件系統(tǒng)了,并且已經(jīng)有了板子相對(duì)應(yīng)的LCD的驅(qū)動(dòng)程序,這里介紹怎么在你的根文件系統(tǒng)里加上MiniGUI ,使得你的板子有圖形界面的顯示。要交叉編譯,首先就得有交叉編譯器,這里介紹 arm 板的交叉編譯。不要自己去編譯,直接去下載個(gè)就行了。.uk/pub/linux/arm/toolchain/cross-2.95.3.tar.bz2記住這個(gè) ftp ,最好的 arm 工具下載站,下載回來(lái),有35Mb,呵1)安裝交叉編譯工具:Root# mkdir p /usr/local/armRoot# cd /usr/local/armRoot# tar jxf cross-2.95.3.tar.bz2 /把工具直接解到壓縮到這個(gè)目錄下就安裝完成了,簡(jiǎn)單吧:)解壓縮后生成一個(gè) 2.95.3 目錄,里面在就是工具記住,這時(shí)候的gcc為 2.95.3/bin/arm-linux-gcc 而它的 include 為 2.95.3/arm-linux/include ,對(duì)應(yīng)的 lib 為 2.95.3/arm-linux/lib也就是說(shuō),你如果用 arm-linux-gcc 編譯程序的話,它缺省的就找 2.95.3/arm-linux/include2.95.3/arm-linux/lib 兩個(gè)目錄,而不是 /usr/include ,所以如果你要加什么 .h .a .so文件話,記著一定是加到這兩個(gè)目錄下去,不然編譯器會(huì)告訴你找不到這些東西的把可行程序的路徑加入到 PATH 中去,還記得前面說(shuō)過(guò)的改 .bashrc 文件嗎?user# cd $HOMEuser# vi .bashrc在 .bashrc 最后面加上一句export PATH=$PATH:/sbin:/usr/local/arm/2.95.3/bin:/usr/local/bin:/usr/local user# source .bashrcOK ,交叉編譯工具安裝完了,夠簡(jiǎn)單吧!2)MiniGUI庫(kù)文件裝到交叉編譯器中去MiniGUI 的編譯需要一些庫(kù)文件,缺省我們的 gcc 基本上都有這些庫(kù)文件,所以不需要安裝,可是現(xiàn)在要交叉編譯了,交叉編譯器可是不帶這些庫(kù)文件的,所以我們得首先自己編譯這些庫(kù)文件裝到交叉編譯器中去。注意一點(diǎn):庫(kù)不一定要裝最新的,庫(kù)版本太新,MiniGUI 有可能不認(rèn)識(shí),像jpeg 庫(kù)和 ttf 庫(kù)就是這樣,太新了反而用不了,所以要注意版本,以下的庫(kù)都是我驗(yàn)證過(guò)可以和MiniGUI一起工作的,其它版本的庫(kù)沒(méi)試過(guò),不保證能正確通過(guò)。首先安裝 zlib 庫(kù),這個(gè)是后面的庫(kù)的編譯基礎(chǔ)。/zlib-1.2.3.tar.gz400多K,去下載吧,下載到目錄 /opt/st2410 下user# tar zxf zlib-1.2.3.tar.gz由于 zlib 庫(kù)的configure 腳本不支持交叉編譯選項(xiàng),只好自己動(dòng)用了,手動(dòng)臨時(shí)把 gcc 修改成指向我們的交叉編譯器 arm-linux-gccRoot# cd /usr/binRoot# mv gcc gcc_backRoot# ln -s /usr/local/arm/2.95.3/bin/arm-linux-gcc ./gccRoot# mv ld ld_backRoot# ln -s /usr/local/arm/2.95.3/bin/arm-linux-ld ./ldOK ,修改完成后回到 /opt/st2410/zlib-1.2.3 目錄下user# ./configure -prefix=/usr/local/arm/2.95.3/arm-linux/ -shared 注意:這里配置指向 /usr/local/arm/2.95.3/arm-linux/ 目錄,會(huì)自動(dòng)安裝在 /usr/local/arm/2.95.3/arm-linux/ include,lib 目錄下,千萬(wàn)不要裝錯(cuò)目錄了,不然后面會(huì)找不到這個(gè)庫(kù)的user# makeRoot# make install安裝完后檢查一下目錄 /usr/local/arm/2.95.3/arm-linux/ include,lib ,假如 include中沒(méi)有 zlib.h 之類的頭文件,lib 中沒(méi)有 libz.so.1.2.3 ,那就自己手動(dòng)拷到這些目錄下去,記著拷的時(shí)候把所有的 *.h都需要拷過(guò)去,在拷庫(kù)的時(shí)候用 cp a libz.* /./lib 就行,要用上 a 選項(xiàng)記著把剛才改過(guò)的 gcc 再改回去,不然后面會(huì)出錯(cuò)的!如何取消此處的軟鏈接:#cd /usr/bin#unlink ./gcc /取消gcc,相當(dāng)于刪除#mv gcc_back gcc /將gcc改回來(lái)#cd /usr/bin#unlink ./ld /取消ld,相當(dāng)于刪除#mv ld_back ld /將ld改回來(lái)安裝 png 庫(kù),這個(gè)是用來(lái)顯示 png 圖形的,MiniGUI 里很多圖都是 png 的,如果沒(méi)有這個(gè)庫(kù),你的 MiniGUI 將無(wú)法正常工作,切記切記!/sourceforge/libpng/libpng-1.0.10rc1.tar.gz還是那句話,庫(kù)不要用最新的,最新的容易有問(wèn)題,用這個(gè)老一點(diǎn)的就沒(méi)問(wèn)題了,呵呵!user# tar zxf libpng-1.0.10rc1.tar.gzuser# cd libpng-1.0.10rc1Libpng 不提供有效的 configure 腳本,所以只好自己動(dòng)手改 Makefile 文件了user# cp scripts/makefile.linux Makefile /把 Scripts 下的一個(gè) makefile 拷出來(lái)自己動(dòng)手改user# vi Makefile / 自己動(dòng)手改CC=arm-linux-gcc /修改這里# where make install puts libpng.a, libpng.so*, png.h and pngconf.hprefix=/usr/local/arm/2.95.3/arm-linux /修改這里# Where the zlib library and include files are located#ZLIBLIB=/usr/local/lib#ZLIBINC=/usr/local/includeZLIBLIB=/usr/local/arm/2.95.3/arm-linux/lib /修改這里ZLIBINC=/usr/local/arm/2.95.3/arm-linux/include /修改這里好了,保存,然后去編譯吧user# makeuser# make install 如果有錯(cuò)誤,檢查你前面的步驟哪個(gè)沒(méi)做對(duì) : 尤其是 zlib 的安裝還是前面說(shuō)的,檢查 /usr/local/arm/2.95.3/arm-linux/ include,lib 目錄中有成功安裝否,如果沒(méi)有安裝成功,那就自己把編譯出來(lái)的東西拷過(guò)去。記著,*.h 和 .so 的文件都要拷。OK,現(xiàn)在來(lái)安裝 jpeg 庫(kù)/graphics/jpeg/jpegsrc.v6b.tar.gz自己去下載,速度暴慢user# tar zxf jpegsrc.v6b.tar.gzuser# cd jpeg-6buser# ./configure help /可以查看它的配置選項(xiàng)user# ./configure user# make /生成libtool的工具user# make clean 一般情況下用 cdpcdpserver jpeg-6b$ ./configure-prefix=/usr/local/arm/2.95.3/arm-linux/ -host=arm-linux-enable-shared -enable-static-host=arm-linux 來(lái)指定交叉編譯選項(xiàng),可是這里死活它不認(rèn),所以改用別的方法,如下:user# ./configure -prefix=/usr/local/arm/2.95.3/arm-linux/ CC=arm-linux-gcc -enable-shared -enable-staticuser# make安裝前需要在 arm-linux 下建個(gè)目錄,不然安裝會(huì)出錯(cuò)Root# mkdir p /usr/local/arm/2.95.3/arm-linux/man/man1Root# make install / OK 了一樣,自己去檢查一下安裝是否成功 !最后安裝 libttf 庫(kù),這個(gè)是 TrueType 字體的支持庫(kù),用來(lái)顯示文字的。/sourceforge/freetype/freetype-1.3.1.tar.gz注意:MiniGUI 的文檔說(shuō)只支持 1.3.1 版本的 ttf 庫(kù),不要把版本弄錯(cuò)了 這個(gè)庫(kù)裝起來(lái)最麻煩,全部自己手動(dòng)編譯,安裝,下面一步一步來(lái)做吧user# tar zxf freetype-1.3.1.tar.gz /老一套u(yù)ser# cd freetype-1.到目錄里去user# mkdir p /opt/st2410/libttf/extend / 自己另外建立一個(gè)目錄user# cp freetype-1.3.1/lib/* freetype-1.3.1/lib/arch/ansi/* libttf/ /把有用的東西拷出來(lái)進(jìn)入freetype-1.3.1/lib/目錄下:# cp * /home/minigui/libttf/進(jìn)入freetype-1.3.1/lib/arch/ansi/目錄下#cp * /home/minigui/libttf/user#cp freetype-1.3.1/lib/extend/* libttf/extend/ 把 extend 目錄下的文件也拷出來(lái)注意 cp 命令不要用 r 選項(xiàng),因?yàn)闀?huì)把一些沒(méi)用的東西出拷出來(lái)的an拷貝完成了,現(xiàn)在來(lái)自己手動(dòng)編譯了user# cd libttfuser# arm-linux-gcc -c -fPIC -O2 freetype.c /不要奇怪,對(duì),我們只要編譯這一個(gè) .c 文件,因?yàn)樗似渌械?.c 文件了,你可以自己查看它的內(nèi)容 user# arm-linux-gcc -c -fPIC -O2 -I./ extend/*.c 把 extend 下所有的 .c 文件全部編譯user# arm-linux-gcc -shared -o libttf.so *.o 生成最后的動(dòng)態(tài)鏈接庫(kù),OK了我這里我沒(méi)有成功,我用自己的方法直接在freetype-1.3.1/下 用configuer配置,然后修改Makefile把所有關(guān)于test的部分用“#”注釋掉,然后再make CC=arm-linux-gcc 編譯。再進(jìn)入lib目錄arm-linux-gcc -shared -o libttf.so *.o 現(xiàn)在手動(dòng)安裝,得自己建立一下目錄Root mkdir p /usr/local/arm/2.95.3/arm-linux/include/freetype1/freetypeRoot cp *.h extend/*.h /usr/local/arm/2.95.3/arm-linux/include/freetype1/freetypeRoot cp libttf.so /usr/local/arm/2.95.3/arm-linux/lib安裝庫(kù)完成,哈!經(jīng)過(guò)試驗(yàn)發(fā)現(xiàn) MiniGUI 1.3.3 版本在鏈接 ljpeg lpng lttf 時(shí)老是要鏈接 /usr/lib 下的庫(kù),沒(méi)辦法,用老方法Root# cd /usr/libRoot# mv libjpeg.so libjpeg.so_backRoot# ln s /usr/local/arm/2.95.3/arm-linux/lib/libjpeg.so ./libjpeg.so /指向 arm 的庫(kù)Root# mv libpng.so libpng.so_backRoot# ln s /usr/local/arm/2.95.3/arm-linux/lib/libpng.so ./libpng.soRoot# mv libttf.so libttf.so_backRoot# ln s /usr/local/arm/2.95.3/arm-linux/lib/libttf.so ./libttf.so完成以上工作后就可以編譯 libminigui 了user# cd libminigui-1.3.3user# make menuconfig /就用圖形界面來(lái)配置就好了,不要用一堆 enable-xxx 之類的,太麻煩如果在 make menuconfig 出錯(cuò),去檢查一下你的 gcc ,前面我們把它指向 arm-linux-gcc ,問(wèn)一下,你改回來(lái)沒(méi)有?下面是配置libminigui 在 System Wide Options 里如下:Build MiniGUI-Lite /用 Lite 方式編譯,不是Thread 方式,這里適用于 PDA Stand-Alone Use incore (built-in) resource /建議不要選這個(gè),老有問(wèn)題Unit of timer is 10msCursor support User can move window with mouse /建議別選這個(gè),可以移動(dòng)蠻煩人的Mouse button can do double clickBuild with debugging messages Trace messages of MiniGUI /不要選這個(gè),出來(lái)的Trace太多,看不過(guò)來(lái)Include symbol name of messages在 GAL and its engine Options 里:(NEWGAL) GAL and its enginesNEWGAL engine on Linux FrameBuffer console NEWGAL engine on Qt Virtual FrameBuffer /建議不要選這個(gè),不然老讓你用qvfb NEWGAL engine on eCos LCD interfaceDummy NEWGAL engineHave console on Linux FrameBuffer在 IAL engine options 里 EP7211-based board ADS Graphics Client iPAQ H3600 (also H3800) MPC823 PX255B NEC VR4181 Helio Touch Panel MT T800SMDK2410 Touch Screen uClinux Touch Screen Palm/MC68EZ328Dummy IAL engineNative (console) input engine- Native IAL engine subdriver options PS2 mouse IntelligentMouse (IMPS/2) mouse MS mouse MS3 mouseGPM daemon在 Font Option 里Raw bitmap font Var bitmap font /千萬(wàn)不要選這個(gè),不然會(huì)出現(xiàn) unreferenced vfb_Courier8x8() 之類的錯(cuò)誤Incore font sansserifIncore font courierIncore font symbolIncore font vgasQt Prerendered FontTrueType font Adobe Type1 font在 Image Options 里Includes SaveBitmap-related functions PCX file support LBM/PBM file support TGA file supportGIF file supportJPG file supportPNG file support在 Input Medthold Option 里IME (GB2312) support IME (GB2312) Intelligent Pinyin module /千萬(wàn)不要選這個(gè),不然后面你的 mginit 程序一啟動(dòng)就崩潰了(Abort ,有點(diǎn)像 OOP 一樣,顯示所有的寄存器的值,然后Abort),暴不爽在 Development Environment Option 里(Linux) Platform(arm-linux-gcc) Compiler /注意這里(glibc) Libc /注意這里- Installation optionsPath prefix: /usr/local/arm/2.95.3/arm-linux /注意這里,我們把庫(kù)裝到交叉編譯器的目錄下- Additonal Compiler Flags CFLAGS: LDFLAGS: 其它的用缺省的選項(xiàng)就可以了,好了,現(xiàn)在退出,保存你的設(shè)置吧,然后它就開(kāi)始檢測(cè)你的系統(tǒng)了,注意下面的輸出:checking for FrameBuffer console support. yeschecking for TT_FreeType_Version in -lttf. yes /True Type字體checking for jpeg_std_error in -ljpeg. yes / jpeg 支持checking for png_check_sig in -lpng. yes /png 圖形支持,重要!checking for pow in -lm. yes這里的庫(kù)應(yīng)該都是顯示為 yes 了,如果有 no 的話,回去檢查前面你有哪步做得不對(duì),不然的話編譯后的東西可能沒(méi)法正常執(zhí)行,切記切記!如果這里通過(guò)了,那就OK了user# make /又是一個(gè)漫長(zhǎng)的等待,呵呵Root# make install注意:我們這里 make install 其實(shí)是給交叉編譯器安裝 libminigui 的庫(kù),你想,將來(lái)你需要編譯為 minigui 開(kāi)發(fā)的程序,這個(gè)程序總是需要鏈接庫(kù)的吧,這些庫(kù)因此也需要在交叉編譯器中,不然你交叉編譯的時(shí)候編譯不過(guò)去 。 裝好了,到 /usr/local/arm/2.95.3/arm-linux 的 include lib 目錄下去看看,是不是多了相應(yīng)的libminigui.so libmgext.so libvcongui.so 在 include 目錄下多了一個(gè) minigui目錄,里面有相應(yīng)的頭文件最后,安裝 popt 庫(kù),這個(gè)庫(kù)在編譯 mde 程序時(shí)需要使用,不然編譯沒(méi)法通過(guò) 。http:/gd.tuwien.ac.at/utils//dist/rpm-4.1.x/popt-1.7.tar.gz我是從這里下載的user# tar zxf popt-1.7.tar.gzuser# cd popt-1.7user# ./configure -prefix=/usr/local/arm/2.95.3/arm-linux/ -host=arm-linux -enable-shared -enable-staticuser# make Root# make install一切很順利,搞定了。交叉編譯環(huán)境設(shè)置好了!OK ,下面是把 minigui 移植到你的板子上去了:我在 /opt 目錄下建立了一個(gè) rootfs 目錄,即 /opt/rootfs ,用來(lái)建立我的嵌入式系統(tǒng)的根目錄,現(xiàn)在我需要把 minigui 的庫(kù)文件放到里面去,建立目錄Root# mkdir p /opt/rootfs/usr/local/lib,etc把 /usr/local/arm/2.95.3/arm-linux/lib 中相應(yīng)的庫(kù)拷到 /opt/rootfs/usr/local/lib 目錄下去下面是我拷的庫(kù)文件:libjpeg.a libmgext-1.3.so.3 libminigui.a libpng.so.2 libttf.a libz.solibjpeg.la libmgext-1.3.so.3.0.0 libminigui.la libpng.so.0rc1 libttf.so libz.so.1libjpeg.so libmgext.a libminigui.so libpopt.a libvcongui-1.3.so.3 libz.so.1.2.3libjpeg.so.62 libmgext.la libm.so libpopt.la libvcongui-1.3.so.3.0.0 miniguilibjpeg.so.62.0.0 libmgext.so libm.so.6 libpopt.so libvcongui.a sharedlibm-2.2.3.so libminigui-1.3.so.3 libpng.a libpopt.so.0 libvcongui.lalibm.a libminigui-1.3.so.3.0.0 libpng.so libpopt.so.0.0.0 libvcongui.so其中一些 .a 的靜態(tài)庫(kù)是不需要拷過(guò)去的,我圖方便,一起拷了,呵,懶人的做法同時(shí)修改 /opt/rootfs/etc/ld.so.conf ,在里面最后新加入一行 /usr/local/lib然后執(zhí)行 Root ldconfig r /opt/rootfs /把 rootfs 當(dāng)成根目錄,執(zhí)行OK,庫(kù)文件準(zhǔn)備完畢下面把資源文件也拷過(guò)來(lái),還記得嗎,在前面 搭建 PC 環(huán)境中講過(guò)安裝資源文件,它被裝在了 /usr/local/lib 目錄下,一個(gè)叫 minigui 的目錄,我們要做的就是把它拷過(guò)來(lái)Root# cp r a /usr/local/lib/minigui /opt/rootfs/usr/local/ 連目錄一起拷過(guò)來(lái),目錄結(jié)構(gòu)和主機(jī)一樣把配置文件也拷過(guò)來(lái)Root# cp /usr/local/etc/MiniGUI.cfg /opt/rootfs/usr/local/etc/ 記住,保持目錄結(jié)構(gòu)的一致修改 MiniGUI.cfg ,如下system# GAL enginegal_engine=fbcon /這里修改# IAL engineial_engine=dummy / 這里修改,我不知道你會(huì)用什么觸摸屏,所以就用dummy肯定不會(huì)錯(cuò)mdev=/dev/touchscreen/0raw /解摸屏,如果前面是 dummy ,則這里改不改無(wú)所謂mtype=nonefbcondefaultmode=240x320-16bpp / 根據(jù)你的LCD大小自己設(shè)置,設(shè)置錯(cuò)誤minigui 就啟動(dòng)不了ial_engine 一開(kāi)始建議用 dummy ,先讓 minigui 跑起來(lái),以后再把 觸摸屏 加進(jìn)去,保證盡可能減少錯(cuò)誤的發(fā)生保存,退出。 OK ,你的板子上的系統(tǒng)也搭建完畢了,現(xiàn)在來(lái)讓真正的圖形界面跑起來(lái)! 注意:你Build 你的 嵌入式 Linux 內(nèi)核時(shí),在 Console 中一定要先上 FrameBuffer ,從4位色一直到 16 位色的支持,全選上吧,同時(shí)把 VGA TextOut 選項(xiàng)勾掉,不要選它!內(nèi)核啟動(dòng)時(shí)就要激活 FrameBuffer ,不然 minigui 沒(méi)法啟動(dòng)起來(lái),激活的方法就是給它傳內(nèi)核參數(shù) vga=xxx 之類的。3.啟動(dòng)你的 MiniGUI 的圖形界面看看你的 Windows 操作系統(tǒng),左下方是一個(gè) 開(kāi)始 按鈕,然后是 任務(wù)條 ,MiniGUI 也提供了類似的界面,這就是一個(gè)叫mginit 的程序,它啟動(dòng)后就跟widnows的界面很像了,它就在 mde 包里面,還記得最初讓你下載的那個(gè)程序包嗎?現(xiàn)在我們就來(lái)安裝它?。海﹗ser# tar zxf mde-1.3.0.tar.gzuser# cd mde-1.3.0 /我們先對(duì) mginit 程序做一點(diǎn)小修改,呵user# cd mginit ; vi mginit.c 在 297 行處,把下面代碼注釋掉/*AboutMiniGUI ();AboutMDE ();*/保存,退出即可。因?yàn)槲覀儧](méi)有 觸摸屏 現(xiàn)在,沒(méi)法點(diǎn)它的 確認(rèn) 按鈕,所以把這些 About 信息去掉!好了,現(xiàn)在來(lái)編譯吧,在mde-1.3.0 目錄里user# ./configure -prefix=/opt/rootfs/usr/local -host=arm-linuxuser# make如果你發(fā)現(xiàn) mginit 目錄下的程序沒(méi)有被編譯,那就說(shuō)明你的 libminigui 配置不正確,記住,你必須是配置為 Lite 模式,這個(gè)程序才會(huì)被編譯user# make install事實(shí)上證明,make install,根本沒(méi)用,它什么都沒(méi)做,do nothing 所以還是我們自己動(dòng)手來(lái)做吧,呵Root# mkdir p /opt/rootfs/usr/local/lib/shared/miniguiapps /建立了一個(gè)我們自己的目錄,好長(zhǎng),呵Root# cp r a mde-1.3.0/* /opt/rootfs/usr/local/lib/shared/miniguiapps直接全部拷過(guò)去,然后到 /opt/rootfs/usr/local/lib/shared/miniguiapps 的各個(gè)程序目錄下去,比如mginit , bomb , painter 之類的,把不用的 .c .h .o Makefile 之類的全刪除掉,保留 可執(zhí)行文件和相應(yīng)的res 目錄下的資源注意,保持目錄的結(jié)構(gòu),mginit.rc 文件不要?jiǎng)h了,這個(gè)對(duì)mginit 程序很重要OK,最后一步了,修改配置文件Root# vi /opt/rootfs/linuxrc 文件一般你配置嵌入式系統(tǒng)的時(shí)候都會(huì)有這個(gè)文件,用來(lái)執(zhí)行一些系統(tǒng)的初始

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論