Coral Dev Board 초기 설치 및 환경설정

반갑습니다. 이번 글에서는 Coral dev board 환경설정 및 초기 설치에 대해서 설명드리도록 하겠습니다.

 


Coral Dev board

 

Coral dev board

 

Coral dev board는 구글이 Tensorflow Dev Summit 2019를 통해서 Machine Learning에 특화된 Edge TPU를 장착한 Coral Dev board와 Usb Accelerator를 소개했습니다. Coral Dev Board는 라즈베리파이와 유사한 Single Board Compueter에 Edge TPU를 장착한 형태이고 USB Accelerator는 여타 다른 Single Board Computer에서 구동시킬 수 있는 형태로, USB를 통해서 설치할 수 있습니다.

 

 

USB Accelerator는 라즈베리파이와 호환이 되기 때문에 하드웨어 가속이 가능합니다. 기존의 라즈베리파이의 스펙을 향상시켜서 사용할 수 있다는 것입니다.

 

 

Egde TPU를 장착했기 때문에 neural network model의 inference 수행 시간이 매우 짧은 성능을 보여줍니다. TensorFlow lite만 지원되며, 현재는 지원하는 neural network model도 한정적입니다. 업데이트를 통해 architecture-type restrictions을 제거하여 모든 model을 지원하겠다고 합니다.

 

 

Coral Dev Board는 Single Board Compueter에 Edge TPU를 장착한 형태입니다. 라즈베리파이와 비교했을 때 대부분의 사양이 더 좋다고 합니다.

 

 

예를 들면, MobileNet v2와 같은 모델을 400FPS에서 동작이 가능합니다. 가격은 $149.99로 한화로 약 20만원 정도 되는 금액입니다.

 

 

Edge TPU는 Coral 제품에서 머신러닝 추론을 하는 AI 기반 솔루션을 배포하게끔 인프라를 제공하는 것으로 보면 될 것 같습니다.

 

 

아래는 Coral Dev Board의 사양을 나타낸 것으로 Coral 홈페이지에서도 동일한 내용을 확인할 수 있습니다.

 

Tech specs

CPU NXP i.MX 8M SoC (quad Cortex-A53, Cortex-M4F)
GPU Integrated GC7000 Lite Graphics
ML accelerator Google Edge TPU coprocessor
RAM 1 GB LPDDR4 (option for 2GB or 4 GB coming soon)
Flash memory 8 GB eMMC
Wireless Wi-Fi 2x2 MIMO (802.11b/g/n/ac 2.4/5GHz) and Bluetooth 4.2
Dimensions 48mm x 40mm x 5mm

Baseboard

Flash memory MicroSD slot
USB Type-C OTG; Type-C power; Type-A 3.0 host; Micro-B serial console
LAN Gigabit Ethernet port
Audio 3.5mm audio jack (CTIA compliant); Digital PDM microphone (x2); 2.54mm 4-pin terminal for stereo speakers
Video HDMI 2.0a (full size); 39-pin FFC connector for MIPI-DSI display (4-lane); 24-pin FFC connector for MIPI-CSI2 camera (4-lane)
GPIO 3.3V power rail; 40 - 255 ohms programmable impedance; ~82 mA max current
Power 5V DC (USB Type-C)
Dimensions 88 mm x 60 mm x 24mm

 


 

Coral Dev Board 초기 설치하기

 

 

보드 초기 설치는 다른 것과 비교해서는 Coral 홈페이지에 상세히 설명이 되어 있습니다. 그러므로 공식 홈페이지에 게시된 가이드를 참조하면서 함께 보면 좋을 것 같습니다.

 

 

이 글에서 비교하실만한 내용은 각각 명령어로 진행되는 문항과 실제로 진행하면서 문제가 있었던 부분이 다양하여  그 부분에 대해서 추가적으로 내용을 기술하도록 하겠습니다.

 

 

