# DIY operators rknnplugin
環境:RK3399pro + fedora
[](./LICENSE)
1. 下載下傳Tengine [Tengine in GitHub]([email protected]:8022/internal/tengine.git)
git clone [email protected]:8022/internal/tengine.git
cd Tengine
2. Checkout tag v1.3.2
git checkout -b v1.3.2 v1.3.2
3. Build Protobuf
git clone [email protected]:protocolbuffers/protobuf.git
cd protobuf
git checkout -b v3.5.0 v3.5.0
./autogen.sh
./configure --with-protoc=protoc
make -j4
make install
4. Build opencv
git clone [email protected]:opencv/opencv.git
#(https://github.com/opencv/opencv.git)
git checkout -b 3.4.0 3.4.0
cd opencvcp build_opencv.sh .
mkdir build
cd build
../build_opencv.sh
make -j4
sudo make install
5. Build Tengine
mkdir build
./linux_build.sh default_config/arm64_linux_native.config
make -j4
make install
6. Download rknn SDK. see [Toybrick]
此處我下載下傳的是rknn-api-0.9.9,放置在home目錄下備用。
7. Build rknnplugin
cd <RKNNPLUGIN_ROOT> #此處是你的rknnplugin根目錄
mkdir build
cd build
vim ../linux_build.sh
需要将tengin的根路徑、将要安裝至哪裡的路徑、rknn SDK的根路徑 指定對。

../linux_build.sh
cmake ../
make -j4
make install
若有一些找不到路徑的錯誤,可以嘗試以下修改:
1.在rknnplugin-master/CMakeLists修改
set(LIB_PATH ${RKNN_SDK_PATH}/rknn_api/arm/lib64)
include_directories(${RKNN_SDK_PATH}/rknn_api/arm/include)
為
set(LIB_PATH ${RKNN_SDK_PATH}/rknn_api/arm/lib64)
include_directories(${RKNN_SDK_PATH}/rknn_api/arm/include)
2.在rknnplugin-master/rknn/CMakeLists.txt 中修改
include_directories(${RKNN_SDK_PATH}/rknn_api/arm/include)為
include_directories(${RKNN_SDK_PATH}/rknn_api/include)
#可能會報錯,說thread_->Activate(-1); thread_->Deactivate(); 沒有這個成員函數,注釋掉它們即可。
8.測試
export LD_LIBRARY_PATH=<RKNNPLUGIN_ROOT>/install:<TENGINE_PATH>/install/lib
cp <RKNN_SDK_ROOT>/rknn-api/Linux/tmp/* . -rf
../install/test_rknn_mobilenet
在./install/目錄下有若幹個程式可供測試使用。可以一一嘗試。
謹記:如果更改了.cpp檔案,一定要記得make && make install。