1. 首先下載最新的tslib 從http://tslib.berlios.de/。
2. 在 tslib tar 到你要工作的目錄中(通常是target root source 的子目錄)..
3. 檢查一下Fedora 或ubuntu 系統是否已經安裝了libtool, 及automake
在Fedroa9 下 用yum install libtool, yum install automake
在ubuntu 下用 apt-get install libtool, apt-get install automake
4. 執行 sh autogen.sh
5. $./configure --prefix=$PWD/install CC=arm-linux-gcc --host=arm-linux
這時會產生rpl_malloc未定義的錯誤
6. $./configure --prefix=$PWD/install CC=arm-linux-gcc --host=arm-linuxac_cv_func_malloc_0_nonnull=yes
7. 檢查一下Kernel 系統是否已經將ads7846 driver 選上了,及 Event drive 也開啟了,
若要能成功驅動觸控螢幕,必須確定兩者都選上。若一切都正確linux kernel 會送出如下的字串:
----------------------------------------------
input: gpio-keys as /class/input/input0 ( 這是one 不是o)
ads7846 spi0.3: touchscreen, irq 31
input: ADS784x Touchscreen as /class/input/input1
------------------------------------------------------
搜尋 /test 目錄下的ts_calibrate ,ts_test, test_print,ts_print_raw,ts_harvest 內的event0 的字串,並將其修改成event1, 因為kernel 已經將touch screen 設定成 input1, 如果你的系統是input 2, 你必須改成event2.(這裡很重要,網路上大部分都沒有提到這個)
7. make
8. make install
9. 編譯完成後會自動產生/install 的目錄,我們必須將其複製到系統跟目錄中
bin/ : ts_calibrate, ts_test等校正、測試程式
lib/ : tslib的動態與靜態library
lib/ts/: tslib外加支援的touch screen module
etc/ : tslib的configuration file
10. 建立驅動程式節點
在跟目錄系統 /dev 下建立/input 目錄 mkdir input
並在/input 下 建立一個device 節點 mknod event1 c 13 65 (表示char , input 型的device Driver,
64 代表input 0, 65代表input 1, 這個數字也必須參考linux kenel document 才可以得知)。
11. 修改ts.conf 並複製到系統跟目錄中 /etc 下。
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
12. 修該/etc/rc.d/rc.init 讓 system 可以在開機後自動執行tslib
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib
要特別注意,pointercal 是會自動產生的程式,不需事先建立,事先建立的話會產生Segamentation fault.
13. 使用arm-linux-objdump 來看ts_calibrate,ts_test.. 所使用到的動態連結程式庫,
有些版本可能與你用的版本可能不合,可以使用ln 來做連結會比較解省記憶體:
compiler 之後 :libts-0.0.so.0.1.1
我們用 ln -s libts-0.0.so.0.1.1 libts-0.0.so.0
ln -s libts-0.0.so.0.1.1 libts.so
14. 最後將整個root system 打包成ext2 或Jffs2 都可以!大功告成。
最後要感謝學長助教的幫忙,各位也可以參考他的大作:
http://nabeko-notebook.blogspot.com/
沒有留言:
張貼留言