intel movidius踩坑血泪史--需要的童鞋拿去不谢

折腾movidius花了一个多星期,遇到了各种问题,记录一下。
为了节省你的时间,我把要点先写下来,如果还是遇到问题,可以往下看:
要点1:更新系统
要点2:不要动系统的python
要点3:如果有anaconda,先把~/.bashrc中的export anaconda PATH这一行注释掉,
然后一定要重启
要点4:尽量按照官网的方案执行(https://developer.movidius.com/start),我也是踩了一堆坑失败了无数次之后才发现官网提供的方案是最简单的方案,只不过前提是把要点123先做了,官网坑的就是不管大家用的什么环境,都按新系统这种“理想环境”对待,装不好真的让人很狂躁!
要点5:这个sdk严重依赖python和pip,为了保证安装的迅速,pip一定要配一个国内的镜像源,否则一堆包要安装,几K的速度会把你逼疯的!pip配置国内源很简单,就是在~目录中建立.pip/pip.conf文件(文件夹没有就自己建一个),然后把下面的代码写进pip.conf:

index-url = http://pypi.douban.com/simple
[install]
trusted-host=pypi.douban.com

我用的是豆瓣的镜像,速度还可以,当然你也可以根据自己的喜好自己选清华的或者中科大的。
要点5:有很多内容需要从github下载,github没有被墙,但是网络很不稳定,暂时没有好的加速办法,通常只要能够连接成功,速度还是不错的,连接不成功的原因极有可能是响应时间很容易超过200+ms,解决的唯一办法就是。。。多试几次。。。。。。

下面就是详细的踩坑经过,有一些地方可能没有那么精确但是大致意思是没错的,我实在是没有勇气和精力再来一次,把错误都截图下来,原谅我<( ̄_ ̄)>
part 1:./install.sh
首先,帮助最大的是这两篇博客:
http://www.mamicode.com/info-detail-2315616.html
https://software.intel.com/zh-cn/articles/how-to-deploy-tensorflow-and-caffe-for-intel-hardware-platform-into-movidius-ncs-sdk
有几个关键点,首先是如果需要GPU支持,则要先安装CUDA,这个相对容易,百度一下就行;
其次是tensorflow,最好用1.3.0,CPU版本或者GPU都可以;在树莓派上尝试1.9.0,死活不行,尤其是numpy1.5.0,不知道为什么;
最后是caffe,caffe和movidius都需要opencv,movidius的要求是3.4.1以上,opencv的安装也是相当复杂,其实最主要的是有一个ippicv并行计算包需要事先下载下来,由于被墙的关系,如果不提前下,很容易死在这一步,这个问题解决了的话就容易多了,直接cmake和make就行,有教程;
重点来了,这段时间主要就忙在折腾caffe上了,在Windows上从来没有安装成功过,ubuntu上之前也只是用Python版的,用pip install安装的,这次装movidius把我折腾够呛,显示git clone失败,自己下了个caffe放在/opt/movidius里,参考2的做法,结果死活编译不过去,一直有一个错误:
undefined reference to `GOMP_parallel@GOMP_4.0’
上网查,得到一个比较可靠的说法:是因为anaconda在PATH中,导致被连接到anaconda的GCC而不是系统的GCC(https://stackoverflow.com/questions/40322301/compile-opencv-3-on-ubuntu-16-04-linking-error-usr-lib-x86-64-linux-gnu-libsox),然后按照他的说法把~/.bashrc中的export注释掉,重启(为了移除环境变量,查看环境变量用echo $PATH),重启之后一看anaconda的环境变量没了,重新执行./install.sh,坑爹的是仍然死在同一个地方(这个地方可能是因为有cmakecache,应该把/opt/movidius/caffe/build里的东西都删了重编),我直接下了个cmake-gui,用gui进行了config和generate,重新./install.sh,成功了!

part 2: make examples
注意:下面提到的Python都是python3.5版本。
为了验证是否成功,参照官网的指示,在/root/movidius/ncsdk-1.12.00.01文件夹里新开一个终端terminal,输入make
example看效果,结果果不其然+妥妥的出问题了!
先是python import mvnc出错,用which python看了一下,发现默认Python是2.7,这个问题应该不大,出错信息前提示用的是3.5,再看which python3,发现是anaconda里的python3,回忆一下,似乎我把~/.bashrc中的export anaconda到PATH那一行注释取消了并且进行了重启,于是重新打开bashrc注释掉anaconda,重启,还是有问题,但是问题不一样了(上一步安装的时候出问题就是anaconda的问题,也就是把anaconda路径移除之后清理build文件夹重新编译就可以,不需要cmake-gui),提示import caffe找不到caffe,打开python3,import caffe果然不行,思考问题所在:首先,这个caffe是自己编译出来的,每个步骤都执行成功了,为了以防万一,按照某个博客的说法,万一是没执行make caffe导致的呢?进到caffe的build文件夹,直接make caffe,成功了,并且build同级目录还有python文件夹,进python文件夹,打开python3,import caffe,成功,说明应该是路径的问题,这个python caffe的路径不在python的PYTHONPATH中,打开bashrc,最后一行是有python路径的export的,但是仔细一看,这一行上面还有一行caffe的export,是~目录里的caffe,打开这个文件夹果然有一个caffe,进caffe/python,进入python用import caffe试了一下,错误是一样的,问题就是这个没错了,可能是别人用这个电脑的时候编译了一个caffe但是没成功,果断把bashrc里的对应路径删除,重启,重新make examples,新问题出现了,连接raw.githubxxxx(忘记后面的内容了,就是github的对象存储之类的)失败,先上github搜索对应的项目,找到url指明的文件是否存在,验证之后文件都是存在的,ping这个域名和ip都是可以通的,只不过响应时间很长,200多ms,可见出错的提示bad gateway没有骗我,就是网关太差,这没关系,多试几次就行了,经过重复执行make命令,该下载的终于都下完了,caffe的可以正常运行,传输数据之后预测的时间还是能够接受的,100ms到40ms之间,根据网络大小有变化。
但是后面到tensorflow又出问题了,提示tf的运行时加载失败,我的tf是1.9,pip3 list看了一下,发现我还装了tf1.10GPU版本,进入python,import tensorflow,果然提示运行时加载失败,不管他,先把gpu版本的卸载了,再次进入python,import成功,好,重新make examples,还是有问题,提示没有 ‘tensorflow.contrib.slim’ 这个模块还是什么,还是老办法,进python,把出错的import执行一遍,果然是不对的,上网找答案,结果是说可能是版本太老,果断卸载1.9,自动pip3 install tensorflow,是1.10的,在进python执行import,ok了,继续make examples,还有bad gateway的问题,老样子,多执行几次,终于把所有的文件下载完毕并且执行完毕了,movidius神经计算棒算是能用了,接下来就是怎么用的问题了。按照官方的说法,只需要对模型进行一个转换,然后用mvnc模块就能自动使用这个棒子,马上动手试试先!

### 关于Ubuntu驱动安装和配置过程中的故障排除经验 #### 一、环境准备与初步诊断 确保系统的软件包索引是最新的以及必要的工具已就绪是成功安装任何新硬件驱动的关键前提。这可以通过运行`sudo apt update && sudo apt upgrade`来实现[^2]。 #### 二、特定设备驱动安装案例——MT7921无线网卡 对于采用MT7921型号的无线网卡,在Ubuntu 18.04环境下,存在一套详尽指导文档支持其驱动程序的手动部署流程。该流程不仅涵盖了基础指令的应用,还特别强调了DKMS(Dynamic Kernel Module Support)机制的重要性,它允许动态加载模块至当前使用的内核中而不必重启计算机[^1]。 ```bash # 更新系统并安装必要依赖项 sudo apt-get update sudo apt-get install build-essential git dkms # 获取适合目标平台架构(x86_64)的源码压缩包链接地址 wget https://github.com/.../mt7921u/archive/main.zip -O mt7921u-main.zip # 解压文件夹并将解压后的目录重命名为方便记忆的名字如'mt7921-driver' unzip mt7921u-main.zip mv mt7921u-main/* ./mt7921-driver/ rm -rf mt7921u-main* # 使用DKMS注册并构建驱动模块 sudo mkdir /usr/src/mt7921u-1.0 sudo cp -R ./mt7921-driver/* /usr/src/mt7921u-1.0/ cd /usr/src/mt7921u-1.0/ sudo dkms add . sudo dkms build mt7921u/1.0 sudo dkms install mt7921u/1.0 ``` 上述脚本展示了如何获取、编译并利用DKMS服务自动管理来自第三方仓库提供的非官方支持芯片组驱动的方法[^3]。 #### 三、常见错误处理技巧 当面对未知问题时,查阅日志是一个很好的起点;例如,通过查看`dmesg | tail`输出可以帮助识别最近发生的事件是否关联到刚装载的新硬件组件。另外,如果发现有明显的警告或错误提示,则可尝试搜索这些关键字以找到相似情况下的解决方案。 #### 四、保持更新与社区互动 随着操作系统版本迭代和技术进步,旧版驱动可能会逐渐失兼容性或是性能优势。因此建议定期访问制造商官网查询是否有更适配最新发行版的固件可用,并积极参与各类在线论坛交流心得,共同促进开源生态健康发展。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值