본문 바로가기

Linux

Ubuntu 12.04 Qt Embedded 개발 환경 만들기.


Windows에서 VM으로 Ubuntu를 올리고. 개발에 필요한 환경을 구축하며 얻은 노하우를 여기에 기록한다.


우선 필요한 파일들은 다운로드 한다.


버추얼 박스

https://www.virtualbox.org/


우분투 (12.04)

http://www.ubuntu.com/


QT (4.8.4 for Linux / X11, Qt Creator 2.7.1 for linux)

http://qt-project.org/downloads


툴체인(7zip 분할)

arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.1 arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.2 arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.3 arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.4 arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.5 arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.6 arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.7 >arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2.8




버추얼 박스를 설치하고 새로운 운영체제 저장소를 만들어 Ubuntu를 설치한다. 이 과정은 인터넷에서도 쉽게 찾을수 있으니 따로 기록하지 않겠다.


우분투를 설치 완료하고. 업데이트를 기본적으로 해주는데, 요즘 우분투 서버가 느려서 그런지 업데이트가 오래걸린다.


이럴때는 다음과 같이 작업하고 업데이트한다


 # sudo vi /etc/apt/sources.list

:%s/kr.archive.ubuntu.com/ftp.daum.net/

:wq

# sudo apt-get update


업데이트 서버를 다음으로 수정해주어 좀더 빠르게 업데이트 할 수 있다.

이후 버추얼머신 게스트에디션을 설치를 하면 마우스휠 및 자연스러운 해상도 조절을 할수 있게 된다.

하지만 이때 버추얼박스 설치폴더에 있는 게스트에디션으로 설치하면 ubuntu를 다시 설치해줘야되는 불상사가 발생함으로 다음과 같이 apt를 이용하여 설치해주자. (필자는 이 방법을 몰라서 몇차례 우분투를 재설치했다.)


# sudo apt-get update 

# sudo apt-get install virtualbox-ose-guest-x11


윈도우에서 우분투로 파일을 넘기기 위해선 공유폴더를 설정해 주어야 한다. 예를들어 윈도우의 '내문서' 폴더를 우분투에 공유시키기 위해서는 다음과 같이 진행한다.


우선 버추얼박스에서 공유폴더를 설정해주고.




우분투에서는 다음과 같이 작업해준다.

# sudo  gedit /etc/rc.local 

(문서 편집창이 뜨면 다음과 같이 mount 문장을 추가해주고 파일을 저장한다.)

sudo mount -t vboxsf My_Documents /media/sf_My_Documents

exit 0


위 mount명령어를 우분투가 켜지면서 rc.local을 실행해주어 자동으로 마운트가 된다.

그리고 공유폴더를 /home/(사용자)/ 이쪽으로 링크를 걸어주어 사용자의 편의를 도모한다.

# sudo ln -s /media/sf_My_Documents /home/(사용자)/Windows_Documents 


여기까지 진행하면 기본적인 우분투를 설치한것이다. 나중을 위하여 스냅샷을 찍어두면 나중에 다시 우분투를 설치하는 불상사를 막을수 있다. (필자는 이 방법을 몰라서 몇차례 우분투를 재설치했다. 2)


이제 Qt 컴파일을 위한 환경을 만들어준다.

# sudo apt-get install build-essential libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev  


미리 받아둔 qt-everywhere-opensource-src-4.8.4.tar.gz 파일을 우분투로 옮긴다. 필자는 /home/(사용자)/Install/Qt 의 경로에 위치 시켰다.


우선 Qt를 x11용으로 설치를 해주자. 

# cd /home/(사용자)/Install/Qt/  

# gunzip qt-everywhere-opensource-src-4.8.4.tar.gz

# tar xvf qt-everywhere-opensource-src-4.8.4.tar

# cd qt-everywhere-opensource-src-4.8.4

# ./configure 

o

yes

# make -j 5 (쿼드 코어는 -j 5, 듀얼은 -j 3 정도가 적당하다.)

# make install


