This is an old revision of the document!


Setup ToyBrick RK3399PRO

HowTo

2019.03.18

장난감 삼아 구입한 NPU 개발보드. 2019년 03월 06일 주문해서 DHL로 18일에 배송되었다. 6GB+32GB 모델은 재고가 없어 3GB+16GB 모델로 주문하였다. 박스를 열자 한자로 쓰여진 부품 목록과 110v 어댑터(프리볼트)가 등장했다. 메뉴얼 하나 없는 불친절함을 뒤로하고 HDMI, USB키보드와 마우스를 연결하고 전원을 올리자 떠 오른 것은 Fedora 리눅스. 이왕이면 우분투를 설치해두었으면 좋았을 텐데. 패스워드는 toybrick이다. 모니터 연결 시 화면 깜빡임과 노이즈가 발생하는데, 여러 모니터에서 동일한 현상이 발생하는 것을 보아 커넥터 불량인 것 같다.

dnfdragora

Fedora는 익숙하지 않아서 불편하다. 패키지 매니저가 dnf, GUI 도구가 dnfdragora 인가보다. 우선 firefox를 설치하자. firefox for wayland 를 설치해야 안 죽는다. 얼른 우분투로 밀어야겠다. 근데 밀어버리려고 보니 바이두로 배포하는데 이게 회원가입을 해야되나보다. 흑. 일단 tensorflow-lite 빌드에 필요한 git, gcc, zlib을 검색해 설치한다.

libneuralnetworks.so

find / -name "libneuralnetworks.so"
/run/media/toybrick/system/lib/libneuralnetworks.so
/run/media/toybrick/system/lib64/libneuralnetworks.so

가장 궁금했던 것은 NNAPI 모듈이라 이것부터 검색해보았다. 기대와는 달리 안드로이드용만 제공하는지 안드로이드 파일시스템 마운트 해 둔 것 처럼 보이는 PATH에서만 검색되었다. 혹시나 싶어 TensorFlow-Lite를 빌드하여 시도해보았는데 dlopen 할 때 crash가 발생하고 libc 근방인 것으로 보아 안드로이드 용이 맞는 것 같다. 중국어 메뉴얼을 번역기 돌려 보니 안드로이드가 설치되어 있다고 한다. 내일 시도해보아야겠다.


2019.03.19

정면에서 바라보았을 때 왼쪽 버튼이 복구버튼이다. 얼마 동안 누르고 있어야 안드로이드로 진입하는지 써 있지 않아 몇 번 실패하다가 그냥 방치했더니 어느순간 안드로이드가 떠 있었다. 일반 ENG 모드로 빌드 된 안드로이드와 동일한데, 일단 설정에서 개발자 옵션 켜고 adb 붙인다음 su 커맨드를 주면 root 쉘을 얻을 수 있다. 다만 NNAPI(libneuralnetworks.so) 사용한 상태에서 MobileNetV1_1.0_224.tflite 모델의 Latency는 50~60ms로 기대했던 것 보다는 느린 편이었다.


2019.03.22

오늘은 타겟에서 파이썬 데모를 돌려보자. 영문 메뉴얼이 제공되기는 하지만 엉성하다.

git clone https://github.com/rockchip-toybrick/RKNPUTool
cd rknn-toolkit/package
pip3 install rknn_toolkit-0.9.9-cp36-cp36m-linux_aarch64.whl --user

설치하다 보면 여러 의존성 문제가 있는데, 찍어서 맞춘거라 불필요한 패키지가 있을 수도 있다. TX2 처럼 빠릿한 환경을 기대했는데 여러모로 느리고 불편하다. 클럭 셋팅이라도 변경할 수 있으면 좋을텐데.

sudo dnf install redhat-rpm-config gcc-gfortran python3-devel protobuf
pip3 install pgen --user


TypeError: Cannot access offset of type string on string

TypeError: Cannot access offset of type string on string

An unforeseen error has occured. This is most likely a bug somewhere.

More info has been written to the DokuWiki error log.