ARM开发板系统的配置及OpenCV的安装配置

首先有一个arm的开发板(我的是DE1-SoC Cyclone V),所需的系统镜像文件(ubuntu12.04),及烧写SD卡工具(Win32DiskImager),编译好的OpenCV程序包。这些软件可以在这里下载到下载链接


1. 系统镜像烧到SD卡中

所需的工具是Win32DiskImager及DE1_SoC_UBUNTU.img镜像文件,以及一个大于8G的SD卡。
首先在PC机上安装好Win32DiskImager镜像烧写工具,双击安装即可。
下面是将DE1_SoC_SD.img 镜像烧写入microSD card 的步骤:

  1. 将microSD card 通过读卡器接上计算机;
  2. 执行Win32DiskImager.exe,如下图所示;
  3. 输入DE1_SoC_UBUNTU.img文件的路径;
  4. 选择 microSD card 的磁盘位置
  5. 点选 “write”后 开始刻录image 文件进入microSD card。 等待烧入完成后即可移除microSD card。

    这里写图片描述

2.在DE1-SoC 板卡上运行Linux

在DE1-SoC 板卡上运行Linux的步骤如下:

  1. 请先确认DE1-SoC 板电源是关闭状态
  2. 将预装载有 Linux image 的 microSD card 插入DE1-SoC 的 microSD card 插槽
  3. 将DE1-SoC 板卡背面的MSEL设置为:MSEL[4:0] = 00000
  4. 开启DE1-SoC 板的电源,即可登录Linux系统

3. SD剩余分区的挂载

进入linux系统之后你会发现,其实现在装载的Linux系统只是利用了SD的很小空间,大概只有不到3G的样子,我们接下来需要吧SD卡的剩余空间也挂载到这个系统中,防止以后系统空间不足。

我们的想法是把剩余的空间挂载到/usr目录下,具体操作步骤如下:

3.1新建分区并格式化

先利用fdisk -l查看一下分区的情况如下:

这里写图片描述

针对未分配的空间可以在其上先建立一个新的分区,然后再格式化,具体步骤:

fdisk /dev/mmcblk0
m          #帮助信息
n          #添加一个分区
p          #主分区
Enter      #输入两个Enter键
Enter
w    #保存新建的分区
reboot    #重启是新建的分区的数据写入数据表中

重启之后需要对刚才新建的分区进行格式化:

fdisk -l    #查看分区情况
mkfs -t ext4 /dev/mmcblk0p4    #将新建的分区/dev/mmcblk0p4格式化为ext4格式,需要一些时间

至此,我们把SD的剩余空间新建为了一个新的分区!

3.2 /usr目录的重新挂载

首先我们需要把/usr目录下的内容做一个备份,我们就把其备份到新建的分区上,具体的操作步骤如下:

