본문 바로가기

라즈베리파이(RPI)

[버섯] 라즈베리 파이용 QT Embedded 개발 환경 구축하기


라즈베리 파이용

QT Embedded 개발 환경 구축하기


Created Date: 2014.04.01
Modified Date: 2014.04.17
revision 1

키워드 : QT, raspberrypi, rpi, QT Embedded

안녕하세요 버섯돌이 유재성입니다.

몇 달전에 라즈베리 파이에서 GUI를 해보겠다고 이것 저것 찾아보니...

QT Embedded에서 라즈베리를 지원한다는 소식을 접하고는 설치하기 위해 몇 주째 삽질을 엄청했었더랬죠...ㅜ.ㅜ;;;


워낙 모르는 분야고 요즘은 돌아서면 잊어 버리는지라 지금은 기억이 하나도 안나는군요.^^

당시에 글 쓰려고 준비했던 자료와 가이드 문서를 기반으로 기억을 살려서 작성하고 있지만

혹시라도 잘 못 된 정보가 있을 수 있으니 알려주시면 수정하도록 하겠습니다.


본 내용은 Qt 사이트에서 제공되는 설치 가이드(Installation Instructions)대로 진행됩니다.

http://doc.qt.digia.com/QtEnterpriseEmbedded/qtee-installation-guide.html


설치 가이드가 영어지만 자세하게 나와있으니 이해가 잘 안되는 부분은 설치 가이드를 보세요.*^_^*
Qt는 제 분야가 아닌지라 여기까지 하고 잠시 중단했지만 모쪼록 이번 기회에 많은 정보가 공유되어지길 바래봅니다.^^


1. 사전준비
Ubuntu 12.04 LTS 64Bit Version
다른건 다 필요 없고 우분투 12.04 LTS 64비트 버전이 필요합니다.
이때 가장 중요한건 리눅스 자신 없으면 사이트에 가셔서 무조건 새로 받아서 설치하세요~

다른건 다 쉬웠는데 2주 가량 삽질했던 원인중 하나가 기존에 설치된 우분투 12.04 LTS에서
QT를 설치하려니 초반부터 32비트 관련 오류가 발생해서 해결하기 위해 구글링하면서 날린 시간입니다.ㅜㅜ;;;
구 버전은 버그가 있다고 해서 마음을 비우고 새로 받아서 진행하니 한방에 설치가 되더군요.
ㅎㅎ..이 사실 하나만으로 더 이상의 내용은 굳이 필요 없을 정도로 설치 가이드가 잘 되어 있습니다.


Qt Enterprise Embedded 30일 평가판 신청
http://qt.digia.com/Try-Buy/Try-Now/ 사이트에 가셔서 빨간색으로 표시한 Qt Enterprise Embedded 30일 평가판을 신청 하세요.



30일 평가판을 신청하시면 아래 강좌에서 나오는 프로그램 다운로드 경로와 30일간 사용 가능한 Key가 발급됩니다.
해당 key가 있어야 설치 할 수 있으니 반드시 신청하시기 바랍니다.
바쁘다보니 신청 후 한참 뒤에 설치했는데 설치된 컴퓨터를 기준으로 30일인것 같더군요.

Qt Enterprise Embedded for 64bit Linux Workstation

2. 설치

64비트 버전이라서 "32-bit Support Libraries"를 설치해야 합니다.
이 과정에서 같은 12.04 버전이라고 해도 설치된 시기에 따라 제대로 안 깔리는 경우가 있더군요.
에러를 만나시면 그냥 새로 설치하세요.^^;;

32-bit Support Libraries 설치
> sudo apt-get install g++-multilib zlib1g:i386




VirtualBox 설치
Virtualbox 설치는 https://www.virtualbox.org/wiki/Linux_Downloads 에서 내려 받아도되는데
저는 아래 명령어를 이용해서 설치했습니다. (wget은 한 줄로 실행 하시기 바랍니다.)

> wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

echo "deb http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list


> sudo apt-get update


> sudo apt-get install virtualbox-4.3


설치가 완료되었으면 버추얼 박스를 실행 후 환경 설정을 해야 합니다.

리눅스에서 오랜만에 사용해 보니 설치보다 구동하는 방법을 몰라서 헤메였네요^^;;

실행 방법은 단순히 쉘에서 "virtualbox" 를 실행하면 됩니다.

> virtualbox



이제야 익숙한 화면이 나옵니다.^^



File > Preferences를 클릭해서 환경 설정 메뉴를 실행합니다.



좌측 창에서 "Network"를 선택 합니다.



