【北京迅为】iTOP-4412全能版使用手册-第九十三章 使用Buildroot构建linux-OpenCV开发环境

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。

【交流群2】258811263(获取开源资料)

【迅为B站】北京迅为电子的个人空间-北京迅为电子个人主页-哔哩哔哩视频


第九十三章 使用Buildroot构建linux-OpenCV开发环境

有一些用户反映在使用上节所介绍的步骤编译 OpenCV 的时候,常会出现一些状况,而本节使用 buildroot 来构建开发环境就要好的多,毕竟 buildroot 是个集成的软件包,所以笔者也推荐使用本节的方式来构建开发环境。

本文档介绍的是使用 buildroot 构建 linux-opencv 开发环境,Buildroot 是 Linux 平台上一个构建嵌入式 Linux 系统的框架。整个 Buildroot 是由 Makefile 脚本和 Kconfig 配置文件构成的。你可以和编译 Linux 内核一样,通过 buildroot 配置,menuconfig 修改,编译出一个完整的可以直接烧写到机器上运行的 Linux 系统软件(包含 boot、kernel、rootfs 以及rootfs 中的各种库和应用程序)。

下面我们结合 iTop4412 开发板来讲解一下如何使用 buildroot 制作该文件系统。

93.1 源码

我们从 buildroot 官网 http://buildroot.uclibc.org/download.html 获取 buildroot 源码包,笔者这里下的是 buildroot-2015.05.tar.gz。

首先拷贝“buildroot-2015.05.tar.gz”到我们的 Ubuntu 虚拟机上,然后在 Ubuntu 命令行,使用命令“tar -xcf buildroot-2015.05.tar.gz ”,解压完成后如下图。

 

93.2 配置

如下图使用命令“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。选中 Enable MMU support 和 Enable C++ support。如下图所示。

 退回上一界面后,进入 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 控制台终端后的密码,为空则登录时不需要密码,默认登录用户名为 root。如下图所示。

 选中 Run a getty(login prompt)after boot,再进入 getty options 选项:将 TTY port 配置为 ttySAC2,将 baudrate 配置为 115200,对应 iTop4412 开发板的控制台打印串口( 其他开发板控制台串口分别是 4418-ttyAMA0 、6818-ttySAC0 、iMX6Q&iMX6UL- ttymxc0)。如下图所示。

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

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

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

然 后 返 回 到 “ Target packages ” , 进 入 “ Graphic libraries and applications (graphic/text)”目录,选中“ Qt”如下图所示。 

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

 最后保存当前的配置并退出,配置完成。如下图所示。用户也可以根据自己的实际需要进行配置。

 

93.3 编译buildroot及生成文件系统镜像

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

在编译 qt 部分时,会遇到询问编译版本的对话,我们选择开源代码,接受相关条款,如下图所示。 

 编译完成后,我们使用命令“cd output”,进入 output 文件,targer 就是我们编译生成的文件系统,当然 buildroot 会将其打包成相关镜像,但是格式种类(“menuconfig”中的“Filesystem images”目录下配置)有限,镜像就放在 image 目录下,我们还是回到“output”目录下,使用命令“make_ext4fs -s -l 314572800 -a root -L Linux system.img target/”生成文件系统镜像,如下图所示。

 

如果使用的其他开发板,参照开发板手册“制作最小文件系统镜像”相关章节,对“terger”目录下文件进行打包即可。

93.4 内核配置

我们进入 4412 内核目录,使用 make menuconfig 配置内核,进入 Device Drivers,如下图。

 在进入 Generic Driver Options,如下图。

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

 保存退出,并编译内核(这部分 4418,6818 和 imx6ul 默认配置,4412 和 imx6q 默认没有配置)。

93.5 开发板测试

我们通过 fastboot 工具将镜像烧写进 iTop4412 开发板,只替换 qt 系统镜像中的zImage 和 system.img 文件即可,如下图所示。

 等待开发板启动,输入“root”即可进入。如下图所示。

 将我们提供的 QT 程序及 1.bmp 拷贝到 U 盘,使用命令“mount /dev/sda1 /mnt/”挂载 U 盘,然后使用命令“cd /mnt/”进入 U 盘目录,使用命令“./opencv -qws &”运行 qt 程序,如下图所示。

 我们可以看到 opencv 的程序正在执行,如下图所示。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值