作者:孫曉明,華清遠見嵌入式學院講師。
【實驗環境】
1、主 機:Fedora9 DVD 發行版
2、目標機:mini2440友善之臂
3、源碼包:
ftp://ftp.qtsoftware.com/qt/source/qt-embedded-linux-opensource-src-4.5.2.tar.gz
4、編譯器 arm-linux-gcc-4.1.2
http://qtextended.org/downloads/toolchains/arm920t-eabi.tgz
我這幾天移植qt-embedded-linux-opensource-src-4.5.2 因為之前使用友善的 arm-linux-gcc-4.3.2編譯qt-embedded-linux-opensource-src-4.5.2 沒有錯誤,但是運行 例子程式example/widget/analogclock/analogclock -qws & 就會出段錯誤, 所有改用 openmoko的arm-linux-gcc-4.1.2編譯, 最後可以成功看到介面。
移植的tslib1.4 在,並且運行ts_calibrate 五點校準,觸控螢幕是有反應的,並能產生/etc/pointercal
ts_test 也是好使的,拖拽都沒有問題。 但是就是運行移植的 QTE的程式 觸控螢幕一點反應也沒有。 順便說一下,核心還是用的mini2440出廠時nand裡的linux-2.6.29,沒有動過,觸控螢幕已經是被核心支援了。
這是我配置的環境變數:
以下環境變數都是我在終端敲入的
export QTDIR=/usr/local/QtEmbedded-4.5.2-moko-arm
export QPEDIR=/usr/local/QtEmbedded-4.5.2-moko-arm
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/event0
export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_PLUGINDIR=/usr/local/tslib/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/event
這是我安裝tslib1.4的步驟:
一、tslib移植
第一步:解壓tslib-1.4.tar.gz
tar -zxvf tslib-1.4.tar.gz
第二步:進入解壓過的目錄
cd tslib-1.4
第三步:執行tslib-1.4目錄下的autogen.sh
./autogen.sh
第四步:執行autogen.sh指令碼所產生的Makefile檔案
在命令列打入以下命令:
echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH-linux.cache
./configure --host=arm-linux --prefix=/usr/local/tslib --cache-file=$ARCH-linux.cache
第五步:
make
make install
第六步:把指定安裝目錄下的tslib的檔案都copy到你所掛載的根檔案下
sudo cp -a /home/linux/tslib/* /opt/FriendlyARM/mini2440/root_qtopia/usr/local/tslib/
第七步:修改/opt/FriendlyARM/mini2440/root_qtopia/usr/local/tslib/ 下的etc目錄中ts.conf檔案
vi ts.conf 將第二行的#module_raw input修改成module_raw input 注意一定要頂格寫否則程式執行時會發生讀取ts.conf錯誤