"vboxnet0" 우측 상단에 보시면 "+ / - / 드라이버" 아이콘이 있습니다.
네트워크 정보가 없으면 "+" 아이콘을 클릭해서 Network를 하나 추가하시고
드라이버 아이콘을 클릭해서 속성 창을 실행 하세요.


IPv4 Address 와 그 아래이 Network Mask 정보를 위처럼 설정하세요.



"DHCP Server" 탭을 선택 후 위 처럼 설정하시기 바랍니다.


Qt Enterprise Embedded 설치
다운로드 받은 "qt-enterprise-embedded-linux-x64-1.5.0-online.run" 파일의 위치를 확인 하세요.


제 경우 웹에서 받았더니 "Downloads" 폴더에 받아졌네요^^
계졍밑에 보면 Downloads 폴더가 존재하는데 해당 폴더에 받아졌습니다.



웹에서 내려 받았기때문에 다운 받은 파일을 "chmod +x" 명령으로 실행 권한을 부여 합니다.
(각자 자기 다운 받은 파일이 존재하는 경로로 수정하시거나 해당 파일 위치에서 부여하세요.)

초보분들은 너무 어려우면 그냥 쉘하나 띄우신 뒤 wget 명령으로 받으시면 됩니다.

그리고 그 폴더에서아래처럼 실행하시면 됩니다.(쉽죠?)
> chmod +x qt-enterprise-embedded-linux-x64-1.5.0-online.run

실행 권한이 생겼으니 아래 처럼 실행합니다.
> ./qt-enterprise-embedded-linux-x64-1.5.0-online.run



별것 없으니 계속 진행하세요~



별것 없으니 계속 진행하세요~



드디어 중요한 부분이 왔습니다.^^;;



사용하고 싶은 버전을 선택하면되는데 너무 많이 선택하시면 엄청 오래 걸립니다.
이중에서 눈여겨 보셔야 할 부분은 빨간색으로 표시한 부분입니다.
"Qt Enterprise Embedded"에 보시면 "Raspberry Pi"가 존재합니다.
Qt 5.2.x와 Tools, 그리고 Qt Enterprise Embedded의 "Raspberry Pi"는 필수로 선택 하시기 바랍니다.




별것 없으니 계속 진행하세요~



별것 없으니 계속 진행하세요~



드디어 설치가 진행되는군요.




기다림만이 답입니다.*^_^*



드디어 설치가 종료되었습니다.*^_^*V




임베디드 작업을 위해 기본 설치이후 추가 작업에 대한 친절한 가이드 문서가 실행됩니다.^^


 

 Qt Creator 평가판의 실행 모습입니다.


 

3. SD카드 셋팅(Boot2Qt 설치)


SD카드에 라즈비안을 설치했듯이 SD카드에 Boot2Qt를 설치하도록 하겠습니다.
컴퓨터에 sd카드를 삽입 후 lsblk -d 명령을 실행합니다.
> lsblk -d



출력되는 목록중 RM부분을 보시면 "1"로 표시되는 장치중에 SD카드가 있을 것입니다.
제 경우 빨간색으로 표시한 8GB의 sdb 장치가 SD 메모리입니다.
자신의 SD카드에 해당하는 NAME을 확인하시기 바랍니다.

이 메모리 카드를 umount 명령으로 마운트를 해제합니다.
"/dev/sdb" 부분에서 "sdb" 부분을 자신의 SD카드가 마운트된 이름으로 변경해서 실행하세요.
*주의* 잘 못 하면 엉뚱한 HDD가 날아 갈 수 있으니 신중하게 확인하세요.

아래 명령을 실행합니다.
> sudo Boot2Qt-2.x/raspberrypi-eLinux/images/deploy.sh /dev/sdb



다시한번 SD카드가 맞는지 확인 후 "y"를 선택 해 주세요~



SD카드 준비가 끝났습니다.^^
Boot2Qt가 설치되었으니 이제부턴 라즈베리로 부팅 후 원격에서 개발된 프로그램을 라즈베리에 실시간 전송이 가능합니다.


4. 환경 설정
이제 Qt Creator에서 개발된 내용을 Boot2Qt를 이용해서 라즈베리 파이에 전송하기 위한 타겟 환경을 설정합니다.

먼저 라즈베리에 SD카드를 꼽고 부팅합니다.



Qt로고가 보이면서 부팅이되야 정상입니다.^^



잠시 후 Boot to Qt 화면이 나옵니다.
마우스등을 이용해서 화면을 좌/우로 이동하면서 기능들을 테스트 해 보세요.^^;;



IP 설정을 위해 현재 제일 중요한 부분은 "Launcher Settings" 메뉴입니다.
해당 메뉴를 찾으세요.



