목차
1.Ubuntu18.04.4 / Raspbian-stretch 다운로드
2.VMWare에 우분투 설치
3.라즈베리파이3 Raspbian 설치
4.IN RaspberryPi (라즈베리파이 설정)
5.IN Your Computer (Ununtu18.04) (PC설정)
#개발환경
-Ubuntu18.04.4 – 64bit
-라즈베리파이3 Model B
-Qt 5.6.2
-raspbian-stretch(2018-10-09)
1. Ubuntu18.04.4 / Raspbian-stretch 다운로드
https://ubuntu.com/download/desktop
Download Ubuntu Desktop | Download | Ubuntu
Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.
ubuntu.com
http://downloads.raspberrypi.org/raspbian/images/raspbian-2018-10-11/
Index of /raspbian/images/raspbian-2018-10-11
downloads.raspberrypi.org

2. VMWare에 우분투 설치

2.1 Create a New Virtual Machine 클릭
2.2 Create a New Virtual Machine 클릭
2.3 우분투 설치 파일 선택
2.4 Next 클릭

2.5 각 항목 입력 후 Next
2.6 Next
2.7 디스크 사이즈 선택 후 Next

2.8 Costumize Hardware 클릭
2.9 Memory 4GB 변경 (사용자 옵션)
2.10 Processor cores : 4 로 변경 (사용자 옵션)
2.11 Next 클릭
2.12 Finish 클릭
2.13 완료
3. 라즈베리파이3 ß Raspbian 설치

3.1 Win32 Disk Imager 실행
3.2 라즈비안 img 불러오기
3.3 Write 클릭
3.4 완료
4. IN RaspberryPi
4.1라즈베리파이 업데이트 진행
~$ sudo rpi-update (라즈베리파이 FW 업데이트)
~$ sudo reboot
★업데이트를 안 하면 /usr/lib/arm-linux-gnueabihf 내의 libEGL.so 및 libGLESv2.so 파일이 생성되지 않음(반드시 해야함)

업데이트 후 해당 내용 확인
4.2 필수 라이브러리 설치
~$ sudo nano /etc/apt/sources.list

- 해당 파일에서 deb-src 라인의 주석을 해제하고, 다음을 진행한다.
~$ sudo apt-get update
~$ sudo apt-get build-dep qt4-x11
~$ sudo apt-get build-dep libqt5gui5
~$ sudo apt-get install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0
4.3 배포 라이브러리를 설치할 폴더 생성
~$ sudo mkdir /usr/local/qt5pi
~$ sudo chown pi:pi /usr/local/qt5pi
-폴더 생성하고 소유권 변경
-이 폴더에 PC에서 빌드한 Qt 라이브러리들을 복사 예정
4.4 라즈베리파이 라이브러리 수정
~$ sudo mv /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0 /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0_backup
~$ sudo mv /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0 /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0_backup
~$ sudo ln -s /opt/vc/lib/libEGL.so /usr/lib/arm-linux-gnueabihf/libEGL.so.1.0.0
~$ sudo ln -s /opt/vc/lib/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.0.0
~$ sudo ln -s /opt/vc/lib/libbrcmEGL.so /opt/vc/lib/libEGL.so
~$ sudo ln -s /opt/vc/lib/libbrcmGLESv2.so /opt/vc/lib/libGLESv2.so
~$ sudo ln -s /opt/vc/lib/libEGL.so /opt/vc/lib/libEGL.so.1
~$ sudo ln -s /opt/vc/lib/libGLESv2.so /opt/vc/lib/libGLESv2.so.2
4.5 SSH 설정
~$ sudo raspi-config

-Interfacing Options

-SSH 선택 후 엔터

Yes 선택 후 엔터 -> SSH Enable 완료
4.6 SSH권한 설정 (sshd_config 수정)
~$ sudo nano /etc/ssh/sshd_config

