1. 首先要在虚拟机上创建一个共享路径
a) vi /etc/exports
b) 在文件最后追加: share_dir(如/media/new_disk) *(rw,sync,no_subtree_check)
2. 安装交叉编译环境
在摄像头上跑程序需要安装海思的sdk:Hi3516CV500_SDK_V2.0.0.3.tgz和交叉编译环境arm-himix200-linux.tgz,分别上传至/media/new_disk/package。安装包链接
(1) sdk解压之后,在/media/new_disk/package/Hi3516CV500_SDK_V2.0.0.3/package下面解压mpp_smp_linux.tgz, 最后将模型工程里所有CMakeList.txt的sdk路径替换为/media/new_disk/package/Hi3516CV500_SDK_V2.0.0.3/package/mpp_smp_linux.tgz
(2)安装arm-himix200-linux
a)解压arm-himix200-linux.tgz,
b) 然后根据README.md文件提示安装:
source ./arm-himix200-linux.install install_dir
注意 :安装路径install_dir为虚拟机绝对路径
c) 设置模型工程在CLion中的环境变量
setting-Build,Execution,Deployment-CMake-Environment: LC_ALL=C
3. 制作运行工程所需文件
a) 将工程放到共享路径/media/new_disk下
b) 在虚拟机上线编译算法部分,生成libjdagralg.so
c) 编辑工程生成可执行文件(如alg_test)
d) 在虚拟机共享路径下创建test文件夹,结构如下:
|-- test
|-- lib
|-- libjdagralg.so
|-- models(此路径下存放模型文件及配置文件)
|-- alg_test
|-- gdb_himix200(忘记如何得到和具体作用了。。。)
|-- start.sh(为执行脚本)
其中start.sh具体内容如下:
#export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/tdfs/lib:./lib
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:./lib
#./gdb16 camera_app
#./gdb_himix200 camera_app
#./gdb-16c-v500 camera_app
#./camera_app
./alg_test # 测试命令
#./gdb_himix200 alg_test # debug命令
4. 起nfs服务
sudo /etc/init.d/nfs-kernel-server restart
5. 连接摄像头
telnet 摄像头ip(如192.168.100.2)
6. 将共享路径挂载到摄像头
mkdir camera_dir(如/root/mnt/zwm)
mount -t nfs -o nolock 192.168.1.200:virtual_dir(如/media/new_disk) camera_dir
7. 在摄像头端跑模型
a) 进入到摄像头挂载的test路径下
b) 执行./start.sh即可
8. 注意事项:
(1) 需保证所有用到的文件及路径是有权限的!!!包括图片、so和可执行文件!
(2) 由于交叉编译包和sdk比较大,虚拟机空间不够,进行了扩容,具体见:
VM虚拟机扩展硬盘容量
(3)
Q: 编译工程时,报错not found arm-himix200-linux-g++
A: sudo apt install lib32z1-dev
网友评论