南台電子系 謝政育 侯安桑
對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下载本文