2011년 6월 7일 화요일

Qt 4.7 포팅 가이드

       
 
이 매뉴얼은 JK전자(JK Electronics) 에 의해서 번역, 수정, 작성 되었고 소유권 또한
JK전자(JK Electronics)
의 것입니다. 소유권자의 허가를 받지 않고 무단으로 수정, 삭제하거나 배포 할 수 없습니다.

제품 구매 : http://www.toolparts.co.kr
 

S3C6410 Start Kit QT 4.7.0 Porting Guide


 

* Update history

- 2011.4.18 : 초기 Release


  이 메뉴얼은 Qtopia-2.2.0, Qt-Extendded-4.4.3 (Qtopia Phone Edition), Qt 4.7.0를 S3C6410 Start Kit 개발보드에 포팅하는 일반적인 방법에 대한 내용을 설명하는 메뉴얼 입니다.

1. Qt4.7

이번 절에서는 Qt의 최신버젼인 Qt4.70을 어떻게 크로스 컴파일을 해서 개발보드에서 실행 시킬수 있는지에 대해서 배워 보도록 합니다.

qt-everywhere-opensource-src-4.7.0.tar.gz : Qt4.7.0 official source code

1.2 Qt4.7.0 official source code

Nokia에서 베포한 공식 소스 코드를 설치 합니다.
"/opt/mini6410" 디렉토리가 생성이 되어 있지 않다면 먼저 디렉토리를 생성한 후 tar 명령을 실행 해야 합니다.

# cd /opt/mini6410
# tar xvzf /opt/qt-everywhere-opensource-src-4.7.0.tar.gz

1.3 Cross compile Qt4.7.0

크로스 컴파일을 하기전에 아래 명령들을 실행 시킵니다.

# cd /opt/mini6410/qt-everywhere-opensource-src-4.7.0
# echo yes | ./configure -prefix /opt/Qt4.7 -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff -qt-libmng -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon

configuration 수행시 주요한 파라미터 설정들에 대한 설명 입니다.

-embedded arm: arm 용 embedded 버젼으로 설정
-xplatform qws/linux-arm-g++: arm-linux
-qt-mouse-tslib: 사용할 터치 스크린 라이브러리를 지정 합니다.
-prefix /opt/Qt4.7: Qt4.7이 설치될 디렉토리를 "/opt/Qt4.7" 로 지정 합니다.

다음 명령으로 Qt4.7을 컴파일 하고 설치 합니다.

# make && make install

참고로 && 명령 기호는 "make" 명령시 성공적으로 완료되어야만 "make install" 을 실행하도록 합니다.

1.4 Qt4.7.0을 개발보드에 설치

개발용 리눅스 PC에서 아래 명령을 수행 합니다.

# cd /opt
# tar cvzf qt4.7.tgz Qt4.7

"qt4.7.tgz" 파일을 SD카드에 복사한 후 개발보드에서 SD메모리를 삽입하고 다음 명령을 수행 합니다.

# rm /usr/local/Trolltech/QtEmbedded-4.7.0-arm/ -rf
# cd /opt
# tar xvzf /sdcard/qt4.7.tgz

주의 : 앞의 configuare 수행에서 Qt 4.7의 설치 디렉토리를 "/opt/Qt4.7" 로 지정 하였기 때문에 개발보드에 설치시 반드시 "/opt/Qt4.7" 에 설치 되로록 해야 합니다.

이제 개발보드에 설치된 Qt 4.7을 실행해 보도록 합시다.

1.5 Qt4.7.0을 개발보드에서 실행

Qt4.7를 실행하기 전에 반드시 Qtopia2.2.0 or Qt-Extended4.4.3 의 모든 프로세스들을 종료하고 실행 해야 합니다. Qtopia2.2.0을 종료하는 방법은 Qtopia2.2.0 GUI화면의 "Setting" 탭에서 "Off" 아이콘을 누르면 아래와 같은 화면이 실행 됩니다. "Terminate Server" 을 선택해서 Qtopia2.2.0를 종료 합니다.


qtopia

Qtopia2.2.0을 종료시키는 다른 방법으로는 startup script 인 "/etc/ init.d/rcS" 에서 qtopia startup 관련 아이템들을 주석처리하거나 삭제한 후 개발보드를 리부팅 하는 방법도 있습니다.

Qt4.7 예제 프로그램들을 그러면 어떻게 실행시켜야 할까요 ?"/opt/Qt4.7/examples/" 디렉토리에 Qt 4.7 샘플예제들이 있습니다.

# /opt/Qt4.7/demos/embedded/fluidlauncher/fluidlauncher

위의 명령을 바로 실행 시키면 Qt4.7에 대한 환경변수가 설정되어 있지 않아서 아마도 에러가 발생하면서 실행되지 않을 것입니다. 우리는 프로그램 실행을 쉽헤 하기 위해서 "/bin/setqt4env" 에 환경변수를 설정하는 스크립트를 만들어 놓았습니다.

# vi /bin/setqt4env

#!/bin/sh

if [ -e /etc/friendlyarm-ts-input.conf ] ; then
. /etc/friendlyarm-ts-input.conf
fi

true ${TSLIB_TSDEVICE:=/dev/touchscreen}
TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_TSDEVICE export TSLIB_CONFFILE
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin

if [ -c /dev/touchscreen ]; then
export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi

export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root



작성된 스크립트에 실행 권한을 부여 합니다.

# chmod +x /bin/setqt4env

이제 다시 Qt 4.7 프로그램을 실행시켜 봅시다.

# . setqt4env
# cd /opt/Qt4.7/demos/embedded/fluidlauncher/
# ./fluidlauncher -qws

setqt4env 스크립트 수행시 setqt4env 앞의 "." 는 현재 쉡 세션에서만 환경변수를 유지 하라는 의미 입니다.

qtopia




       
       

댓글 없음:

댓글 쓰기