QT 기반의 윈도우 매니저인 큐토피아를 설치하는 과정을 소개한다. 여기서 알아두어야 할 것은 포팅을 하려는 것이 아니라, 일반 X86 머신에 설치를 하기 위함이다. 포팅을 원한다면, 관련 문서를 참고하기 바란다. 문서를 보면 알겠지만, 컴파일 과정이 포팅과정과 거의 흡사하다.
왜 X86 머신에 설치하려고 하는지 의하해할지도 모르겠다. 나의 개인적인 이유는 QT 프로그램을 포팅하기전에 X86 에 설치되어 있는 큐토피아에 실행해 볼 수가 있기때문이다. 이제 본격적인 컴파일에 들어가보자!!

컴파일하기

필요한 준비물들은 다음과 같다.

지금부터는 편의상 설치디렉토리를 /host 디렉토리로 하겠다. 이 디렉토리에 위에 받은 파일의 압축을 풀어서 준비해두기 바란다.
컴파일 작업은 아래와 같다. 여기서 주의할 것은 반드시 하나의 터미널에서 컴파일해야 한다. 그렇지 않으면, 환경변수들이 서로 맞지 않아서 컴파일 에러가 날 수 있다.

#cd /host/qtopia-free-1.7.0
#export QPEDIR=$PWD
#cd ..
#cd qt-2.3.7
#export QTDIR=$PWD
#export QTEDIR=$QTDIR
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
#./configure -qconfig qpe -qvfb -depths 4,8,16,32
#make sub-src
#cd ..
#cd qt-2.3.2
#export QTDIR=$PWD
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#./configure
#make
#make -C tools/qvfb
#mv tools/qvfb/qvfb bin
#cp bin/uic $QTEDIR/bin
#cd ..
#cd qtopia-free-1.7.0
#export QTDIR=$QTEDIR
#export QPEDIR=$PWD
#export PATH=$QPEDIR/bin:$PATH
#cd src
#./configure
#make
#cd ../..

마지막까지 에러없이 컴파일 되었다면, 성공이다. 이제 직접 실행해보는 일만 남았다.

실행하기

바로 실행하기전에 몇가지 환경변수를 세팅해주어야 한다.

#export QPEDIR=/host/qtopia-free-1.7.0
#export QTDIR=/host/qtopia-free-1.7.0
#export PATH=$QTDIR/bin:$PATH
#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
#qvfb &              // 여기서 qvfb 의 PATH 가 안잡혀있다면, qt-2.3.2/bin 에서 qtopia-free-1.7.0/bin 으로 복사
#export QTDIR=/host/qt-2.3.7
#qpe &

QT 프레임버퍼 창을 보면, 반가운(?) 큐토피아가 로딩되어 있을 것이다.

마치며

큐토피아를 실행할 때마다 많은 환경변수를 세팅해주어야 한다. 여간 번거러운 일이 아니다. -_-;
그래서 쉘 스크립트로 만들어서 간편하게 실행해보자!!
여기서는, .host 라는 이름으로 만든다.

export QPEDIR=/host/qtopia-free-1.7.0/
export QTDIR=/host/qtopia-free-1.7.0/
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
/host/qtopia-free-1.7.0/bin/qvfb -depth 16 &
export QTDIR=/host/qt-2.3.7/

실행한 뒤에 터미널에서

#qpe &

실행하면 된다. 스크립트에 바로 넣으려고 했지만, 제대로 실행이 안되는 문제가 있었다.

프로그램 설치하기

큐토피아를 설치하고 나면, 기본적으로 같이 설치되는 프로그램들이 꽤 있다. 하지만, 내가 직접 프로그래밍해서 만든 프로그램이나 다른 프로그램을 설치하기 위해서는 설치 방법을 알아야 한다.
큐토피아에서는 크게 두가지 설치방법이 있는데,

  1. 수동 설치(직접 소스 프로그램을 컴파일하는 경우)
  2. 자동 설치(ipkg 패키지를 이용하는 경우)

가 있다. 수동 설치의 경우에는 내가 직접 프로그램을 컴파일해서 설치하는 경우이고, 자동 설치는 ipkg 패키지를 이용하는 경우이다. 일단 비교적 간단한 자동설치 방법 부터 설명하도록 하겠다.

자동 설치의 장점이라고 한다면, 간편하게 프로그램 설치/삭제가 가능하다는 점이다. 현재 배포되고 있는 큐토피아 프로그램들은 모두 ipkg 패키지 형태로 되어 있기 때문에 많이 사용되는 방법이다.
일단 ipkg 패키지를 받았다면, ipkg 명령어를 이용해서 설치한다. 참고로 아래와 같은 옵션을 제공하고 있다.
마치 redhat 의 rpm 과 흡사하다.

