嵌入式linux新手入門手記-TSLIB和支持USB接口單點觸摸屏
kernel已經(jīng)內(nèi)置對于普通USB單點觸摸屏的支持,不需要修改程序,只要在/arch/arm/config/am335x_evm_defconfig中將相應(yīng)的編譯條件設(shè)置好就可以:
本文引用地址:http://www.ex-cimer.com/article/279081.htmCONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_USB_COMPOSITE=y
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
刪除其他的觸摸屏編譯選項,然后重新編譯kernel即可。
下載tslib:git clone http:/github.com/kergoth/tslib,通過這個網(wǎng)站下載的tslib目前是1.6.0版本;
安裝autoconf工具:sudo apt-get install autoconf automake libtool;
設(shè)置交叉編譯環(huán)境變量:export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
在tslib目錄下執(zhí)行./autogen.sh,自動生成Makefile文件,然后執(zhí)行./configure --prefix=/usr/tslib --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes。
這里--prefix指定編譯后的tslib庫安裝的路徑,-host指定交叉編譯工具。
上述沒有錯誤后,執(zhí)行make -j4交叉編譯tslib,成功后執(zhí)行make install,tslib將安裝到/usr/tslib目錄下;
將/usr/tslib目錄下的所有文件拷貝到am335x的nfs文件系統(tǒng)中的/usr/tslib目錄下,并設(shè)置am335x的環(huán)境變量:
export T_ROOT=/usr/tslib #tslib安裝路徑
export TSLIB_FBDEVICE=/dev/fb0 #linux顯示設(shè)備名
export TSLIB_TSDEVICE=/dev/event0 #linux觸摸屏輸入設(shè)備名
export TSLIB_CALIBFILE=/etc/pointercal #觸摸屏校正數(shù)據(jù)文件
export POINTERCAL_FILE=/etc/pointercal #觸摸屏校正數(shù)據(jù)文件
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf #tslib配置文件
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts #tslib插件安裝位置
export TSLIB_CONSOLEDEVICE=none #控制臺設(shè)備
export PATH=$PATH:$T_ROOT/bin #配置tslib應(yīng)用的安裝路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$T_ROOT/lib #lib的裝載路徑
export LD_PRELOAD=$T_ROOT/lib/libts.so #預(yù)裝入tslib共享庫
修改/usr/tslib/etc/ts.conf:
module_raw input #使用linux標(biāo)準(zhǔn)輸入設(shè)備
module pthres pmin=1 #觸摸屏靈敏度插件設(shè)置
#module variance delta=30 #USB觸摸屏自帶濾波,不使用這個模塊
module dejitter delta=100 #觸摸屏去噪插件設(shè)置
module linear #觸摸屏線性濾波插件
重新啟動am335x,然后運行/usr/tslib/bin/ts_print,在觸摸屏上滑動手指,超級終端上打印出觸摸的點的信息,觸摸屏以及tslib已經(jīng)正常工作。
到這里,am335x的基本平臺就已經(jīng)能夠正常工作了,后續(xù)需要將QT5.4.1移植到am335x平臺上。QT5.4.1的移植花了較多的時間,同時也需要修改tslib和qt的較多源程序。
我將用多個章節(jié)來記錄QT5.4.1的移植,以及加入tslib的支持,并對這二者的源程序進(jìn)行修改。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論