저 하늘의 구름처럼~

Aesop 6410 보드에서 tslib를 이용한 터치스크린 포팅하기 본문

Embedded System

Aesop 6410 보드에서 tslib를 이용한 터치스크린 포팅하기

강백호v 2009. 6. 24. 17:05

(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 파일을 실행시켜 준다.