시작하기 전에 아래와 같은 부품이 필요합니다.

 

  • Linux or Mac computer (호스트 컴퓨터)
  • USB-A to USB-micro-B cable (시리얼 통신을 위해서 필요한 USB-micro 5핀 케이블입니다.)
  • USB-A to USB-C cable (데이터 통신을 위해서 필요한 USB-C type 케이블입니다.)
  • 2 - 3A (5V) USB Type-C power supply (설치하는 동안 안정적인 전원 공급을 위해서 필요합니다.)
  • Ethernet cable or Wi-Fi connection

 

제가 진행한 PC 환경은 다음과 같습니다. Linux를 제외하면 크게 신경쓰지 않아도 될 것 같습니다.

 

  • Ubuntu 18.04.3 LTS
  • CUDA 10.2, cuDNN 7.6.5
  • GTX 1050

 

 

먼저 아래와 같은 명령어로 screen이라는 패키지를 설치해줍니다. screen은 시리얼 콘솔 응용 프로그램으로 picocom, putty도 사용할 수 있다고 하지만 Linux 상에서는 screen 패키지를 사용하는 것이 좋다고 합니다.

 

sudo apt-get install screen

다음과 같이 터미널 창에 입력하면 됩니다.

 

 

다음으로는 최신 fastboot 툴을 설치해줍니다. 이미 설치가 되어있어도 최신버전으로 진행하는 것을 권장하고 있습니다. 

 

 

 

Download the Android SDK Platform-tools에 접속하면 다음과 같은 세션에서 다운로드를 진행합니다. 이 글을 작성하면서 새롭게 진행하고 있는데 다운로드 홈페이지가 개편이 되어 있습니다.. (다운로드 창에서 아무런 동작이 없는 경우 언어를 영어로 설정하시고 진행해보는 것도 좋습니다.)

 

 

다운로드가 끝나면 파일을 압축 해제하고 다음의 명령어를 입력시켜서 fastboot 파일을 이동시켜줍니다. 다른 파일은 필요 없습니다.

 

mkdir -p ~/.local/bin

sudo mv ~/Downloads/platform-tools/fastboot ~/.local/bin/

압축을 풀면 나오는 폴더에서 다음과 같은 파일만 옮기는 것이다.

 

 

fastboot version check

fastboot --version

 

fastboot 관련해서 처음 설치하시는 분들은 터미널창에 위의 명령어를 치시면 다음과 같이 나옵니다.

 

 

다음의 명령어를 입력해 진행합니다.

 

sudo apt install fastboot

다음과 같이 지정된 경로에 있는(/.local/bin) fastboot 파일의 버전이 뜨지 않는 경우는 재부팅한다.
재부팅하면 올바른 경로의 fastboot 버전을 확인한다.

 

 

다음으로는 MDT를 다운받습니다. 여기서 말하는 MDT란 Mendel Development Tool을 말하는데, Coral Dev Board는 Mendel Linux 만을 지원합니다. 이 Linux는 Debian 계열이며 일반적인 Linux와 큰 차이는 없습니다.

 

 

다만 알아두셔야 할 점은 MDT는 보드와 연결하거나 Debian 패키지를 설치하고 SSH를 통해 접속하는 프로그램이라는 겁니다. SSH 부분에 대해서는 뒤에서 상세하게 다루도록 하겠습니다.

 

 

아래와 같은 명령어로 MDT를 설치합니다. (저는 둘 다 설치해봤지만 apt-get으로 진행하는 것이 문제가 적었던 것 같습니다.)

 

#1.pip로 설치하는 방법

pip3 install --user mendel-development-tool

#pip3 패키지가 없는 경우는 아래와 같은 명령어로 먼저 pip3를 설치하면 됩니다.
sudo apt install python3-pip



#2.apt-get으로 설치하는 방법

# Add the repo:
echo "deb https://packages.cloud.google.com/apt coral-mdt-stable main" | sudo tee /etc/apt/sources.list.d/mdt.list

# Add Google keys
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# Then install the package:
sudo apt-get update

sudo apt-get install mendel-development-tool

 

 

혹시나 설치하는 과정에서 파이썬 버전이 오래된 버전이라는 등의 경고 메세지가 출력될 수도 있습니다. 이는 MDT 패키지 설치를 실패한 것은 아니니 신경쓰지 않으셔도 됩니다. (이 부분은 예전 기억에 의존해서 쓴거라 정확하지 않습니다.)

 

 

