(1)tar -xvf tslib.tar.gz
cd tslib
(2)./autogen.sh
(3)configure --prefix=/usr --enable-shared --enable-h3600 --enable-input --disable-corgi --disable-collie --disable-mk712 --disable-arctic2 --disable-ucb1x00 --build=i686-linux --host=arm-s3c6410-linux-gnueabi
(4)config.h 파일 수정
#define malloc rpl_malloc을 주석 처리 하여준다.
(5)tslib 경로 내의 /etc/ts.conf 파일 수정
module_raw input의 주석을 해제한다.( ts.conf 파일에서는 사용하는 touch screen에 따른 설정을 해준다.)
- 참고 - 주석 해제시에는 문장 앞에 공백이 존재해서는 안된다. 만약 공백이 존재한다면 Segment
fault 오류가 발생하게 된다. |
(6) make; make --prefix=/tsl install
(7) /tsl/lib 의 libts.la , /tsl/lib/pkgconfig 의 tslib-0.0.pc 파일을 수정한다.
libts.la의 경로 변경
libdir='/usr/lib' ==> libdir='tsl/lib'
tslib-0.0.pc의 경로 변경
libdir='/usr/lib' ==> libdir=/tsl/lib
이렇게 변경해주어야 하는 이유는 cross컴파일일 경우는 install path를 cross toolchain쪽으로 해줘야 하나 실행시 때문에 문제가 생긴다(왜냐하면 tslib를 prefix 디렉토리로 참조하기 때문에). 해서 약간 속여주는 것이라 한다. |
(8) 타켓 보드에 생성된 파일들을 올린다. 올릴 때 심볼릭 링크 구조 그대로 올려주어야한다.
라이브러리 파일의 경우, libts-0.0.so.0.1.1,libts.la 파일만 올려 준다음 심볼릭 링크를 다음과 같이 걸어준다.
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 |
(9) /etc/profile에 다음 과 같은 내용을 기록한다.
export LD_LIBRARY_PATH=/tsl/lib // 라이브러리를 참조하기 위한 경로
export TSLIB_CALIBFILE=/etc/pointercal // 칼리브레이션을 수행하여 얻은 결과 좌표가 저장될 곳
export TSLIB_TSDEVICE=/dev/input/event1 // 보드에서 사용하는 터치 스크린 장치명
export TSLIB_CONFFILE=/tsl/ts.conf // 터치스크린 종류 설정. |
- 참고 -
TSLIB_TSDEVICE 에 들어갈 장치명을 알아 보기 위해서는 cat /proc/bus/input/devices 명령을 수
행해 주면된다. 명령을 수행하면 다음과 같은 결과를 얻을 수있다.
root@aESOP-S3C6410:/etc/tslib/bin# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0001 Product=0001 Version=0001
N: Name="aesop-keypad"
P: Phys=aesop-keypad/input0
S: Sysfs=/class/input/input0
H: Handlers=kbd event0
B: EV=3
B: KEY=100000 0 0 0 0 0 0 800 10 0 35ff47f d3ff4ffd
I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="s3c TouchScreen"
P: Phys=input(ts)
S: Sysfs=/class/input/input1
H: Handlers=mouse0 event1 ts0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003 |
(10) bin 파일 내의 ts_calibrate 파일을 실행시켜 준다.