PermitRootLogin yes
4.7 재부팅
~$ sudo reboot
Raspberry Pi 3 설정 완료
5. IN Your Computer (Ununtu18.04)
5.1 초기 설정
패키지 인덱스 정보 업데이트 : apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list 에서 사용할 패키지의 정보를 얻는다.
~$ sudo apt-get update
설치된 패키지 업그레이드 : 설치되어 있는 패키지를 모두 새 버전으로 업그레이드함.
~$ sudo apt-get upgrade
5.2 작업 폴더 생성 / 툴체인 설치
~$ sudo apt install git (git설치)
~$ mkdir ~/raspi
~$ cd ~/raspi
~$ git clone https://github.com/raspberrypi/tools
raspberrypi/tools
Contribute to raspberrypi/tools development by creating an account on GitHub.
github.com
5.3 sysroot 폴더 생성 / 동기화
~$ mkdir sysroot sysroot/usr sysroot/opt
-컴파일러가 헤더 및 라이브러리를 찾는 폴더
- 라즈베리파이의 /lib 폴더를 -> PC의 sysroot 폴더에 복사
- 라즈베리파이의 /usr/include 폴더를 -> PC의 sysroot/usr 폴더에 복사
- 라즈베리파이의 /usr/lib 폴더를 -> PC의 sysroot/usr 폴더에 복사
- 라즈베리파이의 /opt/vc 폴더를 -> PC의 sysroot/opt 폴더에 복사
~$ rsync -avz pi@raspberrypi_ip:/lib sysroot
~$ rsync -avz pi@raspberrypi_ip:/usr/include sysroot/usr
~$ rsync -avz pi@raspberrypi_ip:/usr/lib sysroot/usr
~$ rsync -avz pi@raspberrypi_ip:/opt/vc sysroot/opt
rsync 는 동기화를 통해서 간편하게 보드와 PC간 파일을 주고받을 수 있도록 하는 기능, SD카드 뽑아서 직접 파일 옮겨도 됨.
5.4 심볼릭 링크 상대 조정
( RaspberryPi<->Ubuntu 원본 파일의 위치 정보를 가리키는 파일, 원본 파일이 수정되거나 삭제될 경우 심볼릭 파일도 수정되거나 삭제된다.)
~$ wget https://raw.githubusercontent.com/riscv/riscv-poky/master/scripts/sysroot-relativelinks.py
~$ chmod +x sysroot-relativelinks.py
~$ ./sysroot-relativelinks.py sysroot
5.5 Qt 설치
~$ cd ~/raspi
~$ wget http://linorg.usp.br/Qt/archive/qt/5.6/5.6.2/single/qt-everywhere-opensource-src-5.6.2.tar.gz
~$ tar xvf qt-everywhere-opensource-src-5.6.2.tar.gz
linux-arm-gnueabi-g++를 linux-arm-gnueabihf-g++이름으로 복사.
~$ sudo cp -R qt-everywhere-opensource-src-5.6.2/qtbase/mkspecs/linux-arm-gnueabi-g++ qt-everywhere-opensource-src-5.6.2/qtbase/mkspecs/linux-arm-gnueabihf-g++
qmake.conf에 있는 arm-linux-gnueabi- 문자열을 arm-linux-gnueabihf-로 변경.
~$ sudo sed -i -e 's/arm-linux-gnueabi-/arm-linux-gnueabihf-/g' qt-everywhere-opensource-src-5.6.2/qtbase/mkspecs/linux-arm-gnueabihf-g++/qmake.conf
5.6 Qt 빌드
~$ cd qt-everywhere-opensource-src-5.6.2
~$ ./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript -skip qtdeclarative -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm

EGLFS, EGLFS Raspberry Pi ----- yes 인지 확인

(./qtbase/mkspecs/devices 를 참고)
Qt 5.6.2는 라즈베리파이 3이지만 –device linux-rpi-g++
옵션으로 입력.
-skip 인수를 사용하여 문제가 있거나 시간이 많이 걸리는 모듈의 컴파일을 생략할 수 있음
-skip qtwayland qtlocation qtscript qtdeclarative 모듈의 컴파일은 생략함.
컴파일 완료 후 ERROR LOG 없는지 확인 후
~$ make -j4 (-j4 생략 가능 or vmware core최대수)
~$ make install
-j4 옵션은 코어 4개를 사용하여 병렬 처리
5.7 완료된 결과를 Raspberry Pi3 에 복사
~$ rsync -avz qt5pi pi@raspberrypi_ip:/usr/local
PC에서 빌드 및 모두 완료된 qt5pi 폴더 안의 내용을 라즈베리파이에서 만든 usr/local/qt5pi 폴더로 복사.
5.8 QtCreator 설치 / 실행
~$ sudo apt-get install qtcreator
~$ sudo qtcreator
관리자 권한으로 QtCreator 실행
5.9 QtCreator 설정
Tool -> Option -> Device -> Add -> Generic Linux Device



GCC -> C
Compiler Path 를 설정
~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/bin/gcc
ABI 를 arm-linux-generic-elf-32bit 로 설정

GCC -> C++
Compiler Path 를 설정
~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/bin/g++
ABI 를 arm-linux-generic-elf-32bit 로 설정
Tool -> Option -> Build & Run -> Debuggers -> Add

Name : arm-linux-gnueabihf-gdb
Path : ~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gdb
Tool -> Option -> Build & Run -> Qt Versions -> Add
qmake location : ~/raspi/qt5/bin/qmake

Tool -> Option -> Build & Run -> Kits -> Add

Compiler : C / C++ 아까 만들어 둔 GCC(RPi3) / G++(RPi3)
Debugger : 아까 만들어 둔 arm-linux-gnueabihf-gdb
Qt Version : 아까 만들어 둔 Qt 5.6.2(qt5)
Apply -> OK
크로스 컴파일 구축 완료
QT 프로젝트 작업시 .pro 파일에 해당 내용 추가
target.path = /home/pi/qtCode #결과가 출력될 경로. 원하는 경로로 설정하면 된다
INSTALLS += target
라즈베리파이의 ~/qtCode 경로로 실행파일 생성됨.
테스트 프로젝트를 만들고 정상적으로 컴파일 완료 된 후, 라즈베리파이 화면에 잘 출력되는지 확인.
End.
'Raspbegrry Pi > Model 3B' 카테고리의 다른 글
| Raspberry3B SD카드 3B+에서 부팅 안될때 (0) | 2021.07.16 |
|---|---|
| Embedded platform 초기 설정 (0) | 2020.11.24 |
| Raspberry Pi3 + RTC(DS-1307) 연동 (0) | 2020.11.24 |