본문 바로가기

IT Tools/k8s & Docker

[Google Coral TPU] Micro SD card 없이 Coral TPU Dev Board 환경 세팅 / 설치 하기

Google Coral TPU ?

 


준비물

  • Python 3 가 설치된 host computer
    (저는 Linux Host를 이용하였으므로, linux 방식을 작성할 것 입니다.)
  • 1개의 USB-C power supply (2 A / 5 V) (coral tpu power 공급용)
  • 1개의 USB-C to USB-A 케이블 (host computer와의 serial 통신용)
  • 1개의 USB-micro-B to USB-A 케이블 (host computer에서 tpu의 터미널을접속하기 위해)

참고로 c-type은 다음과 같이 생겼습니다.

C-type to USB-A cable
USB-micro-B to USB-A cable


Flash a new board


host 컴퓨터에 다음과 같은 작업을 해야합니다.

$ sudo apt-get install screen
$ sudo apt-get install fastboot

# 설치 확인
$ fastboot --version
$ 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 && sudo udevadm trigger

$ sudo usermod -aG plugdev,dialout <username>

마지막 명령에서 <username> 부분에 현재 host 컴퓨터의 사용자 이름을 적어주시면 되겠습니다.
위 명령어를 모두 마친 후 host 컴퓨터를 재부팅 해줘야 합니다.

본격적으로 tpu board의 시작 전에, 적절한 부트 모드 설정을 위해
보드의 해당 부분을 다음과 같이 설정해줘야 합니다.

eMMC mode



그리고, 아래 그림에서 볼 수 있듯이
tpu board의 Serial console 와 host computer에 USB-micro-B to USB-A 케이블로 연결해줍니다.
(이 때, tpu power는 연결하면 안됩니다!)
연결하면, 그 근처에서 주황색,초록색 led 불빛이 켜진 걸 확인할 수 있습니다.

Tpu serial console

연결 후에, host computer 터미널에서 다음과 같은 명령을 실행하면 밑에 처럼 결과가 나올 것 입니다.

$ dmesg | grep ttyUSB

[ 6437.706335] usb 2-13.1: cp210x converter now attached to ttyUSB0
[ 6437.708049] usb 2-13.1: cp210x converter now attached to ttyUSB1

이제, serial 통신을 위해 ttyUSB0 로 연결을 해줍니다.

$ screen /dev/ttyUSB0 115200

이렇게 연결하면 처음에 아무 것도 없는 터미널 창이 보일 것입니다. 
그러면, 이제 tpu에 power supply 를 연결하여 작동시키면 됩니다.
PWR 이라고 글자써있는 곳 옆에 c-type포트에 power supply 를 연결하여 전원을 주면 됩니다.
(이때, Power supply 를 컴퓨터에 연결해서 전원을 공급하면 안됩니다!!)

Tpu board power

그러면, 아까 빈 상태로 열어놨던 host 터미널에서 뭔가 글자들이 지나가고 welcome 문자들이 나오게 됩니다
여기서 만약 u-boot prompt 가 보이면 다음 명령어를 실행하여 flash 할 환경을 실행해주면 됩니다.
(u-boot prompt 가 안 보이신다면 이미 해당 환경이 실행된 상태인 경우도 있습니다. 그때는, 해당 명령은 생략해도 됩니다.)

fastboot 0


만약 소지하신 TPU board 생산 날짜가 2019 년 4월 10일 이전인 경우는
(생산 날짜 확인 법 : https://coral.ai/docs/dev-board/reflash/#initiate-fastboot


다음 링크를 참고하여 몇가지 더 실행해주셔야 합니다.
https://coral.ai/docs/dev-board/reflash/#execute-flash

 

Update or flash the Dev Board | Coral

Learn how to update the Coral Dev Board system software or completely flash a new system image

coral.ai

 

완료 후에 serial console연결 선은 제거해도 됩니다.


mdt로 board 터미널 접근하기

board의 터미널에 host 컴퓨터로 접근하기 위해 mdt를 host 컴퓨터에서 설치합니다.

$ pip3 install --user mendel-development-tool
$ echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bash_profile
$ source ~/.bash_profile


board에 OTG 라고 적혀있는 c-type 포트와 host 컴퓨터를
USB-C to USB-A 케이블로 연결해줍니다.

board data OTG

그리고 host 컴퓨터에서 연결된 디바이스를 검색합니다.

$ mdt devices
orange-horse        (192.168.100.2)

잘 연결되었으면 위와 같이 디바이스 이름과 ip 주소가 뜹니다.
(이름은 랜덤이므로 확인 시 다른 이름일 수 있습니다.)

다음과 같은 명령어로 이제 기기의 터미널로 접근합니다.

$ mdt shell

 


Board 인터넷 연결

board 터미널 prompt에서 다음과 같은 명령어를 실행하면 네트워크 관련 화면이 나옵니다.
거기서 Activate a connection 메뉴를 선택 후 원하는 네트워크에 연결하면 됩니다.

$ nmtui

혹은 다음 처럼 한줄 로도 가능 합니다.

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

네트워크 잘 연결되었는지 아래 명령어로 확인하면 됩니다.

$ nmcli connection show

 


DEMO APP 실행해보기board prompt 에서 model software update 를 해줍니다.

$ sudo apt-get update
$ sudo apt-get dist-upgrade

다음과 같은 명령어로 간단한 demo app을 실행합니다.

$ edgetpu_demo --stream

실행 후에, 192.168.100.2:4664 혹은 해당 board에 맞는 ip:4664 를 인터넷으로 접속하면
실시간으로 car를 detection 하는 다음과 같은 화면을 볼 수 있습니다.

demo


참고 자료

 

https://coral.ai/docs/dev-board/get-started/#connect-internet

 

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

https://coral.ai/docs/dev-board/reflash/#flash-a-new-board

 

Update or flash the Dev Board | Coral

Learn how to update the Coral Dev Board system software or completely flash a new system image

coral.ai

 

반응형