cd /mnt
mkdir tmp     #在mnt文件夹下新建一个文件夹,用于新建分区的临时挂载点
mount /dev/mmcblk0p4 /mnt/tmp  #将新建的分区挂载到/mnt/tmp文件夹下
cp -ax /usr/* /mnt/tmp   #拷贝/usr下的内容到新的分区中
ls -l /dev/disk/by-uuid  #查看分区的UUID
修改/etc/fstab中/usr的挂载方式,挂载到新的/usr分区上
mv /usr /usr.old #重命名现有的/usr
mkdir /usr #创建新的挂载点
reboot  #重启完成

其中第5步中,查到的新分区的UUID号如下图所示:
这里写图片描述

第6步中,修改/etc/fstab中/usr的挂载方式,需要用vim查看/etc/fstab文件内容并进行修改,如下图所示:
只需要添加一行代码

UUID=ead81afa-f104-404a-95b4-18f8c914f397   /usr ext4 defaults  1  2
#注意UUID设置为自己查看到的UUID号

这里写图片描述

至此,分区的挂载大功告成!!!

3. 支持库的安装配置

下面我们需要为OpenCV的安装配置做一些准备工作,安装一些编译工具及图像操作支持库。
但是,目前的软件包管理源可能不完全,我们首先需要为系统添加几个软件下载源,具体的操作如下:用vim打开/etc/apt/sources.list文件,添加下边的几行代码

deb http://cn.ports.ubuntu.com/ubuntu-ports/ precise main restricted
deb-src http://cn.ports.ubuntu.com/ubuntu-ports/ precise main restricted
deb http://cn.old-releases.ports.ubuntu.com/ubuntu-ports/ precise main restricted
deb-src http://cn.old-releases.ports.ubuntu.com/ubuntu-ports/ precise main restricted

这里写图片描述

下面开始支持库的安装:

apt-get update
apt-get upgrade                 #可能需要较长的时间,耐心等待
apt-get install build-essential
apt-get install pkg-config
apt-get install libgtk2.0-dev
apt-get install libjpeg.dev
apt-get install libavcodec-dev
apt-get install libavformat-dev
apt-get install libtiff4.dev
apt-get install libswscale-dev
apt-get install libjasper-dev

4. OpenCV的安装配置

现在我们正式开始OpenCV的安装配置:
一般来说我们首先需要交叉编译一下opencv源码,得到arm平台能识别的代码(具体的交叉编译过程参考这里),我们这里已经交叉编译好了一个版本的OpenCV,可以直接下载(这个版本的opencv是利用opencv-2.4.10的源码在ubuntu12.04系统中交叉编译完成的)。

下面需要把下载好的opencv-lib-arm.tar.gz拷贝到arm平台中:

  1. 首先将下载好的opencv-lib-arm.tar.gz文件拷贝到一个文件系统格式为FAT32的U盘中;
  2. 将U盘插入arm板子上,并将U盘挂载到系统中,在命令行输入:mount /dev/sda1 /mnt/tmp(当然这里的sda1需要更具你的U盘在系统中的代号确定,有可能是sda1~4等等,你可以进入/dev目录中查看)
  3. 将U盘中的opencv-lib-arm.tar.gz文件拷贝到SD中
cd /usr/local
mkdir app              #我们要将文件拷贝到/usr/local/app文件夹下
cp /mnt/tmp/opencv-lib-arm.tar.gz /usr/local/app
cd app
ls     #可以看到文件已经拷贝到系统
umount /mnt/tmp   #卸载U盘

4.解压opencv-lib-arm.tar.gz文件

tar -zxvf opencv-lib-arm.tar.gz
ls  #查看文件下的内容,可以看到opencv-lib-arm文件夹

下面开始opencv的配置

  • 编辑库连接配置文件
cd /etc/ld.so.conf.d
vim opencv.conf

添加如下内容:  /usr/local/app/opencv-lib-arm/lib

然后执行ldconfig命令,使之生效。

  • 添加环境变量
vim /etc/bash.bashrc    
在文件最后添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/app/opencv-lib-arm/lib/pkgconfig
export PKG_CONFIG_PATH

保存之后,执行source /etc/bash.bashrc命令,使之生效。

至此,OpenCV的移植、配置全部完成!!!

下面利用一段小程序测试opencv是否安装正确:
测试的源程序文件如下:
main.cpp

#include<iostream>
#inluce<opencv2/opencv.hpp>
#include "fstream"
using namespace std;
using namespace cv;

int main()
{
    Mat img;
    img=Mat::ones(1000,1000,CV_8U);
    img=img*255;
    imshow("a white picture",img);
    waitKey(1000);
    getchar();
    return 0;   
}

进入到存放main.cpp文件的文件夹下,执行下面的命令,对程序进行编译:

gcc main.cpp -o run  -lpthread -lrt `pkg-config --libs --cflags opencv`

其中gcc是编译用的编译器;main.cpp为要进行编译的程序;run为编译之后生成的可执行二进制程序,可以任意命名。

然后执行下面的命令

./run

若出现一张白图说明opencv配置成功。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值