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은 다음과 같이 생겼습니다.
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의 시작 전에, 적절한 부트 모드 설정을 위해
보드의 해당 부분을 다음과 같이 설정해줘야 합니다.
그리고, 아래 그림에서 볼 수 있듯이
tpu board의 Serial console 와 host computer에 USB-micro-B to USB-A 케이블로 연결해줍니다.
(이 때, tpu power는 연결하면 안됩니다!)
연결하면, 그 근처에서 주황색,초록색 led 불빛이 켜진 걸 확인할 수 있습니다.
연결 후에, 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 를 컴퓨터에 연결해서 전원을 공급하면 안됩니다!!)
그러면, 아까 빈 상태로 열어놨던 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
완료 후에 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 케이블로 연결해줍니다.
그리고 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 하는 다음과 같은 화면을 볼 수 있습니다.
참고 자료
https://coral.ai/docs/dev-board/get-started/#connect-internet
https://coral.ai/docs/dev-board/reflash/#flash-a-new-board
'IT Tools > k8s & Docker' 카테고리의 다른 글
[K3S] Lightweight Kubernetes인 K3S 설치 및 클러스터 세팅 (0) | 2021.03.18 |
---|---|
[Docker] Docker란? Docker 기초 : Hello-world 컨테이너 실행 (0) | 2020.12.18 |