이전 시간에 Tslib를 소개해 드렸습니다만 Tslib 라이브러리를 사용하면 터치 스크린을 쉽게 이용할 수 있습니다. QT도 Tslib 라이브러리를 이용하여 터치 스크린을  이용할 수 있습니다. 이번 시간에는 Tslib를 사용할 수 있도록 환경을 설정하여 QT를 설치해 보도록 하겠습니다.

이 글을 보시기 전에 "터치 스크린을 사용해 보자" 글을 먼저 보아 주시기 바랍니다. 이 글은 이어지는 글로 Tslib를 설치하셨다고 하더라도 꼭 "터치 스크린을 사용해 보자" 글을 읽어 주십시오.

QT설치 위치

설치 위치는 이전 Tslib 설치 때와 같이 아래의 디렉토리에 따라 설치하겠습니다. 또한 이번 시간에도 MIPS core를 사용하는 EZ-AU1200을 이용할 것이므로 MIPS core에 맞추어 QT를 설치하겠습니다.

설치 내용 설치 위치 설명
X11을 위한 QT /qt4/qt-x11 X11 용으로 컴파일된 QT 4
MIPS core를 위한 QT /qt4/qt-mips MIPS core 용으로 컴파일된 QT4
MIPS core를 위한 tslib /qt4/tslib-mips MIPS core 용으로 컴파일된 Tslib

QT 다운로드

설치 파일을 QT 홈페이지다운로드 페이지를 이용하셔도 좋습니다만, 저 같은 겨우는 ftp를 이용하는 것이 더 편하더군요. ftp프로그래으로 ftp.trolltech.com에 연결하신 후, /qt/source로 들어 가신 후 임베디드를 위한 아래의 파일을 내려 받습니다.

  • 임베디드용 QT: qtopia-core-opensource-src-4.3.4.tar.gz

이 글을 작성하는 시점에서 버전은 4.3.4 입니다.

QT 설치

내려 받은 파일을 적당한 곳에 풀어 놓습니다. QT 설치 후에 풀어 놓은 파일은 삭제해도 좋으므로 임시 디렉토리를 이용하셔도 좋습니다. 풀기 후에는 아래의 옵션에 맞추어 설치 환경을 먼저 잡습니다.

./configure -prefix /qt4/qt-mips -embedded mips -little-endian -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg -qt-mouse-tslib -I/qt4/tslib-mips/include -L/qt4/tslib-mips/lib -no-nis -no-cups -qt-freetype -depths 16,24,32

환경잡는 문장이 매우 길지요? 이후로는 설치 작업과 설치화면으로 설명드리겠습니다.

]# tar zxvf qtopia-core-opensource-src-4.3.4.tar.gz   --> 압축 풀기를 합니다.
]# cd qtopia-core-opensource-src-4.3.4                --> 풀린 디렉토리로 이동합니다.
]# ./configure -prefix /qt4/qt-mips -embedded mips -little-endian -release -no-largefile
 -no-accessibility -no-qt3support -qt-zlib -qt-gif -qt-libpng -no-libmng -qt-libjpeg
 -qt-mouse-tslib  -I/qt4/tslib-mips/include  -L/qt4/tslib-mips/lib -no-nis -no-cups
 -qt-freetype -depths 16,24,32


This is the Qtopia Core Open Source Edition.

You are licensed to use this software under the terms of
the GNU General Public License (GPL) versions 2 or 3.

Type '2' to view the GNU General Public License version 2.
Type '3' to view the GNU General Public License version 3.
Type 'yes' to accept this license offer.
Type 'no' to decline this license offer.

Do you accept the terms of the license? yes   <-- 라이센스에 동의합니다.

                            .... 중략 ....

  for /tmp/qtopia-core-opensource-src-4.3.4/src/plugins/gfxdrivers/qvfb/qvfb.pro

Qt is now configured for building. Just run 'gmake'.
Once everything is built, you must run 'gmake install'.
Qt will be installed into /qt4/qt-mips

To reconfigure, run 'gmake confclean' and 'configure'.

                    // 시간이 좀 걸립니다.


]# gmake

                            ...중략...

