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