이제 보드에 설치하는 것을 진행하겠습니다. 지금부터는 반드시 설명하는 그대로만 진행해주셔야 합니다. 

 

 

보드에 아무런 연결도 없는 상태에서 부트 모드 스위치를 확인합니다.

 

eMMC mode로 설정한다. 1번만 위로, 2~4번은 아래로 내린다.

 

 

일단 호스트 컴퓨터(Linux)에서 다음의 명령어를 입력합니다.

 

sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"0525\", MODE=\"0664\", \GROUP=\"plugdev\", TAG+=\"uaccess\"' >> /etc/udev/rules.d/65-edgetpu-board.rules"

sudo udevadm control --reload-rules && udevadm trigger

 

다음과 같이 보드를 연결합니다.

 

호스트 컴퓨터(Linux))와 Micro-5pin 케이블로 연결한다.

 

케이블을 연결하면 녹색 및 주황색 불이 점멸됩니다. 이제 다음과 같은 명령어로 직렬 연결의 장치 목록을 확인합니다.

 

dmesg  |  grep ttyUSB

 

일반적인 경우라면 위의 그림처럼 두 개의 장치가 나타날 텐데, 다음과 같은 명령어로 첫 번째 장치로 연결하겠습니다.

 

#1.
screen /dev/ttyUSB0 115200

#2.
sudo screen /dev/ttyUSB0 115200

 

 

만약 [screen is terminating] 이라는 문구가 뜰 경우는 시스템 그룹에 계정이 추가되어 있지 않거나, screen으로 연결된 다른 장치가 존재할 수 있습니다. 보드에서 케이블을 제거한 후 재연결을 시도하거나 관리자 권한(sudo)를 사용해서 연결을 진행해보시기 바랍니다.

 

 

위의 명령어가 문제없이 진행되면 다음과 같은 빈 터미널로 전환된다.

 

위의 사진과 같이 전원 케이블을 연결하면 순간적으로 팬이 돌면서 부팅되는 것처럼 보입니다. 그러면 다음과 같이 명령어를 입력합니다.

fastboot 0

 

 

문제가 될만한 부분은 딱히 없고 시스템 이미지를 flash 하면서 설치가 진행될 것입니다. screen에서 초기 id와 pasword는 mendel mendel로 되어 있습니다. 이 부분이 모두 완료되면 micro-5pin으로 연결했던 케이블을 제거합니다.

 


 

Field Description
Year Last digit of the year of manufacture: 0 - 9
Month Month of manufacture: 1 to 9 (Jan to Sep), A (Oct), B (Nov), C (Dec)
Day Day of manufacture: 01 to 31 (1st to 31st)

 

다음으로는 방열판에 쓰여져 있는 제조일을 확인해야 하는데 일련번호 앞자리가 '9409' 이전 버전이라면 19년 4월 9일 이전에 제조된 것으로 보드 자동으로 fastboot 모드로 진입하므로 지금 설명할 부분을 건너뛰어도 되지만 저는 '9319'라서 별도의 작업을 진행해야 합니다. ㅠㅠ

 

 

위의 그림과 같이 케이블을 연결하는데 왼쪽이 data 케이블 오른쪽이 전원 케이블입니다. 이 전 상황(micro-5pin 제거)에서 왼쪽 data 케이블만 호스트 컴퓨터에 연결하면 됩니다.

 

 

다음의 명령어를 호스트 컴퓨터에서 입력합니다. (터미널 환경 자체가 호스트 컴퓨터여야 합니다.)

 

fastboot devices


#위의 명령어를 입력하면 다음과 같이 표시된다. 번호는 다를 수 있다.
1b0741d6f0609912        fastboot

 

표시가 되면 아래의 명령어를 입력하여 시스템 이미지를 다운받고 보드에 flash 합니다.

cd ~/Downloads

curl -O https://dl.google.com/coral/mendel/enterprise/mendel-enterprise-day-13.zip

