接前一篇《迅为4412-linux-arm板上opencv移植–终极解决方案(原创)》。
平台:Exynos4412。
实验平台:iTOP-4412-精英版。
编译平台:Ubuntu12.04。
编译器版本:arm-4.4.1,懒人直接用的开发板自带的。
buildroot版本:直接官网下载。过段时间就更新,大家下载最新的,应该不会出问题。
opencv版本:opencv2.4.9,opencv是通过buildroot下载的。
1.2 buildroot-opencv的配置-glibc配置
如下图使用命令“cd buildroot-2015.05”进入解压出来的源码目录下。
执行“make menuconfig”命令,进入配置界面,如下图所示。
进入“Target options”目录,将 Target Architecture 配置为 ARM(littlt endian),将 Target Architecture Variant 配置为cortex-A9,将Target ABI 配置为 EABI,将ARM instruction set 配置为 ARM。如下图所示。
再退回上一界面后,进入Toolchain目录:将Toolchain type配置为Buildroot toolchain,然后在Kernel Headers中选择linux的版本,这里选Manually specified Linux version,在Custom kernel headers series中选择3.0.x,然后在linux version中填写linux版本,笔者使用3.0版,后面编译时, buildroot 将会自动下载对应的工具链并自动安装,将C library配置为glibc–这个最关键,否则opencv库一定无法使用。选中 Enable MMU support和 Enable C++ support。如下图所示。
退回上一界面后,进入 System configuration 界面,在 System hostname 一栏中输入开发板的名称,如 4412,在 Init system 中选择 BusyBox,在/devmanagement 中选择Dynamic using mdev,即使用mdev动态加载设备节点的方式,然后在Path to the permission tables中选择设备节点的配置表,这里我们一定要选择system/device_table_dev.txt,否则后面在dev目录下将不会生成各种设备节点。当然我们也可以手动的配置该文件,添加必要的节点或删除不需要的节点。Root password为配置进入linux 控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为root。如下图所示。
选中Run a getty(login prompt)after boot,再进入getty options选项:将TTY port配置为ttySAC2,将 baudrate 配置为115200,对应4412开发板的控制台打印串口。如下图所示。
返回上一层,再继续返回上一界面,进入 Filesystem images 目录,选中tar the rootfilesystem,如下图所示。
返回上一层,进入“Target packages”目录,如下图所示。
进入“Libraries”,如下图所示。
进入“Graphics”选中“opencv”如下图所示。
然后返回到“Target packages”,进入“Graphic libraries and applications (graphic/text)”目录,选中“ Qt”如下图所示。
进入“Qt”,选中“Gui Module”,如下图所示。
最后保存当前的配置并退出,配置完成。如下图所示。用户也可以根据自己的实际需要进行配置。