라즈베리파이 개발환경 구축

nugurii0·2022년 9월 11일
0

다중차로인식

목록 보기
1/11

개요

라즈베리파이 4를 구입하여 진행하였고 스펙은 다음과 같다.
RAM : 8GB / 1.5GHz 쿼드코어 64-bit Cortex-A72(ARM v8)
Arm Arch64 이고 ssh로 붙어서 개발을 진행하되 결과물을 이미지로 확인해야 하는 경우에는 VNC로 확인할 수 있도록 환경을 구축할 것이다.
추가로 네트워크 환경이 변화할 수 있기에 여러 네트워크 접속 정보를 저장시켜 사용할 생각이다. 이러한 환경 설정을 진행하는 이유는 라즈베리파이를 이동하며 사용할 때 동일한 네트워크 상에 존재해야 ssh로 접속할 수 있기 때문이다.
그리고 OpenCV는 팀원과 개발환경의 통일을 위해 4.5.5로 설치하고자 한다.

라즈비언 설치

라즈베리파이에 Raspbian을 설치한 후 시작한다. 라즈베리파이에 맞게 포팅한 리눅스 OS라고 생각하면 된다.
라즈베리파이 OS 설치
설치할 이미지로는 Raspberry Pi OS 64bit를 SD카드에 설치하여 부팅하였다.
이미지로 SD카드에 포맷할 때 imager에서 설정파일을 건드릴 수 있다. 호스트 네임이나 네트워크 접속 설정 등 여러 설정을 진행할 수 있다.
내 경우 호스트 이름과 네트워크 접속 정보를 설정한 후 부팅 이후 곧바로 개발용 PC에서 ssh 접속을 하여 진행하였다.

ssh, vnc 접속

먼저 동일 네트워크에 존재하는지를 ping 명령어로 확인하였다.
ping raspberry.local
이 부분은 위 설정에서 변경하였다면 그에 맞게 지정하면 된다. 이후 ssh로 연결하면 된다.
ssh raspberry@raspberry.local
그리고 비밀번호를 입력하여 접속을 할 수 있다.
접속 이후엔
vncserver
명령어를 통해 vncserver를 열 수 있고 원한다면 -geometry 옵션 이후 widthxheight 값으로 vnc로 출력할 모니터의 크기도 지정할 수 있다.
New desktop is rpi:1 (172.30.1.44:1)
이런식으로 출력이 되면 개발 컴퓨터에서 해당 ip, port를 vnc viewer와 같은 프로그램을 통해 접속하여 GUI를 사용할 수 있다.

네트워크 접속 정보 저장

/etc/wpa_supplicant/wpa_supplicant.conf 파일이 네트워크 접속 정보를 저장하고 있는 파일이므로 해당 파일을 수정하면 된다.
sudo wpa_passphrase "wifi name" > wpa.conf 명령어를 입력하고 비밀 번호를 입력하면 wpa.conf 파일에

network={
        ssid="wifi name"
        psk={wifi password}
}

이러한 파일이 생성된다. 이 값을 위에서 언급한 wpa_supplicant.conf 파일에 덮어쓰면 되는데 priority 속성을 입력하여 접속 우선순위를 지정할 수 있다.

country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1

update_config=1
network={
        ssid="1"
        psk=***
        priority=1
}

network={
        ssid="2"
        psk=***
        priority=2
}

이렇게 지정하면 두 네트워크 모두 접속이 가능하다면 ssid가 2인 네트워크에 먼저 접속하게 된다.
내 경우 휴대폰 핫스팟 접속 정보를 입력해놓아 네트워크 환경이 변하더라도 휴대폰으로 연결하여 새로운 네트워크 환경 정보를 입력할 수 있도록 접속 정보를 설정하였다.
예를 들어 새로운 네트워크 환경에서 라즈베리파이를 부팅하고 휴대폰 핫스팟으로 개발 컴퓨터와 라즈베리파이를 동일 네트워크에 접속시킨다. 이후 개발 컴퓨터로 접속하여 wpa_supplicant.conf 파일에 새로운 네트워크 환경을 추가하고 재부팅하여 새로운 네트워크에 접속하는 방식으로 사용 중이다.

패키지 설치 및 OpenCV 설치

먼저 패키지를 설치한다.

sudo apt get update -y && sudo apt get upgrade -y
sudo apt install build-essential cmake -y
sudo apt install libjpeg-dev libtiff5-dev libpng-dev -y
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libxvidcore-dev libx264-dev libxine2-dev -y
sudo apt install libv4l-dev v4l-utils -y
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly -y
sudo apt install libgtk2.0-dev -y
sudo apt install mesa-utils libgl1-mesa-dri libgtkgl2.0-dev libgtkglext1-dev -y
sudo apt install libatlas-base-dev gfortran libeigen3-dev -y

OpenCV를 설치하고 빌드한다.

mkdir opencv
cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip
unzip opencv.zip
unzip opencv_contrib.zip
cd opencv-4.5.5
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
			-D CMAKE_INSTALL_PREFIX=/usr/local \
			-D WITH_TBB=OFF -D WITH_IPP=OFF \
			-D WITH_1394=OFF -D BUILD_WITH_DEBUG_INFO=OFF \
			-D BUILD_DOCS=OFF -D INSTALL_C_EXAMPLES=ON \
			-D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=OFF \
			-D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF \
			-D ENABLE_NEON=ON  -D WITH_QT=OFF -D WITH_GTK=ON \
			-D WITH_OPENGL=ON -D OPENCV_ENABLE_NONFREE=ON \
			-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.5/modules \
			-D WITH_V4L=ON -D WITH_FFMPEG=ON -D WITH_XINE=ON \
			-D ENABLE_PRECOMPILED_HEADERS=OFF -D BUILD_NEW_PYTHON_SUPPORT=ON \
			-D OPENCV_GENERATE_PKGCONFIG=ON ../

time make -j4
sudo make install
sudo ldconfig

이때 make 뒤의 -j 옵션은 사용할 코어 수를 지정하는 옵션이다. 각 환경에 맞게 사용할 수 있는 코어 수를 지정해주면 빌드를 더 빨리 끝낼 수 있다.

이후 github에 존재하는 sample 코드 아무거나 돌려서 확인하면 된다.
그리고 컴파일 시에는
g++ -o test test.cpp $(pkg-config opencv4 --libs --cflags)
명령어를 통해 컴파일 하고 실행하여 제대로 동작하는지 확인하면 된다.

profile
개발과 보안을 공부하는 학생

0개의 댓글