잘 보시면 위 처럼 Hostname과 라즈베리에 할당된 IP를 확인 할 수 있습니다.
반드시, 할당된 IP주소를 확인 하시기 바라며 IP주소를 종이에 메모 해 두세요.^^



제 경우 강좌를 보셨으면 아시겠지만 Hostname을 즐겨쓰는지라 호스트명도 dev4unetpi1으로 설정했습니다.
Change hostname을 클릭하면 바로 반영이 안되고 Reboot해야 변경되었던걸로 기억됩니다.
라즈베리쪽의 설정은 이것으로 끝입니다.^^

이젠 개발 툴에서의 Target 설정이 남았습니다.


좌측 상단의 "Dash Home"에서 검색어로 "qt"를 입력하시면 Qt Creator를 찾을 수 있습니다.
해당 아이콘을 찾아서 실행하세요~



정상적인 경우 위처럼 Qt Creator가 실행됩니다.



Tools 메뉴의 Options..를 선택합니다.



좌측 창에서 "Devices"를 선택하고 우측의 "Add" 버튼을 클릭합니다.



"Boot2Qt Device"를 선택 후 "Start Wizard"를 클릭합니다.



Device name에는 작업 한 Qt파일을 반영할 라즈베리 파이의 적절한 이름을 입력하시고...
"Device address"부분에는 방금전에 확인한 IP주소를 적습니다.
IP주소가 자주 변경되면 hostname을 이용하셔도 됩니다.
Finish 버튼을 클릭하면 Devices에 장치가 추가됩니다.



Device 선택 박스에서 방금전에 추가한 장치를 선택 합니다.(제경우 dev4unetpi1)
위 처럼 제가 등록한 Name과 Serial number에 IP주소가 할당되었습니다.



좌측 창에서 "Build & Run"을 선택 후 우측 창에서 "Kits" 탭을 선택합니다.



"Boot2Qt 2.0.0 eLinux Raspberry Pi Kit"을 선택 하시고 Device에는 좀전에 추가한 라즈베리 장치를 선택하면 끝입니다.*^_^*


5. 예제
드디어 길다면 길고 짧다면 짧은 여정의 끝이군요.
대 다수의 언어에서 항상 하는 초보용 Hello~ 시리즈가 왔습니다.



Qt Creator의 File 메뉴에서 "New File or Project.."를 선택합니다.



우측 상단의 template는 "Boot2Qt/Templates"를 선택 하시고,
좌측 창의 Projects는 Applications를 선택 후 Qt Quick Application을 선택 한 뒤 Choose.. 버튼을 클릭합니다.



개발 할 프로젝트의 이름과 저장될 폴더를 지정후 Next를 클릭 합니다.



Qt Quick 2.0 선택 후 Next~



Next~



Finish~~



와우~ 우리는 몇 번의 클릭만으로 "Hello World"가 실행되는 프로그램(?)을 만들었습니다.



좌측 하단의 화살표를 클릭하시면 빌드 후 에러가 없다면 지정된 장치(라즈베리 파이)에 디플로이 됩니다.
잠시 후 라즈베리 파이와 연결된 모니터에 "Hello World"가 출력됩니다.^^
스크립트가 직관적이니 항목들을 실시간으로 바꾸면서 빌드해보시면 도움이 될 것입니다.



간단히 Hello World대신 Hello Oros를 입력 후 빌드 하면 아래 처럼 됩니다.



와우~~ 새하얀 대륙의 중앙에 유아독존 오로스를 반기는 문구가 보이는군요.*^_^*

저는 Qt를 몰라서 프로젝트 생성하면서 제공된 샘플들을 빌드 해 봤었는데..
간단한 기능을 파악하시려면 공개된 샘플들도 빌드 해 보시면서 익숙해지시기 바랍니다.

모니터가 없어서 라즈베리에 TFT-Shield를 장착해서 편하게 개발 하려고 했는데..
풋.. 생각해보니 단순 모니터가 아닌 SPI 방식이의 Shield라서 Boot2Qt가 인식 할 수 있도록 해줘야 하는것 같은데
나무꾼님이 TFT-Shield를 사용하는 방법을 알려 주실거라 믿습니다.*^^*V

고생한 만큼 본 내용이 모쪼록 도움이 되기를 바라며, QT에서의 GUI 개발관련 많은 정보가 공유되기를 기대해 봅니다.^^


[참고자료]

[1] Installation Instructions

[2] Qt Enterprise Embedded for 64bit Linux Workstation

[3] Qt 5.1.1 Sources (for manual installation)

[4] 30일 평가판 다운로드 신청

End.

written by 버섯돌이(dev4unet)

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리 3.0 Unported 라이선스에 따라 이용할 수 있습니다.