一、移植環境
- 主 機:VMWare6.5--Fedora 9
- 開發板:自制開發板
CPU:S3C2440; SDRAM:HY57V561620FTP-H; NOR flash:SST_39VF1601(2M);
NAND flash:K9F1G08U0B(128M); 網卡芯片:DM9000EP
- 編譯器:arm-linux-gcc-4.3.2
- u-boot:u-boot-2009.08
- linux kernel:linux-2.6.30
- busybox:busybox-1.13.3
二、博客地址
http://blog.csdn.net/liuqiqi677
如有錯誤,歡迎指正。
三、具體方法
之前把u-boot的移植做完之後,就開始學習Linux設備驅動開發。進入嵌入式領域,才發現原來每一個領域,像u-boot、內核、驅動等,都是博大精深,短時間內要深入瞭解實在是不可能,只能暫時一窺全貌,將整個過程拉通之後,再回過頭來進行擴展。於是乎,在對設備驅動開發有了大概的瞭解之後,我便草草進入QT的移植了。我的目的其實很簡單,就是在我的板子上實現一個擁有圖形界面的小應用,這樣,嵌入式開發的一條脈絡基本上就算理清了。
1、下載tslib-1.4.tar.gz
http://download.csdn.net/source/3177449 。
2、解壓安裝tslib
# tar -zxvf tslib-1.4.tar.gz
# cd tslib
# ./autogen.sh
echo "ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache
# ./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/usr/local/tslib
# make
# make install
說明:
(1) 紅色的“0”是數字0;(2) /usr/local/tslib表示tslib安裝後的路徑
3、修改ts.conf內容
# vi /usr/local/tslib/etc/ts.conf
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
然後將整個tslib文件夾,下載到開發板的對應路徑下(/usr/local)。
4、開發板配置環境變量
通過超級終端,# vi /etc/profile
添加如下內容(綠色):
export TSLIB_ROOT=/usr/local/tslib
export TSLIB_TSDEVICE=/dev/input/event0 指定觸屏設備
export TSLIB_CALIBFILE=/etc/pointercal 指定觸摸屏校準文件 pintercal 的存放位置
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf 指定 TSLIB 配置文件的位置
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 指定觸摸屏插件所在路徑
export TSLIB_FBDEVICE=/dev/fb0 指定幀緩衝設備
export TSLIB_CONSOLEDEVICE=none 設定控制檯設備爲 none ,否則默認爲 /dev/tty ,這樣可以避免出現“open
consoledevice: No such file or directory KDSETMODE: Bad file descriptor ” 的錯誤
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
另外,要確保在/dev/input/目錄下有event0設備文件,在/dev/目錄下有fb0設備文件,如果沒有,在執行下面./ts_calibrate 的時候,會報出“open *: No such file or directory ”的錯誤,這時,我們需要手動創建設備文件:
# mknod /dev/input/event0 c 13 64
# mknod /dev/fb0 c 29 0
5、執行測試命令
重啓開發板,在 /usr/local/tslib/bin 目錄下,輸入./ts_calibrate,出現tslib的觸摸屏五點校準畫面,至此,tslib的安裝移植成功完成。