视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mini2440 qt4 移植
2025-09-30 23:28:11 责编:小OO
文档
mini2440 qt4 移植

南台電子系 謝政育  侯安桑

  對mini2440進行了QT4.4.3的移植,到目前為止好像是成功了,不知道後面使用的時候會不會出現問題,還是先湊合著用吧。 

         由於mini2440的光碟裏自帶一個root_default.tgz根檔,因此省了很大一部分力氣自己去裁剪,但是也有很大的缺陷就是:本身就對內核不熟悉,現在跳過了這一步,就更加不理解了。以後還是要補上來。 

1.編譯tslib-1.4 

     解壓到/home下 

    #./autogen.sh

    #./configure --prefix=/home/duancp/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes 

    #make 

    #make install-strip //生成瘦身應用程式和庫 

2.安裝arm-linux-gcc-3.4.1.tar.bz2 

    在根目錄下解壓,解壓後的默認目錄在/usr/local/arm/3.4.1 

    設置環境變數,運行命令: 

    vi /etc/profile 

    加入 export PATH=/usr/local/arm/3.4.1/bin:$PATH 

3.編譯qt-embedded-linux-opensource-src-4.4.3.tar.gz 

tar zxf qt-embedded-linux-opensource-src-4.4.3.tar.gz

cd qt-embedded-linux-opensource-src-4.4.3 

(我的QT的安裝目錄設置為根目錄下的/minin2440) 

./configure -prefix /mini2440  -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I/home/duancp/mytslib/include -L/home/duancp/mytslib/lib 

上面的紅色部分必須讓找前面的tslib的目錄設置,否則會出現“The tslib functionality test failed!”錯誤 

./make 

make install 

cd example/qws/mousecalibtration 

qmake &&make (生成mousecalibtration可執行檔,後面需要將其拷貝到根檔中)

4.製作根文件 

我的工作目錄是在根檔下,首先將root_default.tgz拷貝到根目錄下,加壓,生成root_default 

cd /root/root_default 

mkdir tslib 

cd tslib 

為了方便,將編譯的tslib下的bin、etc、lib檔夾全部拷貝過來 

cp -a /home/duancp/mytslib/lib ./ 

cp -a /home/duancp/mytslib/bin ./ 

cp -a /home/duancp/mytslib/etc ./ 

cd etc 

vi ts.conf 

