源码编译qt5-搭建rockchip的yocto编译环境

概述

嵌入式同学应该知道,在Linux驱动开发过程中,需要搭建交叉编译工具链环境,移植u-boot、内核、根文件系统。 一开始我们的学习是学习单独使用几个模块,为每个部分生成代码,然后对其进行编程。 有时我们会使用脚本将各部分的代码打包在一起进行编程。

后来随着工具的发展源码编译qt5,我们只需要一个SDK就可以完成从编译跨工具链到生成打包文件的所有工作。 这些软件更改最初是为了方便根文件系统的编译。 最开始busybox需要我们自己移植lib,而且还得自己添加很多第三方软件。 现在比较常见的buildroot是集成生成,包括明天要介绍的yocto环境。 虽然buildroot很精致,但有些功能并不能完全满足开发,比如ROS和QT支持。

魏东山老师在最新的PDF中是这样介绍yocto的。

Yocto 超级难用

仅下载的程序容量就达到10G,使用普通个人电脑编译需要20多个小时。 稍后我会更改程序,

再次制作至少需要半个小时。

我们别无选择,只能使用 Yocto:QT GUI 程序需要使用 GPU 的一些库,这个问题我们在 Buildroot 上还没有解决。

魏东山

确实,yocto 具有其他环境无法比拟的优势。 建议使用buildroot自己使用。 除非必要,不建议使用yocto。 现在介绍一下我是如何搭建适合rockchip的yocto环境的。

1. 基本介绍

rockchip的bsp重构有以下三种方法:

1、rockchip维护的linux sdk包涵盖了uboot、kernel、buildroot(方便rootfs的建立)、toolchain。

其中buildroot也是官方推荐的bsp维护方式。 采用make和pkg-config工作方式,使用方便。

2. 独立获取rockchip的uboot和kernel,相比原版有rockchip的补丁。

3. rockchip 维护的 Yocto 与 buildroot 类似,但稍微复杂一些。 它采用bitbake工作模式。 相应地,其工作方式也更加灵活、有力。

本文介绍rk的yocto环境的配置:

Yocto 项目(英语:Yocto Project)是 Linux 基金会于 2010 年宣布的一个自由软件项目计划。该计划的目标是创建可以提供嵌入式 Linux 发行版的软件工具,以改进软件开发过程。 2011年3月,该项目与OpenEmbedded项目合并,使用OpenEmbedded-Core项目作为该项目的另一个名称。

它提供跨平台工具、元数据和流程,以促进 Linux 嵌入式系统的快速、可重复开发。

Yocto项目主要由三个部分组成:

BitBake:读取配置文件和配方文件(recipes)并运行它们来配置和构建指定的应用程序或系统文件映像文件。

OpenEmbedded-Core:它由基本层组成,是配方、层和类的集合:这些元素在 OpenEmbedded 系统中共享。

Poky:是一个参考系统。 它是许多项目和工具的集合,用于允许用户扩展新的发行版(Distribution)

来自:维基百科

首先,我们需要准备一个足够大的目录来放置yocto,因为在编译过程中,yocto会下载很多包,至少我编译后,空间有32G。

Atomic Atom的imx6u的yocto制作中竟然还有这么几句话描述

Yocto需要预留足够的硬盘空间来构建根文件系统。 I.MX yocto手册规定至少必须保留120G的空间。

yocto 构建根文件系统需要很长的时间,不建议使用低配置的笔记本电脑来完成。 否则可能需要一两天的时间来设置。

yocto 构建的根文件系统包括官方评估板使用的所有内容。 文件系统非常庞大,需要读者自行裁剪。

2、准备工作

1.首先我们需要在github上git git rockchip的yocto源代码。 这时候我们就需要在笔记本上搭建一个git环境。 关于这块的操作请看我之前的文章。

git入门从安装到多账户操作(一)入门

一套git从安装到多账户操作(二)多账户使用

这里不多描述。

2.安装一些编译所需的包

sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath sudo apt-get install libsdl1.2-dev xterm sudo apt-get install make xsltproc docbook-utils fop sudo apt-get install autoconf automake libtool libglib2.0-dev

3.使用repo获取git源码

