QT-Embedded와 GTK+의 포팅■ 사용환경 : Fedora 6■ QT-Embedded의 활용에는 반드시 QT/X11,QT/Embedded(host), Qtopia를 모두 설치해야 하는 것은 아니다. 실제 타켓 보드에는 QT/Embedded를 설치하면 생성되는 lib 디렉토리의 파일만 복사해 주면 되기 때문에 QTopia가 필요 없고, 대신에 PC에서 디버깅 하기 위한 QT/X11과 임베디드 용으로 컴파일하기 위한 QT/Embedded만 필요하다.■ 일단 QT/X11을 설치해야 하는데, QT/X11의 경우 ftp://ftp.trolltech.com에서 받아 설치하는 것 보다는 페도라의 패키지 관리자를 이용해서 설치하는 것을 권장한다.(처음 페도라6을 설치할 때 옵션으로 선택해서 같이 설치하는 것이 가능하며, 혹시 이미 페도라6을 설치한 이후라면 yum을 통해 자동으로 설치가 된다.■ 필요 파일ftp://ftp.trolltech.com - /qt/source/qt-embedded-free-3.3.8.tar.gzhttp://e2fsprogs.sourceforge.net E2fsprogs Ext2 Filesystem Utilities - e2fsprogs-1.40.2.tar.gzftp://ftp.scarlet.be - pub/freeware/SOURCES/jpeg-6b.tar.gzhttp://forum.falinux.com/zbxe/?mid=ToolChain arm-toolchain-3.4.3.tar.gz■ 설치 과정툴체인 : 리눅스의 / 위치에 arm-toolchain-3.4.3.tar.gz 파일을 옮겨 놓고 압축을 푼다.]# tar xvfz arm-toolchain-3.4.3.tar.gz■ QT의 설치: /qt에 설치함]# cd / AR = arm-linux-ar rcAR2 = ranlib -> AR2 = arm-linux-ranlib■ 설치]# make]# make install-lib■ 환경파일을 생성해두면, QT-Embedded 컴파일시 유용하게 사용 가능하다.]# cd /qt]# vi .qte#!/bin/bashexport QTDIR=/qt/qte-3.3.8-armexport PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH■ QT-Embedded 설치 : 라이브러리를 호스트와 공유하는 방식으로 설치]# source /qt/.qte]# cd $QTDIR/bin]# cp /usr/lib/qt-3.3/bin/uic .]# cd ..]# ./configure -embedded arm -system-jpeg -shared -thread -no-cups -no-ipv6 -qvfb -depths 16라이센스에 yesBuilding on: linux-x86-g++-sharedBuilding for: linux-arm-g++-sharedThread support.... noConfiguration..... qconfig-qpe.h]# make:Note: be sure to set $QTDIR to point to here or to whereveryou move these directories.Enjoy! - the Trolltech teammake[1]: Leaving directory `/qt/qte-arm']# cd lib]# file libqte.so.2.3.10libqte.so.2.3.10: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped-> 이렇게 ARM 용 파일이 만들어 졌다면 완료된 것이다.arm용 qte에서도 jpeg 와 uuid 라이브러리를 사용할 수 있도록 라이브러리를 복사한다.]# cp /usr/arm-linux/lib/libuuid.* .]# cp /usr/arm-linux/lib/libjpeg.* .]# cp /usr/arm-linux/lib/libstdc++.so.6 .■ NFS의 설정NFS는 Network File System의 약자로, 호스트의 특정 디렉토리와 보드의 특정 디렉토리를 네트워크로 연결하여 서로 공유하는 방법을 말한다. static설정으로 QT-Embedded를 컴파일하고 응용 프로그램을 컴파일 할 경우 NFS는 사용할 필요가 없으나, 실행 파일 자체의 크기가 너무 커져버리므로 대개 NFS를 통해 호스트로부터 라이브러리를 공유하여 사용한다.Host(IP:192.168.1.1)mkdir /nfs_sharehost]# vi /etc/exports/nfs_share 192.168.1.2(rw,no_root_squash)]# service nfs restartTarget(IP:192.168.1.2)]# mkdir /mnt/nfs]# mount -t nfs 192.168.1.1:/nfs_share /mnt/nfs■ 보드에서의 QT 프로그램 실행/app/qt/lib로 QT/Embedded lib를 복사하기로 함. QT/Embedded의 lib 디렉토리를 통째로 타켓 보드에 복사하면 되는데, cp 명령을 사용하면 링크파일까지 일반 파일로 복사되기 때문에 용량이 무척 커지게 된다. 그러므로 반드시 tar를 이용하여 압축한 후에 타겟 보드에서 풀기를 한다.]# tar zcvf /nfs_share/qt-arm-lib.tar.gz /qt/qte-3.3.8-arm/lib이제 arm-board 를 부팅하고 Host PC와 nfs로 연결한다.[이 부분부터는 보드에서의 작업 내용이다.]]$ mount -t nfs -o nolock 192.168.10.50:/nfs_share /mnt/nfs]$ mkdir /app/qt]$ cd /app/qt]$ tar zxvf /mnt/nfs/qt-arm-lib.tar.gzQT 프로그램을 위해 환경 설정을 한다.]$ export QTDIR=/app/qt ]$ export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH보드에서 예제 프로그램을 실행하겠다. QT/Embedded가 설치된 디렉토리 안을 보면example/hello 디렉토리에 이미 hello 실행파일이 있다.이 실행 파일을 공유 폴더에 복사한 후에 arm 보드에서 /mnt/nfs 디렉토리에서 실행한다.]$ /mnt/nfs/hello -qws■ QT-Embedded 설치 : 라이브러리를 static으로 컴파일]# source /qt/.qte]# cd $QTDIR/bin]# cp /usr/lib/qt-3.3/bin/uic .]# cd ..]# ./configure -embedded arm -system-jpeg -static -thread -no-cups -no-ipv6 -qvfb -depths 16라이센스에 yesBuilding on: linux-x86-g++-sharedBuilding for: linux-arm-g++-sharedThread support.... noConfiguration..... qconfig-qpe.h]# make:Note: be sure to set $QTDIR to point to here or to whereveryou move these directories.Enjoy! - the Trolltech teammake[1]: Leaving directory `/qt/qte-arm']# cd lib]# file libqte.so.2.3.10libqte.so.2.3.10: ELF 32-bit LSB shared object, ARM, version 1 (ARM), not stripped-> 이렇게 ARM 용 파일이 만들어 졌다면 완료된 것이다.arm용 qpe에서도 jpeg 와 uuid 라이브러리를 사용할 수 있도록 라이브러리를 복사한다.]# cp /usr/arm-linux/lib/libuuid.* .]# cp /usr/arm-linux/lib/libjpeg.* .]# cp /usr/arm-linux/lib/libstdc++.so.6 .이후 nfs를 통한 라이브러리의 공유 과정 없이 이미 만들어진 hello실행 파일을 보드에 복사해서 실행하는 것 만으로 Hello World 예제를 실행할 수 있다. 단 이 경우엔 실행 파일의 크기가 커져서 만약 시리얼을 통해 파일을 전송한다면 시간이 제법 오래 걸리게 된다.
{흐르는 강물처럼{(A River Runs Through It...)제작년도 : 1992년감독 : Robert Redfor각본 : Richard Friedenberg배우 : Craig Sheffer, Brad Pitt, Tom Skerritt,Brenda Blethyn, Emily Lloyd1. 영화 줄거리1900년대 초, 스코틀랜드 출신 장교로 장로교 목사 리버런드 맥클레인(Tom Skerritt)은 아들 노만(Craig Sheffer)과 폴(Brad Pitt), 부인(Brenda Blethyn)과 함께 몬타주 강가의 교회에서 살면서 낚시를 종교와같은 정도로 소중하게 생각하고 즐긴다. 그의 아들들도 아버지로부터낚시를 배워 어려서부터 낚시를 좋아한다. 장성한 맏아들 노만은 동부대학에 들어가 문학을 공부하고 동생 폴은 고향에서 신문기자로 활동하며낚시를 인생의 최고 목표처럼 여기면서 산다. 신중하고 지적인 노만과동적이고 자유분방한 폴은 어린 시절부터 형제애가 깊으면서도 경쟁적인관계다. 공부를 하고 돌아온 노만 앞에서 보이는 폴의 낚시 솜씨는 예술의 경지에까지 도달해 있었다. 고향에 돌아온 기쁨과 동생에 대한 경쟁심을 동시에 느끼던 노만은 사랑이라는 또다른 경험을 하게 된다. 제시(Emily Lloyd)와의 사랑이 무르익던 즈음 노만은 시카고 대학으로부터 문학교수로 채용되었다는 통보를 받는다. 온가족의 기쁨도 잠시, 자유분방한 생활을 하며 포커를 즐기던 폴이 어느날 갑자기 길에서 폭행당해 사망하자 아버지와 노만은 사랑하는 사람을 잃은 상실감에 깊은 고뇌를 느낀다. 아버지 자신이 죽을때까지 사랑하던 아들 폴을 못잊어 마지막 설교에서 "완전히 이해는 못해도 완벽한 사랑을 할수는 있다"는 말을 남긴다.사랑하는 사람이 모두 죽고 이제 혼자 낚시를 하며 가족과 인생 그리고자기 가족의 일생을 지배한 낚시에 대한 회상을 하나로 묶어 달관한 듯한인생의 상념에 젖어 변함 없이 흐르는 강을 바라보면서 넋을 잃는다.2. 장면에 해당하는 대사 및 해석I remember the last sermon I heard him give not long before hisown death.부친께서 돌아가시기 직전의 마지막 설교를 나는 기억한다.Each one of us here today will, at one time in our lives우리는 누구나 일생에 한번쯤은look upon a loved one who is in need and ask the same question.사랑하는 사람이 불행에 처한 걸 보고 이렇게 기도합니다."We are willing to help, load""기꺼이 돕겠습니다, 주님"But what, if anything, is needed그러나 필요할 때It is true we can seldom help those closet to us.사실 우리는 가장 가까운 사람을 거의 돕지 못 합니다.Either we don't know what part of ourselves to give or, more oftenthan not, the part we have to give is not wanted.무엇을 도와야 할지도 모르고 있으며, 때로는 그들이 원치 않는도움을 줍니다.And so it is thpse we live with and should know, who elude us.이렇게 서로 이해 못하는 사람과 산다는 걸 알아야 합니다.But we can still love them.그렇다해도 우린 사랑할 수는 있습니다.We can love completely without complete understanding.완전한 이해 없이도 우리는 완벽하게 사랑할 수 있습니다.3. 장면 선정 이유 및 분석영화 전체 이야기를 독백의 회상식으로 끌어가는 폴, 그의 자유분방한동생과 목사인 아버지, 어머니를 중심으로 펼쳐지는 이 이야기는 낚시를통한 아버지와 아들간, 형제간의 유대를 잘 보여주고 있다. 고독을 즐기는 맛에 한다는 낚시처럼 그들 역시 많은 말을 하진 않지만 서로를 잘 이해하고 있다. 거기에 어우러진 사랑과, 가정 그리고 정말 말 그대로인 금빛 물결..마지막엔 독백의 화자가 등장한다. 다 늙은 그는 혼자 예의 그물에 낚시대를 드리우며 말한다.'다른 사람을 완전히 이해할수는 없지만, 완전히 사랑할수는 있다'고 말