將裏面的第二條語句(#module_raw inout)前面的“#”去掉,否則後面觸摸屏將不能使用 

cd .. 

mkdir mini2440 

cd mini2440 

因為我的flash有M,為了方便,將QT4.4.3的lib檔夾全部拷貝過來,但是要刪除fonts內除了wenquanyi_120_50.qpf 之外的其他文件,否則太大 

cp -a /mini2440/lib ./ 

rm -rf fonts 

mkdir fonts 

cp -a /mini2440/lib/fonts/wenquanyi_120_50.qpf fonts 

  

將前面編譯的QT的觸摸屏自帶程式拷貝過來 

cp -a /*/example/qws/mousecalibtration/mousecalibtration ./ 

cd /root 

解壓mkyaffsimage.tgz,得到mkyaffsimage可執行檔 

./mkyaffsimage root_default root.yaff2 

得到根檔root.yaff2,如果要看一下大小,可以執行 

ll root.yaff2 -h 

這樣可以將root.yaff2燒到板子上去了。 

在板子上運行mousecalibtration的時候沒有出現什麼錯誤,可以正確的顯示輸入的漢字 

目前在板子上運行的時候存在一定的問題:進入tslib運行ts_calibrate,總是提示ts_open: No such file or directory,這個問題一直沒有解決,留在後面解決。 

在板子上運行的時候環境變數如下: 

export QTDIR=/mini2440

export LD_LIBRARY_PATH=$QTDIR/lib:$OPIEDIR/lib

export PATH=$QTDIR/lib:$OPIEDIR/bin:$PATH

export QWS_MOUSE_PROTO=tslib:/dev/input/event0

export TSLIB_ROOT=/tslib

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONFFILE=/tslib/etc/ts.conf

export TSLIB_FBDEVICE='/dev/fb0'

export QWS_KEYBOARD='LIRC:/dev/lircd' 

  

要是在板子上運行的時候提示缺少某些檔的時候,就去在PC機上的linux下尋找,需要主要的是看若是提示缺少的檔是以個鏈結檔時,需要把鏈結物件也拷入 

我在運行的時候缺少一個librt.so.1(具體記不得了,好像是這個)的檔,我的辦法是把/usr/local/arm/3.4.1/arm-linux/lib下的該檔和其鏈結物件拷貝過來放在板子裏的lib中,就ok了!

由於mini2440的光碟裏自帶一個root_default.tgz根檔,因此省了很大一部分力氣自己去裁剪,但是也有很大的缺陷就是:本身就對內核不熟悉,現在跳過了這一步,就更加不理解了。以後還是要補上來。 

我做的時候現在fc8下試過,第一次是配置的時候“The tslib functionality test failed!”錯誤 

但是不明白原因的,我是按照下面的配置來的還是出問題了。

去掉後根據./configure -h 的提示配置完成,gmake到某處時,錯誤中斷。試了幾次都是這樣

也許是我的fc8並非完全安裝吧。最後換到了親愛的RH9.0下,按照下面的指示編譯成功。不過還有個現象就是在fc8下安裝qt-x11可以成功,RH9.0下安裝qt-x11就失敗了。可能是GCC版本的問題了。在RH9.0下我用的是tslib-1.3

1.編譯tslib-1.4 (這部分很好ts-lib的編譯還算順利了)

     解壓到/home下 

    #./autogen.sh

    #./configure --prefix=/home/duancp/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes (可以先生成個cache檔)

    #make 

    #make install-strip //生成瘦身應用程式和庫 

2.安裝arm-linux-gcc-3.4.1.tar.bz2 

    在根目錄下解壓,解壓後的默認目錄在/usr/local/arm/3.4.1 

    設置環境變數,運行命令: 

    vi /etc/profile 

    加入 export PATH=/usr/local/arm/3.4.1/bin:$PATH 

3.編譯qt-embedded-linux-opensource-src-4.4.3.tar.gz 

tar zxf qt-embedded-linux-opensource-src-4.4.3.tar.gz

cd qt-embedded-linux-opensource-src-4.4.3 

(我的QT的安裝目錄設置為根目錄下的/minin2440) 

./configure -prefix /mini2440  -release -shared -fast -pch -no-qt3support -qt-sql-sqlite -no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama -no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb -confirm-license -qt-mouse-tslib -I/home/duancp/mytslib/include -L/home/duancp/mytslib/lib 

上面的紅色部分必須讓找前面的tslib的目錄設置,否則會出現“The tslib functionality test failed!”錯誤 

./make 

make install 

cd example/qws/mousecalibtration 

qmake &&make (生成mousecalibtration可執行檔,後面需要將其拷貝到根檔中)

(這一步實現時有問題,可能是環境變數沒設置好)

4.製作根文件 

我的工作目錄是在根檔下,首先將root_default.tgz拷貝到根目錄下,加壓,生成root_default 

cd /root/root_default 

mkdir tslib 

cd tslib 

為了方便,將編譯的tslib下的bin、etc、lib檔夾全部拷貝過來 (拷貝tslib支援函式庫,我自己的理解了)

cp -a /home/duancp/mytslib/lib ./ 

cp -a /home/duancp/mytslib/bin ./ 

cp -a /home/duancp/mytslib/etc ./ 

cd etc 

vi ts.conf (據說是ts.conf的大小有,所以必須裁剪,是具體情況而裁剪)

將裏面的第二條語句(#module_raw inout)前面的“#”去掉,否則後面觸摸屏將不能使用 

cd .. 

mkdir mini2440 (這裏將mini2440作為了qpe目錄,實現GUI程式)

cd mini2440 

因為我的flash有M,為了方便,將QT4.4.3的lib檔夾全部拷貝過來,但是要刪除fonts內除了wenquanyi_120_50.qpf 之外的其他文件,否則太大 

cp -a /mini2440/lib ./ 

rm -rf fonts 

mkdir fonts 

cp -a /mini2440/lib/fonts/wenquanyi_120_50.qpf fonts 

  

將前面編譯的QT的觸摸屏自帶程式拷貝過來 

cp -a /*/example/qws/mousecalibtration/mousecalibtration ./ 

cd /root 

解壓mkyaffsimage.tgz,得到mkyaffsimage可執行檔 

./mkyaffsimage root_default root.yaff2 

得到根檔root.yaff2,如果要看一下大小,可以執行 

ll root.yaff2 -h 

這樣可以將root.yaff2燒到板子上去了。 

在板子上運行mousecalibtration的時候沒有出現什麼錯誤,可以正確的顯示輸入的漢字 

目前在板子上運行的時候存在一定的問題:進入tslib運行ts_calibrate,總是提示ts_open: No such file or directory,這個問題一直沒有解決,留在後面解決。 

在板子上運行的時候環境變數如下: (設置環境變數)

export QTDIR=/mini2440

export LD_LIBRARY_PATH=$QTDIR/lib:$OPIEDIR/lib

export PATH=$QTDIR/lib:$OPIEDIR/bin:$PATH

export QWS_MOUSE_PROTO=tslib:/dev/input/event0

export TSLIB_ROOT=/tslib

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts

export TSLIB_CONFFILE=/tslib/etc/ts.conf

export TSLIB_FBDEVICE='/dev/fb0'

export QWS_KEYBOARD='LIRC:/dev/lircd' 

  將上面的配置寫成個腳本檔,開機時在初始化中開啟就行了。

或者直接寫到/etc/profile 裏面就可以實現開機啟動設置變數了。

要是在板子上運行的時候提示缺少某些檔的時候,就去在PC機上的linux下尋找,需要主要的是看若是提示缺少的檔是以個鏈結檔時,需要把鏈結物件也拷入 

我在運行的時候缺少一個librt.so.1(具體記不得了,好像是這個)的檔,我的辦法是把/usr/local/arm/3.4.1/arm-linux/lib下的該檔和其鏈結物件拷貝過來放在板子裏的lib中,就ok了!

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/chen2qiao/archive/2009/09/11/4542063.aspx下载本文

显示全文
专题