#ipkg
ipkg: ipkg must have one sub-command argument
ipkg version 0.99.92
usage: ipkg [options...] sub-command [arguments...]
where sub-command is one of:
 
Package Manipulation:
        update                  Update list of available packages
        upgrade                 Upgrade all installed packages to latest version
        install <pkg>           Download and install <pkg> (and dependencies)
        install <file.ipk>      Install package <file.ipk>
        configure [<pkg>]       Configure unpacked packages
        remove <pkg>            Remove package <pkg>
        flag <flags> <pkg> ...  Flag package(s) <pkg>
         <flags>=hold,noprune
 
Informational Commands:
        list                    List available packages and descriptions
        files <pkg>             List all files belonging to <pkg>
        search <file>           Search for a package providing <file>
        info [pkg [<field>]]    Display all/some info fields for <pkg> or all
        status [pkg [<field>]]  Display all/some status fields for <pkg> or all
        download <pkg>          Download <pkg> to current directory.
        compare_versions <v1> <op> <v2>
                                  compare versions using <= < > >= = << >>
        print_architecture      prints the architecture.
        print_installation_architecture
        whatdepends [-A] [pkgname|pat]+
        whatprovides [-A] [pkgname|pat]+
        whatconflicts [-A] [pkgname|pat]+
        whatreplaces [-A] [pkgname|pat]+
                                prints the installation architecture.
 
Options:
        -A                      Query all packages with whatdepends, whatprovides, whatreplaces, whatconflicts
        -V <level>               Set verbosity level to <level>. If no value is
        --verbosity <level>      provided increase verbosity by one. Verbosity levels:
                                 0 errors only
                                 1 normal messages (default)
                                 2 informative messages
                                 3 debug output
        -f <conf_file>          Use <conf_file> as the ipkg configuration file
        -conf <conf_file>       Default configuration file location
                                is /etc/ipkg.conf
        -d <dest_name>          Use <dest_name> as the the root directory for
        -dest <dest_name>       package installation, removal, upgrading.
                                <dest_name> should be a defined dest name from
                                the configuration file, (but can also be a
                                directory name in a pinch).
        -o <offline_root>       Use <offline_root> as the root directory for
        -offline <offline_root> offline installation of packages.
        Force Options (use when ipkg is too smart for its own good):
        -force-depends          Make dependency checks warnings instead of errors
                                        Install/remove package in spite of failed dependences
        -force-defaults         Use default options for questions asked by ipkg.
                                (no prompts). Note that this will not prevent
                                package installation scripts from prompting.
        -force-reinstall        Allow ipkg to reinstall a package.
        -force-overwrite        Allow ipkg to overwrite files from another package during an install.
        -force-removal-of-dependent-packages
        -nodeps                 Do not follow dependences
        -recursive              Allow ipkg to remove package and all that depend on it.
        -t                      Specify tmp-dir.
        --tmp-dir               Specify tmp-dir.

설치해보자!!

#ipkg install test.ipk

이 방법은 터미널에서 설치하는 방법이고, 큐토피아 상에서 설치하는 방법이 있다.

'Setting → Software Packages → Install or Remove Software'

하면 된다.

이 방법은 약간 복잡한데, 나중에 프로그램을 직접 컴파일해서 설치하기 위해서는 반드시 알아두어야 한다.
소스 프로그램을 컴파일하는 과정은 다루지 않겠다.다른 관련 문서를 참고하기 바란다. 여기서는 컴파일이 되었다고 보고, 설명하도록 하겠다. 아래에서 $QPEDIR 은 큐토피아가 설치된 디렉토리를 가리킨다.

#cp example.desktop $QPEDIR/apps/Applications/   <- 큐토피아에 표시될 아이콘 정보
#cp Example.png $QPEDIR/pics/          <- 큐토피아에 표시될 아이콘 이미지
#cp example $QPEDIR/bin/               <- 실행될 실행파일
#cp example.html $QPEDIR/help/html/

위에서 각각의 디렉토리에 복사해주는 경로는 내가 생각하기에 큐토피아에서 아이콘과 실행파일이 위치하는 경로 인 것 같다.
.desktop 파일의 경우, 아이콘을 실행했을 때, 실행파일의 이름이나 화면에 표시될 이름 정보를 가지고 있다. 이 파일이 삭제될 경우 큐토피아에서 역시 삭제된다.

  • computer/embedded/qtopia_설치하기.txt
  • Last modified: 4 years ago
  • by likewind