이솝 임베디드 포럼 WiKi 페이지는 이솝 임베디드 포럼 공동제작 보드를 사용하시는 회원님들이 자유롭게 업데이트 하실 수 있습니다.

editGoogle Android Touch Calibration 방법

다음은 이솝 S5PC100 보드에서 Google Android를 위한 Touch Calibration 방법에 대해서 기술합니다.


1. 준비물


Google Android에서 Touch를 Calibration을 하기위한 준비물은 다음과 같습니다.


1) 이솝보드

2) X-Windows용으로 컴파일 된 리눅스 커널

3) Android용으로 컴파일 된 리눅스 커널

4) 이솝보드용 GPE X-Windows Filesystem

5) 이솝보드용 Google Android Filesystem Image


2. 터치 켈리브레이션 절차


1) X-Windows 부팅용 커널 환경 설정


- 커널 소스 디렉터리에서 $> make menuconfig 를 하시면 다음과 같은 화면이 나옵니다.


1.png


- Device Drivers -> Input Device Support -> Touchscreens -> Touch Screen Support Type에서,

   다음과 같이 X-Windows Touch Screen Support 항목을 선택 합니다.


2.png


- 이제 ESC 키를 다음 화면이 나올때 까지 계속 누른 후 Yes를 누른 후, menuconfig를 종료 합니다.


3.png


- $> make zImage 명령으로 커널을 컴파일 하면, 다음과 같이 zImage가 생성 됩니다.


4.png  


2) X-Windows용으로 변경된 커널로 부팅


이제 변경된 X-Windows용 커널로 부팅하기 위해 다음과 같은 절차를 진행하셔야 합니다.

우선 /nfsroot 디렉터리에 이솝 보드용으로 배포된 GPE X-Windows Filesystem이 정상적으로 설치되어 있으며,

NFS 부팅 환경이 제대로 되어 있는지 확인해 주시기 바랍니다.


- GPE X-Windows RFS 확인

 

  다음과 같이 /nfsroot/RootFS-S5PC100 디렉터리에 GPE X-Windows RFS가 설치되어 있는지 확인해 주세요.

  만약 없으시다면, 본 위키 페이지와 다운로드 페이지를 참고하셔서 NFS 및 GPE X-Windows RFS 를 설치 합니다.


- U-Boot 환경 설정


 이제 이솝보드를 켜보시고, "Hit any key to stop autoboot:  5" 항목에서 아무키나 눌러 명령 프롬포트로 진입 하시기 바랍니다.

 본 위키 페이지를 참조하시어, GPE X-Windows로 NFS를 부팅하기 위한 환경 설정을 합니다.

 참고로, 현재 테스트 하기 위해 적용된 설정은 다음과 같습니다.


6.png


- 커널 부팅 및 X-Windows RFS NFS 마운트


 환경 설정이 잘 되셨다면 U-Boot의 명령 프롬포트에서 "boot" 명령을 치시면 다음과 같이 X-Windows로 마운트 되어 부팅을 완료 합니다.


7.png


- xtscal 유틸리티 실행


 터치스크린 보정 작업을 위해 명령 프롬포트에서 xtscal 명령을 입력하면, LCD에 Touch Screen의 스크린 좌표를 찍는 화면이 나옵니다.

 순서대로 터치스크린 좌표를 찍으시면, 보정값이 /etc/pointercal 파일에 저장됩니다.


 cat /etc/pointercal 명령을 통해 다음 화면에서 처럼 보여지는 값을 메모장에 적어놓으시기 바랍니다.


 8.png


3) Android용으로 터치 보정 값을 적용


 이제 터치 보정 값을 커널의 Android용 Touch Screen 드라이버에 적용 합니다.

 호스트 PC의 이솝 C100용 커널 소스에서 다음과 같은 명령을 입력하여 Android용 Touch Screen 드라이버를 편집 합니다.


 $> gedit drivers/input/touchscreen/s3c-ts-android.c 


 141번째 라인에 보시면, 다음과 같이 a0~a6의 값이 있습니다. 여기에 보정된 값을 순서대로 넣어주시면 됩니다.

 참고로 위 아래 두 항목 모두 동일한 값으로 변경해 주시는게 편합니다.


  9.png   


예)

  LMS480 LCD용

    a0=5276;
    a1=16;
    a2=-17496416;
    a3=-8;
    a4=-4632;
    a5=51856832;
    a6=65536;


 LTE480 LCD용
     a0=74;
     a1=4792;
     a2=-13296448;
     a3=5304;
     a4=-6;
     a5=-28842696;
     a6=65536;


4) Android Eclair의 경우 터치 보정 값 적용을 위한 커널 환경 설정 변경


 이제 보정된 커널을 사용하기 위해 다음과 같은 순서로 커널의 환경 설정을 변경 합니다.

 

 - 커널 소스 디렉터리에서 $> make menuconfig 를 하시면 다음과 같은 화면이 나옵니다.

 

 1.png


- Device Drivers -> Input Device Support -> Touchscreens -> Touch Screen Support Type에서,

   다음과 같이 Google Android Touch Screen Support 항목을 선택 합니다.


10.png


- 이제 ESC 키를 다음 화면이 나올때 까지 계속 누른 후 Yes를 누른 후, menuconfig를 종료 합니다.


3.png


- $> make zImage 명령으로 커널을 컴파일 하면, 다음과 같이 zImage가 생성 됩니다.


4.png


- 이제 $> make zImage 명령으로 커널을 컴파일 하면, 보정된 안드로이드용 리눅스 커널 zImage가 생성 됩니다.


사용자 로그인