configure에서 make install까지 작업은 시간이 좀 소모되는 작업이다. 혹여나 자기 컴퓨터 환경이 특이하다고 생각하면 ./configure 옵션을 보고 http://qt-project.org/doc/qt-4.8/configure-options.html 설정해주자.


특별한 문제가 없다면 여기까지 설치가 잘 될것이다. 컴파일하는데 문제가 발생한다면 인터넷을 검색하여 문제를 해결하자. 


실패하고 다시 configure할때에는 다음 명령어를 적절하게 실행하자.

# make confclean 

또는

# make clean


설치가 완료되면 /usr/local/Trolltech/Qt-4.8.4 경로에 설치된 파일들을 확인할수 있을것이다.

잘 설치가 됬는지 구체적으로 확인하고 싶다면. Qt Creator를 설치하여 셈플 프로젝트를 실행해보자.


 qt-creator-linux-x86-opensource-2.7.1.bin 설치하기

# cd  /파일경로 

# sudo chmod +x qt-creator-linux-x86-opensource-2.7.1.bin

# sudo ./qt-creator-linux-x86-opensource-2.7.1.bin



이제 embedded arm Qt 환경을 만들어주자.


우선 이 페이지에 첨부한 툴체인을 7zip을 이용해 합치고 우분투로 옮겨준다. (압축도 풀자.)

필자는 /home/(사용자)/Install/ToolChain/arm-2008q3 에 압축을 풀어두었다.


PATH를 등록하여 컴파일할때 gcc를 사용할수 있게하자.

# sudo ln -s /home/(사용자)/Install/ToolChain/arm-2008q3 /usr/local/arm/arm-2008q3 

# sudo gedit /etc/profile

 (문서 편집창이 뜨면 맨 아래 추가해준다)

export PATH=$PATH:/usr/local/arm/arm-2008q3/bin

 (저장, 종료)

# source /etc/profile



qt에서 컴파일할때 이 gcc를 사용하도록 설정을 해줘야한다. 

/home/(사용자)/Install/Qt/qt-everywhere-opensource-src-4.8.4/mkspecs/qws/linux-arm-g++ 디랙토리에 [qmake.conf]파일을 다음과 같이 수정한다.

# modifications to g++.conf 

QMAKE_CC                = arm-none-linux-gnueabi-gcc

QMAKE_CXX               = arm-none-linux-gnueabi-g++

QMAKE_LINK              = arm-none-linux-gnueabi-g++

QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++

# modifications to linux.conf

QMAKE_AR                = arm-none-linux-gnueabi-ar cqs

QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy

QMAKE_STRIP             = arm-none-linux-gnueabi-strip



이제 embedded QT를 설치하자. 경험으로는 루트권한을 획득하고 작업을 하는게 안전하다.

# sudo -i  

# cd /home/(사용자)/Install/Qt/qt-everywhere-opensource-src-4.8.4

# make confclean

# ./configure -prefix /usr/local/Trolltech/Qt-4.8.4-embedded -xplatform qws/linux-arm-g++ -embedded arm -little-endian -no-neon -release -no-largefile -no-accessibility -no-qt3support -qt-zlib -qt-libpng -no-libmng -qt-libjpeg -no-libtiff -no-nis -no-cups -qt-freetype -depths 16,24,32

o

yes

# make -j 5

# make install


설치를 완료하고.

Qt Creator의 메뉴 Tools>Options>Build & Run 에서 Kits, Qt Versions, Compilers에 GCC와 qmake를 추가하여 컴파일 환경을 만들어주면 Qt 환경설정 작업이 끝난다.


마지막으로 팀원간 공동 작업을 위한 Rabbitvcs 설치하자. (Windows의 TortoiseSVN과 가장유사하다.)

# sudo add-apt-repository ppa:rabbitvcs/ppa

# sudo apt-get update

# sudo apt-get install rabbitvcs-core rabbitvcs-nautilus3


# nautilus -q


위 명령어로 설치하면 비교도구인 meld까지 설치가 된다. 


'Linux' 카테고리의 다른 글

PuTTY  (0) 2013.03.07