repo 是一个基于 Git 构建的工具,可以更轻松地管理包含不需要位于同一服务器上的多个存储库的项目。 该存储库很好地补充了 yocto 项目的分层功能,使用户可以更轻松地将自己的层添加到 BSP 中。 简单来说,repo是用来管理多个git项目的。 git 很难在存储库中克隆制造商的项目。 如果我们只需要厂家的yocto项目,(如果你想知道的话,芯片厂家不仅仅有yocto项目),使用Git下载,所有的repository项目都下载完了。

这是使用回购协议来管理大型项目的动机。

以下是repo命令上面的git源码

repo init --repo-url=https://github.com/rockchip-linux/repo-u https://github.com/rockchip-linux/manifests-b yocto -m rocko.xml

下载后,更新文件

repo sync

我在第一步下载的文件相对较少。 第二部分同步更新时,下载了很多文件。 (如果有梯子,请使用梯子。)目录如下

这是我编译然后使用树2级目录时的情况(3级以上文件太多无法显示)

├── 建造

│ ├── bitbake-cookerdaemon.log

│ ├── bitbake.lock

│ ├── bitbake.sock

│ ├── 建造

│ └── 会议

├── flash_tool.sh

├── 自述文件

├── rkbin

│ ├── 垃圾箱

│ ├── img

│ ├── 自述文件

│ ├── RKBOOT

│ ├── RKBOOT.ini

│ ├── RKTRUST

│ ├── 脚本

│ └── 工具

├── 设置环境

└── 来源

├── 基地

├── 比特烘焙

├── 元浏览器

├── 元开放嵌入式

├── 元-qt5

├── 元瑞芯微

├── 元-rockchip-extra

└── 狭小

3. 选择要编译的配方

下载完源代码后,我们就开始编译软件。 首先是配置环境并编译yocto编译工具。

MACHINE=firefly-rk3399 DISTRO=rk-x11 . ./setup-environment -b build

(注意两个点之间有一个空格。在这一步中,您通过执行 setup-environment 脚本来构建 yocto 并建立系统环境变量。MACHINE 指定模型,DISTRO 指定图形前端,rk-x11 表示使用x11前端,rk-wayland使用wayland前端,rk-none使用eglfs前端,-b指定创建目录,命令执行成功会直接跳转到创建目录)

接下来,我们将开始使用bitbake工具进行编译。 笔记:

这里遇到了一个问题,困扰了我很长时间。 我随机使用了一个编译选项,这提示了我

错误:无法启动 bitbake 服务器

我在 stackoverflow 上收到了相关文章

他们都提示我我构建的系统缺少一些软件包。

想了想,觉得一开始就已经安装了这个包,已经具备了使用yocto正常编译的环境了。 Stackoverflow 已经不再好了。 最后,经过一番挖掘,我发现了问题所在。

在sources/poky下隐藏着一个文件oe-init-build-env。 它是专门用来启用bitbake工具的,因此我们不仅需要设置安装环境,而且还需要在编译目录中进行设置。

source ../sources/poky/oe-init-build-env

这样我们就可以编译出相应的交叉工具链、根文件系统、内核、u-boot了。

其实这个时候我需要详细的设置一下编译环境,以及对应的编译镜像所需要的包。 不过,由于我是在进行环境的初始设置,所以我只是选择默认配置源码编译qt5,然后进行一些简单的编译。

Bitbake 核心图像最小

从里面的图片可以看到,我配置完bitbake之后,有一些编译的参考选项,包括根文件系统、toolchain(编译工具链)等。

bitbake core-image-minimal

由于是第一次编译,加上bitbake边编译边下载的机制,所以我这次编译花了十几个小时,而且是一个完整的过程。

查看编译后的文件

ls tmp/deploy/images/qemux86/

用同样的操作继续编译u-boot

bitbake u-boot-mkimage

继续编译编译工具链

bitbake meta-toolchain

继续编译内核

bitbake linux-yocto

在搭建yocto环境的过程中,我也收集了一些官方的文章和文章。 如果需要的话,关注我的公众号,回复yocto环境搭建,就可以收到信息。

这是我分享的rockchip的yocto环境搭建。 由于篇幅较长,我无法继续介绍。 有时间我会介绍如何添加、修改、删除yocto对应的源码包,yocto交叉工具链的编译设置等,如果大家有更好的想法,欢迎分享。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 源码编译qt5-搭建rockchip的yocto编译环境 https://www.wkzy.net/game/196691.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务