unzip mendel-enterprise-day-13.zip \
&& cd mendel-enterprise-day-13

bash flash.sh

 

 

설치가 다 완료되면 다음의 명령어로 장치를 확인해 볼 수 있습니다.

mdt devices


#실행되면 다음과 같이 장치가 나타납니다.
wishful-finch		(192.168.100.2)

 

초기에는 mendel로 통일되었던 것 같은데 지금은 장치의 이름이 랜덤으로 생성되는 듯합니다.

 

 

지금 상태에서는 데이터 케이블(C-type)로 연결하여 mdt shell 접속을 하지만 호스트 컴퓨터와 Dev Board가 같은 네트워크 상에 존재하면 mdt shell로 접속이 가능합니다. 먼저 그 작업을 해놓기 위해 다음과 같은 명령어를 Dev Board에서 입력합니다.

 

#보드로 접속
mdt shell

#인터넷 설정
nmtui

 

그러면 다음과 같은 창이 나타나는데 Activate a connection을 선택합니다.

 

 

호스트 컴퓨터와 같은 네트워크로 연결해줍니다.

 

 

 

위와 같은 방법은 아래와 같은 명령어로도 진행이 가능합니다.

 

nmcli dev wifi connect <NETWORK_NAME> password <PASSWORD> ifname wlan0

 

 

인터넷 설정이 완료되면 다음의 명령어로 확인해볼 수 있습니다.

 

nmcli connection show

업데이트가 되었는지 확실히 예전보다 깔끔하게 나옵니다.

 

 


 

 

다음으로는 AI 추론 및 mdt 패키지 등을 업데이트 하기 위해 Dev Board 내에서 다음의 명령어를 진행해줍니다.

sudo apt-get update

sudo apt-get dist-upgrade

#Tensorflow Lite Python runtime install
pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_aarch64.whl

 

 

여기까지 진행하면 Tensorflow lite 사용이 가능해집니다. 다음과 같은 명령어로 Edge TPU 성능 비디오 데모 버전을 볼 수 있습니다.

 

 

edgetpu_demo --stream


#Dev Board에 모니터가 연결되있다면 다음의 명령어로 확인 가능
edgetpu_demo --device

명령어를 입력하고 브라우저에서 192.168.100.2:4664 를 열어서 확인해보세요. (mdt 접속 중일 때) 종료하고 싶다면 터미널 창에서 q를 눌러 종료합니다.

 

 

여기까지 다 해보셨다면 데이터 케이블을 분리하셔도 되고 항상 Dev Board를 종료할 때 sudo shutdown now 명령어로 종료를 하고 전원 케이블을 분리하시는 것이 좋습니다.

 

 

지금까지 Coral Dev Board의 초기 설치 방법이었습니다. 이 보드는 GUI를 지원하지는 않기 때문에 mdt나 ssh 접속을 통한 터미널 입력으로 진행해야 합니다.

 

 

또한, mdt key와 같은 public key가 존재하기 때문에 다른 장소에서 사용하고 싶으면 반드시 mdt key 파일을 소지하고 있어야 합니다. 위의 데모 버전 확인 외에서 여러가지 예제가 코랄 홈페이지에 나타나 있으니 참조하시면 많은 도움이 될 것 같습니다.

 

 

설치 관련해서 궁금한 점은 질문해주시면 글을 수정하는 데에도 도움이 됩니다!

 

+20/07/21 유튜브에 코랄보드 설치 관련 공식 영상이 업로드 되어 있습니다. 함께 참조해서 보셔도 좋을 것 같습니다.

 

Coral 정보 참조 :  https://geeksvoyage.com/pi%20news/news-google-coral/

Coral 설치 및 제품 정보 참조 : https://coral.ai/docs/dev-board/get-started/

 

Get started with the Dev Board | Coral

Learn how to set up the Coral Dev Board for the first time and run some demo code

coral.ai

 

'IT > ETC' 카테고리의 다른 글

JETSON TX2 성능, 동작 모드 변경  (0) 2020.04.13
JETSON TX2 초기 OS 설치 방법  (4) 2020.03.17
TAGS.

Comments