又到了最麻烦的嵌入式环节,这里将教大家如何在 Hi3559 上运行 YOLO v3 。废话不多说
我使用的是 VM player 虚拟机,虚拟机装的 Ubuntu 16.04
这一步我建议是跟着
编译 uboot与kernel
这一步我的同仁做了,物品主要负责算法部分。直接拿过来用,就不过多废话,有问题也可以评论问我,会的话我会回复。
所以不管怎么样都是要做的
先让大家理解一下,什么是 NFS 文件系统,理论上 NFS 相当于把你的 Ubuntu 当做一个服务器,板子是客户端,然后你可以将 Ubuntu 的某个文件夹挂载到你的 板子 上的某个文件夹下面,这样你就可以通过往这个文件夹丢东西,实现把数据传入板子。挂载的过程有点类似你插上 sd 卡后,比他挂载到板子上。只是这个 sd 卡实时与 Ubuntu 更新数据
这样你就不用在 windows 和虚拟机之间切来切去
参考这篇博文就好
Ubuntu 串口工具安装与使用
这个没注意到搞得我浪费了十分钟
修改属性只要在对应窗口输入 A B 等字母就好
好了,我们继续弄 NFS
先安装相关包,(参考官方文档即可)
sudo apt-get install nfs-kernel-server //install sw
sudo apt-get install samba, ssh, tftp
配置好后根据官方文档,或者以下这篇博文即可
NFS 文件系统配置
其中主要的问题在于:
配置成功以后,我整理了一下每次开机挂载 NFS 所需要的命令
启动串口
sudo minicom
启动板子网卡并配置 IP 地址(可以将 Ubuntu 的IP 地址设为静态,那板子的 IP 地址就也不需要改变)
ifconfig eth0 hw ether 00:10:67:20:81:70
ifconfig eth0 169.254.9.10 netmask 255.255.0.0
route add default gw 169.254.9.1
mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 169.254.9.173:/home/xming/Hisi/nfs /mnt/
加载 KO 等文件
Linux上运行的模块,如SVP等,需要先将cfg.mak.biglittle文件更名为cfg.mak,再进行编译
链接资源环境(这一步不是很确定需不需要)
source /etc/profile
在 mpp/sample 下编译(这里我们可以对模型进行大量的修改,篇幅所限,且每个人需要不一致,就不贴上来了)
make
① 在 NFS 文件系统下创建 ko/ 文件夹用来放所需的驱动文件夹
② 进入 mpp/out/linux/multi-core/ko 目录下将所有驱动文件拷贝到 /NFS/rootfs/ko/ cp ./* /NFS/rootfs/ko
③ 进入 mpp/out/linux/multi-core/lib 目录下将所有库文件拷贝到 /NFS/rootfs/lib/ 下 cp ./* /NFS/rootfs/lib
④ 增加权限 chmod 775 ./ko/ -R
chmod 775 ./lib/ -R
⑤ 加载驱动
./load3559av100_multicore -i -sensor0 imx334 -sensor1 imx334
将编译好的 sample ,mpp/sample/svp/“你配置的系统环境”/nnie
以及同目录下的 data 文件夹一同转移到 NFS 挂载的文件夹下
./sample_nnie_main 8
从中我们可以看到检测到了三个物品