




已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
本文來自ChinaUnix博客,如果查看原文請點(diǎn):/u2/72666/showart_1097564.htmlMiniGUI 1.3.3 移植詳解作者:大漠孤狼 注:紅色部分為本人修改。最近移植了 MiniGUI 1.3.3到一個(gè)開發(fā)板上,中間遇到許多問題,在論壇上發(fā)問題,結(jié)果也沒多少人回我,就算偶爾有回的,基本上回答也沒有什么用,網(wǎng)上找不到一個(gè)完整的移植文章,所以就決定把自己這次移植摸出來的一些方法寫出來,給像我一樣的小菜鳥做個(gè)參考吧。本文不教你怎么寫驅(qū)動,只是教怎么樣在最短的時(shí)候在你的PC機(jī)上搭建起開發(fā)環(huán)境,同時(shí)在你的板子上跑起MiniGUI 來,這樣你就可以在PC上開發(fā)好程序,調(diào)試完畢,然后交叉編譯一下,直接Copy到板子上就可以了。首先,你需要下載的MiniGUI 的包:/download/libminigui-1.3.3.tar.gz /download/minigui-res-1.3.3.tar.gz 這兩個(gè)包的下載需要你在上注冊過才可以下載,免費(fèi)注冊的,自己去下吧/downloads/minigui13/mde-1.3.0.tar.gz圖形界面程序/downloads/minigui13/mg-samples-1.3.0.tar.gz一些小例子好,首先就下載這幾個(gè)包吧,后面還有需要下載的包,后面再說1.PC環(huán)境的搭建首先你需要一個(gè) Linux 環(huán)境,我安裝的是 RedHat 9.0 安裝時(shí)記著選 everything,這樣可以避免到時(shí)候編譯少了東西。這里搭建的環(huán)境是讓 MiniGUI 在你的 PC 上可以跑起來,這樣以后你開發(fā)程序就可以只在 PC上開發(fā),調(diào)試好,最后交叉編譯一下放到板子上就行了。后面會講怎么為板子編譯MiniGUI ,耐心的看吧:首先建立自己的開發(fā)目錄Root# mkdir /optRoot# cd /optRoot# mkdir st2410 /這個(gè)是我的板子,Root# chmod 777 st2410 /給一般用戶操作權(quán)限user# cd /opt/st2410 /進(jìn)到目錄中去,在這個(gè)目錄下工作,用普通用戶來工作把 libminigui-1.3.3.tar.gz 解開user# tar zxf libminigui-1.3.3.tar.gzuser# tar zxf minigui-res-1.3.3.tar.gz編譯 libminigui ,這個(gè)是 minigui 運(yùn)行所必需的庫文件,必須編譯成功user# cd libminigui-1.3.3user# ./configure /最簡單的編譯方式,讓它自己去配置 ,這里采用缺省的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 ,不然后面你的程序肯定會有問題,如果這里不是 yes 的話,肯定是你的 Redhat 9 安裝不對,告訴過你安裝時(shí)選 everything ,你選了嗎?其中 ttf 庫是對 TrueType 字體的支持,png 庫是對 png 圖形的支持,MiniGui 里都需要這兩個(gè),在后面為板子交叉編譯的時(shí)候也需要這兩個(gè),不然你的程序跑不起來,切記切記。好了,現(xiàn)在通過了,下面是編譯了user# make 接來來就是漫長的等待了,讓它慢慢的編譯吧,呵user# su /切到 Root 用戶權(quán)限下,不然安裝時(shí)沒法把文件寫到你的 /usr/local 目錄下Root# make install 好了,庫安裝完畢,下面是安裝資源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如果這里檢查沒有這些東西的話,那你前面的步驟肯定有問題,自己檢查一下吧。首先,修改你的 /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 里面沒有,從下面地址下載/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è)過程中如果出現(xiàn)error while loading shared libraries: libqt-mt.so.3: cannot open shared object file說明你的系統(tǒng)少了 libqt-mt.so.3 這個(gè)庫,還是回去檢查一下,你安裝時(shí)Redhat 時(shí)是否選了everything,或者在實(shí)際操作的過程中,這個(gè)庫有可以被誤刪除掉,我就出現(xiàn)過,這時(shí)候你可以 google 一下 ,輸入 libqt-mt.so.3 redhat 9 ,應(yīng)該就可以搜到相應(yīng)的 rpm 包,安裝時(shí)root# rpm i -force 你的包名 就OK了 這里有個(gè)下載地址,可以試試,我是用訊雷下載的,別的工具沒試過/mirror//planetccrma/mirror/redhat/linux/planetccrma/9/en/os/i386/qt33-3.3.3-0.1.rh90.ccrma.i386.rpm注意:在你后面的操作過程中有可能會導(dǎo)致 libqt-mt.so.3 丟失,這時(shí)候只要重裝一下就OK了解決了這個(gè)問題后重復(fù)安裝過程user# ./configureuser# makeuser# make installOK ,環(huán)境搭建好了,下面是測試了:還記得前面讓你下載的 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í)行文件來了現(xiàn)在來執(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 ,這樣看起來舒服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 上開發(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重啟動你的 RedHat 9 ,在出現(xiàn) Grub 的時(shí)候按 E 鍵,在 kernel =. 這一行的最后加入 vga=0x317 ,然后:Enter ,然后在 kernel= 這一行上按 b 就可以了,這時(shí)候可以在啟動時(shí)看到一個(gè)小企鵝的圖標(biāo),OK進(jìn)去后,直接在 例子程序的目錄下執(zhí)行 ./helloword 就可以了 :)2.為你的實(shí)驗(yàn)板進(jìn)行交叉編譯OK,PC機(jī)的開發(fā)環(huán)境已經(jīng)建立好了,下面就是要移植到我們的板子上去了,這里不介紹怎么移植 Linux 系統(tǒng),假設(shè)你已經(jīng)有一個(gè)可以在板子上跑的Linux 系統(tǒng)了,并且已經(jīng)有一個(gè)可以用的根文件系統(tǒng)了,并且已經(jīng)有了板子相對應(yīng)的LCD的驅(qū)動程序,這里介紹怎么在你的根文件系統(tǒng)里加上MiniGUI ,使得你的板子有圖形界面的顯示。要交叉編譯,首先就得有交叉編譯器,這里介紹 arm 板的交叉編譯。不要自己去編譯,直接去下載個(gè)就行了。.uk/pub/linux/arm/toolchain/cross-2.95.3.tar.bz2記住這個(gè) ftp ,最好的 arm 工具下載站,下載回來,有35Mb,呵1)安裝交叉編譯工具:Root# mkdir p /usr/local/armRoot# cd /usr/local/armRoot# tar jxf cross-2.95.3.tar.bz2 /把工具直接解到壓縮到這個(gè)目錄下就安裝完成了,簡單吧:)解壓縮后生成一個(gè) 2.95.3 目錄,里面在就是工具記住,這時(shí)候的gcc為 2.95.3/bin/arm-linux-gcc 而它的 include 為 2.95.3/arm-linux/include ,對應(yīng)的 lib 為 2.95.3/arm-linux/lib也就是說,你如果用 arm-linux-gcc 編譯程序的話,它缺省的就找 2.95.3/arm-linux/include2.95.3/arm-linux/lib 兩個(gè)目錄,而不是 /usr/include ,所以如果你要加什么 .h .a .so文件話,記著一定是加到這兩個(gè)目錄下去,不然編譯器會告訴你找不到這些東西的把可行程序的路徑加入到 PATH 中去,還記得前面說過的改 .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 ,交叉編譯工具安裝完了,夠簡單吧!2)MiniGUI庫文件裝到交叉編譯器中去MiniGUI 的編譯需要一些庫文件,缺省我們的 gcc 基本上都有這些庫文件,所以不需要安裝,可是現(xiàn)在要交叉編譯了,交叉編譯器可是不帶這些庫文件的,所以我們得首先自己編譯這些庫文件裝到交叉編譯器中去。注意一點(diǎn):庫不一定要裝最新的,庫版本太新,MiniGUI 有可能不認(rèn)識,像jpeg 庫和 ttf 庫就是這樣,太新了反而用不了,所以要注意版本,以下的庫都是我驗(yàn)證過可以和MiniGUI一起工作的,其它版本的庫沒試過,不保證能正確通過。首先安裝 zlib 庫,這個(gè)是后面的庫的編譯基礎(chǔ)。/zlib-1.2.3.tar.gz400多K,去下載吧,下載到目錄 /opt/st2410 下user# tar zxf zlib-1.2.3.tar.gz由于 zlib 庫的configure 腳本不支持交叉編譯選項(xià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/ 目錄,會自動安裝在 /usr/local/arm/2.95.3/arm-linux/ include,lib 目錄下,千萬不要裝錯(cuò)目錄了,不然后面會找不到這個(gè)庫的user# makeRoot# make install安裝完后檢查一下目錄 /usr/local/arm/2.95.3/arm-linux/ include,lib ,假如 include中沒有 zlib.h 之類的頭文件,lib 中沒有 libz.so.1.2.3 ,那就自己手動拷到這些目錄下去,記著拷的時(shí)候把所有的 *.h都需要拷過去,在拷庫的時(shí)候用 cp a libz.* /./lib 就行,要用上 a 選項(xiàng)記著把剛才改過的 gcc 再改回去,不然后面會出錯(cuò)的!如何取消此處的軟鏈接:#cd /usr/bin#unlink ./gcc /取消gcc,相當(dāng)于刪除#mv gcc_back gcc /將gcc改回來#cd /usr/bin#unlink ./ld /取消ld,相當(dāng)于刪除#mv ld_back ld /將ld改回來安裝 png 庫,這個(gè)是用來顯示 png 圖形的,MiniGUI 里很多圖都是 png 的,如果沒有這個(gè)庫,你的 MiniGUI 將無法正常工作,切記切記!/sourceforge/libpng/libpng-1.0.10rc1.tar.gz還是那句話,庫不要用最新的,最新的容易有問題,用這個(gè)老一點(diǎn)的就沒問題了,呵呵!user# tar zxf libpng-1.0.10rc1.tar.gzuser# cd libpng-1.0.10rc1Libpng 不提供有效的 configure 腳本,所以只好自己動手改 Makefile 文件了user# cp scripts/makefile.linux Makefile /把 Scripts 下的一個(gè) makefile 拷出來自己動手改user# vi Makefile / 自己動手改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è)沒做對 : 尤其是 zlib 的安裝還是前面說的,檢查 /usr/local/arm/2.95.3/arm-linux/ include,lib 目錄中有成功安裝否,如果沒有安裝成功,那就自己把編譯出來的東西拷過去。記著,*.h 和 .so 的文件都要拷。OK,現(xiàn)在來安裝 jpeg 庫/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 來指定交叉編譯選項(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è)目錄,不然安裝會出錯(cuò)Root# mkdir p /usr/local/arm/2.95.3/arm-linux/man/man1Root# make install / OK 了一樣,自己去檢查一下安裝是否成功 !最后安裝 libttf 庫,這個(gè)是 TrueType 字體的支持庫,用來顯示文字的。/sourceforge/freetype/freetype-1.3.1.tar.gz注意:MiniGUI 的文檔說只支持 1.3.1 版本的 ttf 庫,不要把版本弄錯(cuò)了 這個(gè)庫裝起來最麻煩,全部自己手動編譯,安裝,下面一步一步來做吧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/ /把有用的東西拷出來進(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 目錄下的文件也拷出來注意 cp 命令不要用 r 選項(xiàng),因?yàn)闀岩恍]用的東西出拷出來的an拷貝完成了,現(xiàn)在來自己手動編譯了user# cd libttfuser# arm-linux-gcc -c -fPIC -O2 freetype.c /不要奇怪,對,我們只要編譯這一個(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 生成最后的動態(tài)鏈接庫,OK了我這里我沒有成功,我用自己的方法直接在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)在手動安裝,得自己建立一下目錄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安裝庫完成,哈!經(jīng)過試驗(yàn)發(fā)現(xiàn) MiniGUI 1.3.3 版本在鏈接 ljpeg lpng lttf 時(shí)老是要鏈接 /usr/lib 下的庫,沒辦法,用老方法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 的庫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 /就用圖形界面來配置就好了,不要用一堆 enable-xxx 之類的,太麻煩如果在 make menuconfig 出錯(cuò),去檢查一下你的 gcc ,前面我們把它指向 arm-linux-gcc ,問一下,你改回來沒有?下面是配置libminigui 在 System Wide Options 里如下:Build MiniGUI-Lite /用 Lite 方式編譯,不是Thread 方式,這里適用于 PDA Stand-Alone Use incore (built-in) resource /建議不要選這個(gè),老有問題Unit of timer is 10msCursor support User can move window with mouse /建議別選這個(gè),可以移動蠻煩人的Mouse button can do double clickBuild with debugging messages Trace messages of MiniGUI /不要選這個(gè),出來的Trace太多,看不過來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 /千萬不要選這個(gè),不然會出現(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 /千萬不要選這個(gè),不然后面你的 mginit 程序一啟動就崩潰了(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 /注意這里,我們把庫裝到交叉編譯器的目錄下- Additonal Compiler Flags CFLAGS: LDFLAGS: 其它的用缺省的選項(xiàng)就可以了,好了,現(xiàn)在退出,保存你的設(shè)置吧,然后它就開始檢測你的系統(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這里的庫應(yīng)該都是顯示為 yes 了,如果有 no 的話,回去檢查前面你有哪步做得不對,不然的話編譯后的東西可能沒法正常執(zhí)行,切記切記!如果這里通過了,那就OK了user# make /又是一個(gè)漫長的等待,呵呵Root# make install注意:我們這里 make install 其實(shí)是給交叉編譯器安裝 libminigui 的庫,你想,將來你需要編譯為 minigui 開發(fā)的程序,這個(gè)程序總是需要鏈接庫的吧,這些庫因此也需要在交叉編譯器中,不然你交叉編譯的時(shí)候編譯不過去 。 裝好了,到 /usr/local/arm/2.95.3/arm-linux 的 include lib 目錄下去看看,是不是多了相應(yīng)的libminigui.so libmgext.so libvcongui.so 在 include 目錄下多了一個(gè) minigui目錄,里面有相應(yīng)的頭文件最后,安裝 popt 庫,這個(gè)庫在編譯 mde 程序時(shí)需要使用,不然編譯沒法通過 。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 ,用來建立我的嵌入式系統(tǒng)的根目錄,現(xiàn)在我需要把 minigui 的庫文件放到里面去,建立目錄Root# mkdir p /opt/rootfs/usr/local/lib,etc把 /usr/local/arm/2.95.3/arm-linux/lib 中相應(yīng)的庫拷到 /opt/rootfs/usr/local/lib 目錄下去下面是我拷的庫文件: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)庫是不需要拷過去的,我圖方便,一起拷了,呵,懶人的做法同時(shí)修改 /opt/rootfs/etc/ld.so.conf ,在里面最后新加入一行 /usr/local/lib然后執(zhí)行 Root ldconfig r /opt/rootfs /把 rootfs 當(dāng)成根目錄,執(zhí)行OK,庫文件準(zhǔn)備完畢下面把資源文件也拷過來,還記得嗎,在前面 搭建 PC 環(huán)境中講過安裝資源文件,它被裝在了 /usr/local/lib 目錄下,一個(gè)叫 minigui 的目錄,我們要做的就是把它拷過來Root# cp r a /usr/local/lib/minigui /opt/rootfs/usr/local/ 連目錄一起拷過來,目錄結(jié)構(gòu)和主機(jī)一樣把配置文件也拷過來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 / 這里修改,我不知道你會用什么觸摸屏,所以就用dummy肯定不會錯(cuò)mdev=/dev/touchscreen/0raw /解摸屏,如果前面是 dummy ,則這里改不改無所謂mtype=nonefbcondefaultmode=240x320-16bpp / 根據(jù)你的LCD大小自己設(shè)置,設(shè)置錯(cuò)誤minigui 就啟動不了ial_engine 一開始建議用 dummy ,先讓 minigui 跑起來,以后再把 觸摸屏 加進(jìn)去,保證盡可能減少錯(cuò)誤的發(fā)生保存,退出。 OK ,你的板子上的系統(tǒng)也搭建完畢了,現(xiàn)在來讓真正的圖形界面跑起來! 注意:你Build 你的 嵌入式 Linux 內(nèi)核時(shí),在 Console 中一定要先上 FrameBuffer ,從4位色一直到 16 位色的支持,全選上吧,同時(shí)把 VGA TextOut 選項(xiàng)勾掉,不要選它!內(nèi)核啟動時(shí)就要激活 FrameBuffer ,不然 minigui 沒法啟動起來,激活的方法就是給它傳內(nèi)核參數(shù) vga=xxx 之類的。3.啟動你的 MiniGUI 的圖形界面看看你的 Windows 操作系統(tǒng),左下方是一個(gè) 開始 按鈕,然后是 任務(wù)條 ,MiniGUI 也提供了類似的界面,這就是一個(gè)叫mginit 的程序,它啟動后就跟widnows的界面很像了,它就在 mde 包里面,還記得最初讓你下載的那個(gè)程序包嗎?現(xiàn)在我們就來安裝它?。海﹗ser# tar zxf mde-1.3.0.tar.gzuser# cd mde-1.3.0 /我們先對 mginit 程序做一點(diǎn)小修改,呵user# cd mginit ; vi mginit.c 在 297 行處,把下面代碼注釋掉/*AboutMiniGUI ();AboutMDE ();*/保存,退出即可。因?yàn)槲覀儧]有 觸摸屏 現(xiàn)在,沒法點(diǎn)它的 確認(rèn) 按鈕,所以把這些 About 信息去掉!好了,現(xiàn)在來編譯吧,在mde-1.3.0 目錄里user# ./configure -prefix=/opt/rootfs/usr/local -host=arm-linuxuser# make如果你發(fā)現(xiàn) mginit 目錄下的程序沒有被編譯,那就說明你的 libminigui 配置不正確,記住,你必須是配置為 Lite 模式,這個(gè)程序才會被編譯user# make install事實(shí)上證明,make install,根本沒用,它什么都沒做,do nothing 所以還是我們自己動手來做吧,呵Root# mkdir p /opt/rootfs/usr/local/lib/shared/miniguiapps /建立了一個(gè)我們自己的目錄,好長,呵Root# cp r a mde-1.3.0/* /opt/rootfs/usr/local/lib/shared/miniguiapps直接全部拷過去,然后到 /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è)對mginit 程序很重要OK,最后一步了,修改配置文件Root# vi /opt/rootfs/linuxrc 文件一般你配置嵌入式系統(tǒng)的時(shí)候都會有這個(gè)文件,用來執(zhí)行一些系統(tǒng)的初始
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宜賓職業(yè)技術(shù)學(xué)院《公共危機(jī)管理概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 長豐縣2025屆數(shù)學(xué)五年級第二學(xué)期期末監(jiān)測試題含答案
- 淮南職業(yè)技術(shù)學(xué)院《醫(yī)學(xué)遺傳學(xué)A》2023-2024學(xué)年第二學(xué)期期末試卷
- 太湖創(chuàng)意職業(yè)技術(shù)學(xué)院《項(xiàng)目評估》2023-2024學(xué)年第一學(xué)期期末試卷
- 南通理工學(xué)院《Hadoop技術(shù)與應(yīng)用實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湛江市年模擬物理試題(三)
- 棗強(qiáng)中學(xué)高二上學(xué)期期末考試?yán)頂?shù)試題
- 建材市場銷售技巧培訓(xùn)
- 2025裝修合同范本3
- 精神病人衛(wèi)生護(hù)理課件
- WS-T 405-2012 血細(xì)胞分析參考區(qū)間
- 聯(lián)合國國際貿(mào)易法委員會公共采購示范法
- 拳擊單招考試評分標(biāo)準(zhǔn)
- 15催收業(yè)務(wù)管理辦法
- 金融調(diào)控法律制度PPT課件
- 旅游管理專業(yè)考試題
- 混凝土格構(gòu)梁護(hù)坡施工方案設(shè)計(jì)
- 航空航天概論(課堂PPT)
- 寧波明州生物質(zhì)發(fā)電項(xiàng)目環(huán)境影響評價(jià)報(bào)告
- 高速鐵路橋梁救援疏散通道施工方案
- 蓄水池清洗方案
評論
0/150
提交評論