mips/lib -L/tmp/qtopia-core-opensource-src-4.3.4/lib -lts -lQtNetwork -lQtCore -lm -lrt -ldl -lpthread
gmake[2]: Leaving directory `/tmp/qtopia-core-opensource-src-4.3.4/demos/undo'
gmake[1]: Leaving directory `/tmp/qtopia-core-opensource-src-4.3.4/demos'

                    // 에러없이 이렇게 작업이 종료되면 정상입니다.
                    // 참고로 시간이 무지하게 걸립니다. 저 같은 경우 3시간이 넘네요.

]# gmake install

                            ...중략...

cp -f -R /tmp/qtopia-core-opensource-src-4.3.4/mkspecs/unixware-g++ /qt4/qt-mips/mkspecs/
cp -f -R /tmp/qtopia-core-opensource-src-4.3.4/mkspecs/win32-borland /qt4/qt-mips/mkspecs/
cp -f -R /tmp/qtopia-core-opensource-src-4.3.4/mkspecs/win32-g++ /qt4/qt-mips/mkspecs/
cp -f -R /tmp/qtopia-core-opensource-src-4.3.4/mkspecs/win32-msvc /qt4/qt-mips/mkspecs/
cp -f -R /tmp/qtopia-core-opensource-src-4.3.4/mkspecs/win32-msvc.net /qt4/qt-mips/mkspecs/
cp -f -R /tmp/qtopia-core-opensource-src-4.3.4/mkspecs/win32-msvc2005 /qt4/qt-mips/mkspecs/
]# 에러없이 끝났다면 설치까지 완료된 것입니다. /qt4/qt-mips 로 이동하여 타겟보드에 라이브러리를 전송하기 위해 압축파일을 생성합니다. ]# cd /qt4/qt-mips ]# tar zcvf /tmp/qt-lib-mips.tar.gz lib 타겟보드로 전송하기 위해 nfs 서버로 공유하는 디렉토리로 압축파일을 복사합니다. ]# cp qt-lib-mips.tar.gz /nfs

EZ 보드에서 작업

이제부터는 EZ 보드에서 작업하겠습니다. 개발 호스트의 nfs 공유 폴더를 마운트합니다.

]$ mount -t nfs -o nolock 192.168.10.51:/nfs /mnt/nfs
// 라이브러리 파일을 /qt4에서 


]$ cd qt4
]$ mk qt-mips
]$ cd qt-mips
]$ tar zxvf /mnt/temp/qt-lib-mips.tar.gz

qt 라이브러리까지 준비되었으니 샘플 프로그램이라도 실행해 봐야 겠지요. 그런데 문제가 있습니다. 바로 QT 라이브러리의 크기이죠. du 로 라이브러리 크리를 확인해 보시면 30M 나 되는 것을 보실 수 있습니다. 이러다 보니 샘플 프로그램을 EZ보드로 복사할 공간이 없습니다.

]$ du -s -h lib
30.4M   lib
]$ df           // EZ 보드에 여유 공간이 없습니다.
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/mtdblock2           56320     56272        48 100% /
192.168.10.51:/nfs     5586560   2546976   2751232  48% /mnt/temp

물론 이 상태에서도 개발 호스트의 nfs 공유 디렉토리에서 실행하셔도 되겠습니다만 공간을 확보하는 것이 좋겠습니다. 공간을 확보하는 방법은 여러가지가 있겠습니다만 우선은 사용하지 않는 폰트를 삭제하겠습니다.

]$ rm -rf /qt4/qt-mips/lib/fonts/wenquanyi_*

QT 데모 프로그램 실행

개발 호스트에 설치된 /qt4/qt-mips 디렉토리 안에 demo 디렉토리가 있습니다. 이 demo 디렉토리에 있는 데모를 실행해 봅니다. demo 전체가 소스를 포함해도 3.9M 정도 뿐이기 때문에 EZ 보드에 복사한 후에 실행하셔도 좋습니다.

// 먼저 Tslib 환경부터 잡아야 겠지요.

]$ source /qt4/tslib-mips/tslib.sh

]$ cd [데모 디렉토리 이동]
]$ ./affine/affine -qws     // 데모를 실행합니다.

아래는 데모 실행 모습입니다.

  • demo/affine

  • demo/mainwindow

  • demo/textedit

i