yocto系列之针对rk3588平台构建一个基础镜像

2024-03-16 14:04

本文主要是介绍yocto系列之针对rk3588平台构建一个基础镜像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

回顾

在前面的相关文章中,我们讨论了Yocto的基础知识以及主机的设置,随后进行了一个基本的镜像构建。这里是前面文章的相关链接:

Yocto: 第1部分 - yocto系列之yocto是个什么东东

https://mp.csdn.net/mp_blog/creation/editor/136742286

Yocto: 第2部分 - yocto系列之配置ubuntu主机

https://mp.csdn.net/mp_blog/creation/editor/136742286

Yocto: 第3部分 - yocto系列之构建与运行第一个镜像

https://mp.csdn.net/mp_blog/creation/editor/136760112

在本文中,我们将看到如何将第3篇文章中完成的工作推进,构建适用于RK3588平台的测试镜像。

配置构建环境

sun@sun-vm:~/work$ mkdir yocto

sun@sun-vm:~/work$ cd yocto/

git clone https://github.com/yoctoproject/poky -b kirkstone

假设我们的构建目录是rk3588-build

在当前目录下执行source poky/oe-init-build-env rk3588-build

执行完上述指令直接切换到目录rk3588-build目录下:

当我们为QEMU构建镜像时,我们无需进行任何层配置,因为poky本身已经包含了特定QEMU所需的配方。

根据 meta-rockchip 层的 README.md文档,我们至少需要 meta-openembedded 层,可能还需要其他一些,具体取决于镜像中所需的功能。meta-openembedded 中的recipes支持嵌入式架构的构建,例如ARM、MIPS等。

对于我们的构建,我们还将添加其他一些层,这些层对于网络、Python、多媒体等功能是必要的。我们将首先下载这些层,然后添加到我们的构建配置中。

下载必要的layers

现在我们将逐一下载必要的layers。将 meta-xx 层放在与 poky 目录相同的目录层次中是一个推荐的做法,这样的目录结构有助于多个构建目录可以共享这些层。

下载 Open-Embedded,并切换到kirkstone分支

git clone git://git.openembedded.org/meta-openembedded.git -b kirkstone

现在让我们下载 meta-rockchip 层的源代码。该层包含了构建rockchip系列开发板的基本镜像所需的所有配方。我们在第一部分中讨论的分层概念在这里得到了应用。meta-rockchip 层将包含适用于内核、驱动程序、配置等的相应recipes,这些recipes将覆盖 poky 和 meta-openembedded 中的相应的recipes,例如 Linux 内核配置。

git clone https://github.com/JeffyCN/meta-rockchip.git -b kirkstone

现在我们的目录层次是这样:

可以通过编辑活动构建目录中的 conf/bblayers.conf 文件手动修改 bitbake 层配置。然而,这种方法容易出现语法错误,可能导致由于解析器解析失败而导致构建失败。

最好的方法是使用方便的 bitbake-layers 命令,将必要的层添加到构建中,在我们的 yocto 构建目录中执行以下命令:

bitbake-layers add-layer /home/sun/work/yocto/meta-openembedded/meta-oe

bitbake-layers add-layer /home/sun/work/yocto/meta-openembedded/meta-python

bitbake-layers add-layer /home/sun/work/yocto/meta-openembedded/meta-networking

bitbake-layers add-layer /home/sun/work/yocto/meta-openembedded/meta-multimedia

bitbake-layers add-layer /home/sun/work/yocto/meta-rockchip/

现在,可以通过执行以下命令来检查层配置是否已更新。

bitbake-layers show-layers

选择machine与镜像

选择machine

meta-rockchip 层支持的machine名称可以在 meta-rockchip/conf/machine 目录中找到。每个 .conf 文件都是machine配置文件,machine的名称就是文件的名称(不包括 .conf 文件扩展名)。可以通过从 yocto 目录执行以下命令来列出 meta-rockchip 中支持的machine列表:

在本文对应的构建示例中我们选择rockchip-rk3588-evb

选择镜像

要查看可以构建的镜像,请查看 meta-rockchip/recipess-core/images 目录的内容。如若此目录中没有相应的.bb文件,再查看poky/meta/recipess-core/images/目录。

我们可以看到很多.bb文件,抛开.bb扩展名的文件名就是可以构建的镜像名称。

配置machine变量

进入到rk3588构建目录

sun@sun-vm:~/work/yocto$ source poky/oe-init-build-env rk3588-build/

编辑conf/local.conf 文件

vim conf/local.conf

资源获取

资源获取中遇到的问题:

Q1

A1 由于网络问题导致, 重复fetch几遍。

镜像编译

bitbake core-image-minimal

编译过程输出如下:

这个过程,根据个人的计算机资源与网络情况而不同, 大体来讲,这个时间不会短, 请耐心等待。

这篇关于yocto系列之针对rk3588平台构建一个基础镜像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815709

相关文章

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re