环境搭建Day 1
ubuntu 22.04 下载安装
打开ftp 服务
sudo apt-get install vsftpd
sudo vi /etc/vsftpd.conf
找下面两行开注释
local_enable=YES
write_enable=YES
重启
sudo /etc/init.d/vsftpd restart
tar -zxvf 解压SDK 包 和toolchain 包(toolchain 路径 D:\project\rk3588\Rk3588-linux-v110\RK3588_LINUX_NVR_SDK_Release_V1.1.0_20220418\build)
向系统添加toolchain 作为环境变量( vim ~/.bashrc export PATH="xxx":$PATH)
使用 arrch-ro xxxxx-gcc helloworld.c
上板运行测试 可以打印说明截止目前 可用
下一步,编译rknn中的Yolov5 example
环境搭建 Day 2
直接把rknpu2-master copy 过去,改.sh,里面加export toolchain,改gcc前面的工具链宏名 然后运行
编译结果在同级的build里
既然能编译了,下一步要确保能debug,简单功能就可以开发了
首先,在虚拟机上安装ssh server
udo apt-get install openssh-server
编译gdb gdb server
./configure --prefix=/home/rui/rk3588/yolo5/gdb-10.2/rk3588 --host=arm-linux CC=aarch64-rockchip1031-linux-gnu-gcc CXX=aarch64-rockchip1031-linux-gnu-g++ LD=aarch64-rockchip1031-linux-gnu-ld AR=aarch64-rockchip1031-linux-gnu-ar
环境搭建 Day3
给ubuntu上安装c/c++ esten
发现对面的orangepi是可以直接编译C、C++ 的,很尴尬 ,我编出来的gdbserver没有用,我PC甚至可以在上面装vscode扩展。
环境搭建 Day4
opencv 4.5.5 编译结束,挺简单的,大概干了两个事,一个是指定编译工具,
因为嫌麻烦,所以直接在板子上编译的,
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc ..
中间有一个部分失败了,是因为png的库检测成他自己出厂带的库了,版本有点低把他自带的usr/lib/libpngxxx.so 干掉了 然后把usr/lib/aarchxxxgnu 里面的16版本的库拷贝出来,再编译,就没有问题了
编译成功后 sudo make install
安装之后随便写了个main.c 测试,makefile 如下:
CC = /usr/bin/aarch64-linux-gnu-gcc
CXX=/usr/bin/aarch64-linux-gnu-g++
CFLAGS=-c -Wall -g
CXXFLAGS=-c -Wall -g
OBJS=main.cpp
main: main.cpp
$(CXX) -o main $(OBJS) -L/usr/local/lib -lopencv_highgui -lopencv_features2d -lopencv_flann -lopencv_calib3d -lopencv_objdetect -lopencv_imgcodecs -lopencv_imgproc -lopencv_videoio -lopencv_dnn -lopencv_core
.PHONY: clean
clean:
rm main
然后main.cpp 如下
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/calib3d.hpp>
#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
#include <iterator>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
// # define _GLIBCXX_USE_CXX11_ABI 0
#include <iostream>
using namespace cv;
using namespace std;
int main(){
Mat image = imread("./1.jpg") ;
printf("hello the fuck world!\r\n");
}
过了就没管了