这次我们来介绍使用buildroot构建opencv开发环境,buildroot 是 Linux平台上一个构建嵌入式Linux系统的框架。整个buildroot是由 Makefile脚本和Kconfig配置文件构成的。可以和编译Linux内核一样,通过 buildroot 配置,menuconfig 修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统。

 

1、源码下载:

buildroot官网获取源码包

http://buildroot.uclibc.org/download.html

下载好之后我们把它放在ubuntu上并解压,法师这里使用的是ubuntu12.04。

buildroot 开发环境 ncurses buildroot opencv_ide

2、配置:

      在buildroot源码包路径下执行“make menuconfig”命令,进入配置界面,如下图所示:

buildroot 开发环境 ncurses buildroot opencv_ide_02

 进入“Target options”目录,将Target Architecture配置为ARM(littlt endian),将 Target Architecture Variant 配置为 cortex-A9,将 Target ABI 配置为 EABI,将 ARM instruction set 配置为 ARM。如下图所示:  

buildroot 开发环境 ncurses buildroot opencv_ide_03

再退回上一界面后,进入 Toolchain 目录:将 Toolchain type 配置为 Buildroot toolchain,然后在Kernel Headers中选择linux的版本,这里选 Manually specified Linuxversion,在Custom kernel headers series中选择3.0.x,然后在linux version 中填写linux 版本,笔者使用3.0版,后面编译时,buildroot 将会自动下载对应的工具链并自动安装,将C library 配置为glibc。选中 Enable MMU support 和 Enable C++ support。如下图所示:

buildroot 开发环境 ncurses buildroot opencv_开发板_04

退回上一界面后,进入System configuration 界面,System hostname 一栏中输入开发板的名称,如iTop-4412,在Init system中选择BusyBox,在/devmanagement中选择Dynamic using mdev,即使用mdev动态加载设备节点的方式,然后在Path to the permission tables中 选择设备节点的 配置表 , 这里我们一定要选择system/device_table_dev.txt,否则后面在 dev 目录下将不会生成各种设备节点。当然我们也可以手动的配置该文件,添加必要的节点或删除不需要的节点。Root password 为配置进入 linux 控制台终端后的密码,为空则登录时不需要密码,这里我们设置为topeet,默认登录用户名为root。如下图所示:

buildroot 开发环境 ncurses buildroot opencv_ide_05

选中 Run a getty(login prompt)after boot,再进入getty options 选项:将TTY port配置为ttySAC2,将baudrate配置为115200,对应 iTop4412开发板的控制台打印串口。

其他开发板控制台串口分别是:

4418-ttyAMA0

6818-ttySAC0

iMX6Q&iMX6UL-ttymxc0

buildroot 开发环境 ncurses buildroot opencv_ide_06

返回上一层,再继续返回上一界面,进入 Filesystem images 目录,选中 tar the rootfilesystem,如下图所示:

buildroot 开发环境 ncurses buildroot opencv_ide_07

返回上一层,进入“Target packages”目录,如下图所示:

buildroot 开发环境 ncurses buildroot opencv_项目实战_08

进入“Libraries”,如下图所示:

buildroot 开发环境 ncurses buildroot opencv_ide_09

进入“Graphics”选中“opencv”如下图所示:

buildroot 开发环境 ncurses buildroot opencv_开发板_10

然后返回到 “ Target packages ”,进入下图显示的路径,选中“ Qt”如下图所示:

buildroot 开发环境 ncurses buildroot opencv_ide_11

进入“Qt”,选中“Gui Module”,如下图所示:

buildroot 开发环境 ncurses buildroot opencv_ide_12

3、编译及生成文件系统镜像

        编译 buildroot,在buildroot根目录下直接执行 make 就可以完成了,第一次编译的过程中需要自动下载一些工具,所以要保持 Ubuntu 系统联网,会花费一些时间。

       编译完成后,进入output 文件,targer就是我们编译生成的文件系统,当然buildroot会将其打包成相关镜像,但是格式种类(“menuconfig”中的“Filesystem images”目录下配置)有限,镜像就放在image目录下,我们还是回到output目录下。

    iTop-4412使用命令“make_ext4fs -s -l 314572800 -a root -L Linuxsystem.img target/”生成文件系统镜像。其他开发板使用压缩命令打包成对应的格式即可。

buildroot 开发环境 ncurses buildroot opencv_ide_13

4、内核配置

 

      这部分 4418,6818 和 imx6ul 默认配置可以直接跳过这步,(4412 和 imx6q 默认没有配置)以4412为例,我们在内核目录,我们进入4412内核目录,使用 make menuconfig 配置内核,进入Device Drivers,在进入Generic Driver Options,如下图:

buildroot 开发环境 ncurses buildroot opencv_项目实战_14

然后选择 Maintain a devtmpfs filesystem to mount at /dev,再选择 Automount devtmpfs at /dev, after the kernel mounted the rootf,如下图:

buildroot 开发环境 ncurses buildroot opencv_开发板_15

5、测试

 

       我们把编译生成的文件系统烧写进开发板,然后把QT测试程序和测试图片拷贝进开发板,运行程序我们可以看到程序已经成功执行,如下图所示:

buildroot 开发环境 ncurses buildroot opencv_开发板_16

6、资料获取

      后台回复"opencv" 关键字即可获得百度网盘下载链接。有需要的小伙伴可以自行下载:

buildroot 开发环境 ncurses buildroot opencv_项目实战_17

.