设为首页 加入收藏

TOP

使用Yocto进行嵌入式Linux开发2 第一个基于Poky的系统(一)
2023-09-23 15:43:28 】 浏览:175
Tags:使用 Yocto Linux 开发 Poky

2 第一个基于Poky的系统

2.1 构建主机系统

  • Ubuntu:
$ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev xterm python3-subunit mesa-common-dev zstd liblz4-tool

  • Fedora

$ sudo dnf install gawk make wget tar bzip2 gzip python3 unzip perl patch diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath ccache perl-Data-Dumper perl-Text- perl-Thread-Queue perl-bignum socat python3-pexpect findutils which file cpio python python3-pip xz python3-GitPython python3-jinja2 SDL-devel xterm rpcgen mesa-libGL-devel perl-
FindBin perl-File-Compare perl-File-Copy per-locale zstd lz4

2.2 下载Poky 代码

在我们的开发主机系统上安装了所需的软件包后,我们可以使用 Git 下载当前 LTS 版本的 Poky 源代码,命令如下:


$ git clone https://git.yoctoproject.org/poky -b kirkstone

下载完成后,poky 目录中的内容如下:

2.3 准备构建环境

在poky目录中存在oe-init-build-env脚本,用于设置构建环境。


$ source oe-init-build-env [build-directory]

这里,[build-directory] 是一可选参数,用于指定配置环境的目录名称。如果为空,则默认为 build。

2.4 local.conf

初始化构建环境时,它会创建build/conf/local.conf文件。这个配置文件功能强大,几乎可以配置构建过程的方方面面。我们可以为自定义跨工具链设置目标机器和工具链主机架构,优化选项以最大限度地缩短构建时间等等。build/conf/local.conf文件内的注释是极好的文档,也是可能的变量及其默认值的参考。我们可能需要更改默认值的最小变量集如下:

MACHINE ??= "qemux86-64"

通过 MACHINE 变量,我们可以确定要构建的目标机器。在撰写本文时,Poky的参考BSP支持以下机器:

  • beaglebone-yocto

BeagleBone,是 32 位 ARM 的参考平台

  • genericx86

这是对基于x86的32位机器的通用支持

  • genericx86-64

这是对基于x86的64位机器的通用支持

  • edgerouter

这是 EdgeRouter Lite,是64位MIPS 的参考平台。

除了这些机器外,OpenEmbedded Core在meta目录中还提供了对以下快速仿真 (QEMU) 机器的支持:

  • qemuarm: QEMU ARMv7 仿真
  • qemuarmv5:这是 QEMU ARMv5 仿真
  • qemuarm64:这是 QEMU ARMv8 仿真
  • qemumips: 这是 QEMU MIPS 仿真
  • qemumips64: 这是 QEMU MIPS64 仿真
  • qemuppc: 这是 QEMU PowerPC 仿真
  • qemuppc64: 这是 QEMU PowerPC 64 仿真
  • qemux86-64: 这是 QEMU x86-64 仿真
  • qemux86: 这是 QEMU x86 仿真
  • qemuriscv32:这是 QEMU RISC-V 32 仿真
  • qemuriscv64: 这是 QEMU RISC-V 64 仿真

一些供应商提供的额外BSP层为其他机器提供支持。使用额外BSP层的过程参见第11章 "探索外部层"。

注意local.conf文件是覆盖整个Yocto项目工具中若干全局默认配置的便捷方法。基本上,我们可以更改或设置任何变量,例如在映像文件中添加额外的软件包。更改 build/conf/local.conf文件非常方便,但源代码管理系统通常不会跟踪此目录中的临时更改。

build/conf/local.conf 文件可以设置多个变量。值得花些时间阅读生成的文件注释,以便大致了解可以设置哪些变量。
构建目标映像Poky提供了几种预先设计好的映像配方,我们可以用它们来构建二进制映像。我们可以在 poky 目录下运行以下命令来查看可用图像列表:

$ ls meta*/recipes*/*images/*.bb 

所有配方提供的镜像都是一组解包和配置好的软件包,生成的文件系统可用于硬件或受支持的 QEMU 机器之一。
接下来,我们可以看看最常用的镜像列表:

  • core-image-minimal 镜像: 这是一个允许设备启动的小型镜像。它便于内核和引导加载器的测试和开发。
  • core-image-base: 该图像仅用于控制台,为目标设备提供基本硬件支持。
  • core-image-weston: 该镜像提供 Wayland 协议库和参考 Weston 合成器。
  • core-image-x11:这是一个带有终端的基本 X11 映像。
  • core-image-sato:这是一个支持 Sato 的镜像,为使用 X11 的移动设备提供移动环境。它提供终端、编辑器、文件管理器、媒体播放器等应用程序。
  • core-image-full-cmdline: 纯控制台镜像,安装了功能更全面的 Linux 系统功能。

社区还提供其他参考镜像。有几种镜像支持实时、initramfs 和 MTD(闪存工具)等功能。最好查看源代码或《Yocto 项目参考手册》(https://docs.yoctoproject.org/4.0.4/ref-manual/index.html )以获取完整的最新列表。

为目标构建镜像的过程很简单。但首先,在使 BitBake 之前,我们需要使用源代码 oe-init-build-env [build-directory] 来设置构建环境。要构建镜像,我们可以使用下面命令中的模板:

$ bitbake core-image-full-cmdline

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用Yocto进行嵌入式Linux开发1 Y.. 下一篇《痞子衡嵌入式半月刊》 第 80 期

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目