10回答

0收藏

[原创] 【Khadas VIM试用】emmc空间不足的情况下安装opencv3.4.0

#拆解/开源硬件 #拆解/开源硬件 8305 人阅读 | 10 人回复 | 2018-01-30

(一)
编译过opencv的都知道,opencv的源码并不大,加上contrib模块还没用两百M,然而编译的中间文件却多达5、6G。

一般来说这种情况下可以命令安装软件仓库里面的opencv2.4.9,不过作为一个忠于opencv3的粉丝,又或者想要试试3.3、3.4的深度学习模块,那么在装完系统后剩余的2G空间里应该如何编译安装opencv3呢?
经过多次失败的摸索以及上次试用banana pi berry的经验,我从手手挤挤大神那里发现了好方法。
首先,准备一个ext4格式的存储设备,可以是U盘,当然TF卡更好,可以直接插进卡槽。(必须是ext4格式,nfs格式的已经经过验证,在40%左右会报文件系统错误)

(二)准备工作
1、下载源码:转眼间opencv版本就从我上次试用香蕉派的3.2.0更新了三次,上升到了拥有可以调用caffe的dnn的3.4.0。
opencv3.4.0:https://github.com/opencv/opencv/archive/3.4.0.tar.gz
opencv_contrib3.4.0:https://github.com/opencv/opencv_contrib/archive/3.4.0.tar.gz
2、将opencv_contrib3.4.0解压到/home目录下,而opencv3.4.0解压到tf卡内(opencv_contrib3.4.0一定要在home目录下,否则会在33%左右报文件系统错误),然后进入解压文件内部,创建build文件夹,进入内部,创建脚本,修改权限:
  1. mkdir build
  2. cd build
  3. mkdir opencv_cmake.sh
  4. sudo chmod -R 777 ../build
复制代码
(三)编译
脚本内容:
  1. #!/bin/bash
  2. cmake -DCMAKE_BUILD_TYPE=RELEASE \
  3.     -DCMAKE_INSTALL_PREFIX=/usr/local \
  4.     -DINSTALL_C_EXAMPLES=OFF \
  5.     -DOPENCV_EXTRA_MODULES_PATH=/home/khadas/opencv/opencv_contrib-3.4.0/modules \
  6. -DWITH_QT=ON \
  7.     -DWITH_TBB=ON \
  8.     -DWITH_V4L=ON \
  9.     -DWITH_GTK=ON \
  10.     -DWITH_OPENGL=ON \
  11.     -DBUILD_EXAMPLES=ON ..
复制代码
等cmake完成后,可以直接make -j4编译。不过本人为了试验编译时间,创建如下脚本,修改权限,内容:
  1. #!/bin/bash
  2. start_tm=`date +%s%N`;
  3. filename=$(date '+%Y%m%d %H:%M:%S')
  4. echo $filename
  5. make -j4
  6. filename=$(date '+%Y%m%d %H:%M:%S')
  7. echo $filename
  8. end_tm=`date +%s%N`;
  9. use_tm=`echo $end_tm $start_tm | awk '{ print ($1 - $2) / 1000000000}'`
  10. echo $use_tm
复制代码
执行命令:
  1. sudo nohup ./make_tool.sh > output &
复制代码
事先一定要先创建好output文件并付好权限,否则进程会立即停止。
该行为可以使编译进程成为孤儿进程,即使ssh窗口关闭都不会停止如果在文末加上一个shutdown,命令,甚至可以在睡觉前编译,第二天起来查看。此外,还会在编译完输出编译过程消耗的时间。由于我过程中出现了tf卡空间不足的情况编译被终止,所以我总共的编译时间加起来大概1.5w秒左右,也就是4个小时出头,虽然比起pc端系统的20来分钟差距甚远,但相较于树莓派等其他arm板节省了1/3的时间。

分享到:
回复

使用道具 举报

回答|共 10 个

倒序浏览

沙发

ky123

发表于 2018-1-31 17:11:24 | 只看该作者

你们都是一群巨给力的娃
板凳

day_day

发表于 2018-2-2 18:06:42 | 只看该作者

ky123 发表于 2018-1-31 17:11
你们都是一群巨给力的娃

然而这几天回去重新编译以前bananapi的opencv依然不成功,都卡了好几天了……
地板

风之山谷

发表于 2018-2-5 17:03:27 | 只看该作者

这个真的实用~mark一下
5#

robe.zhang

发表于 2018-2-8 22:43:32 | 只看该作者

电脑交叉编译一样样呀,还快
6#

day_day

发表于 2018-2-9 09:14:10 | 只看该作者

robe.zhang 发表于 2018-2-8 22:43
电脑交叉编译一样样呀,还快

是欠缺考虑了,没想到交叉编译这一点
7#

可乐丸子

发表于 2018-2-22 13:19:15 | 只看该作者

系统可以烧写到TF卡启动吗
8#

day_day

发表于 2018-2-22 21:04:18 | 只看该作者

可乐丸子 发表于 2018-2-22 13:19
系统可以烧写到TF卡启动吗

似乎不行,镜像烧到tf卡只能用卡更新emmc里面的系统,不能从卡槽启动。
9#

可乐丸子

发表于 2018-2-22 21:24:49 | 只看该作者

day_day 发表于 2018-2-22 21:04
似乎不行,镜像烧到tf卡只能用卡更新emmc里面的系统,不能从卡槽启动。

我已经实现了TF卡启动和三系统在emmc切换 具体看经验频道我的帖子
10#

day_day

发表于 2018-2-25 21:55:07 | 只看该作者

可乐丸子 发表于 2018-2-22 21:24
我已经实现了TF卡启动和三系统在emmc切换 具体看经验频道我的帖子

好像没找到那张帖子,是不是这张:
https://www.cirmall.com/bbs/forum.php?mod=viewthread&tid=99176#lastpost
我刚才又上官网看了看好像有这篇教程是从tf启动的:
http://docs.khadas.com/develop/CreateBootableSDCard/
不过好像要把emmc清空耶
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条