首页 > 运维 > linux运维 > 正文

怎么使用 Yocto 构建文件系统?

爱谁谁
发布: 2025-07-17 10:22:31
原创
998人浏览过
  1. 简介

yocto项目采用一种更加强大和定制的途径来构建适合嵌入式产品的linux系统。yocto不仅仅是一个制作文件系统的工具,同时提供了一整套基于linux的开发和维护工作流程,使得底层嵌入式开发者和上层应用开发者可以在统一的框架下进行开发,解决了传统开发方式下零散和无管理的开发问题。

Yocto是一个开源的“umbrella”项目,意味着它包含了许多子项目。Yocto将所有这些项目整合在一起,并提供了一个参考构建项目Poky,用于指导开发人员如何应用这些项目来构建嵌入式Linux系统。它包括Bitbake、OpenEmbedded-Core、板级支持包以及各种软件包的配置文件。可以构建出满足不同需求的系统,例如带有Qt5.14图形库的100ask-image-qt系统,全功能命令行系统100ask-image-core,以及基于ST官方weston系统及100ask-image-weston的系统。

100ASK_STM32MP157提供了符合Yocto的配置文件,帮助开发者构建可烧写到100ASK_STM32MP157_PRO板上的Linux系统镜像。Yocto还提供了丰富的开发文档资源,供开发者学习并定制自己的系统。由于篇幅有限,本文无法完整介绍Yocto的使用,请用户自行上网搜索。

本节适合需要对文件系统进行深度定制的开发者,希望从Yocto构建出符合100ASK_STM32MP157系列开发板的文件系统,同时满足其定制需求。初次体验使用或无特殊需要的开发者可以直接使用MYD-YA157C提供的文件系统。为了加速Yocto构建,100ASK_STM32MP157已经将相关软件打包好,开发者可以直接解压使用,减少重复下载的时间。注意:构建Yocto时不需要加载工具链环境变量,请创建新shell或打开新的终端窗口。

注意:以2.5Ghz主频的4核处理器、DDR4 8GB内存和200GB磁盘空间为例,编译100ask-image-core可能需要至少5个小时,而编译带有QT或weston界面的系统镜像可能需要10个小时以上。Yocto的最小支持配置建议在2GB内存、2核2.5Ghz处理器和100GB磁盘空间上进行。

注意:执行一键配置环境脚本以安装部分依赖包,否则在编译时会报错。

  1. 配置编译

为了运行以下命令,请确保已正确配置编译环境:

book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell$ DISTRO=openstlinux-eglfs MACHINE=100ask source layers/meta-100ask-st/scripts/envsetup.sh
登录后复制

怎么使用 Yocto 构建文件系统?

由于Yocto所需的软件包大部分保存在国外网站,国内下载速度较慢,因此需要单独拷贝资料光盘中的“07_Bsp_sdk (BSP包)/YoctoDunfell_Downloads.tar.gz”到“/home/book/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask”目录下,然后执行“tar -xvf YoctoDunfell_Downloads.tar.gz”等待解压完成,会生成一个downloads文件夹,内含所有Yocto下载所需的软件包。

继续执行编译命令:

book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask$ bitbake 100ask-image-core
登录后复制

怎么使用 Yocto 构建文件系统?

编译完成后,生成的目录镜像位于“book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask/tmp-glibc/deploy/images/100ask”目录内。

  1. 扩展命令

3.1 单独编译某个包

例如,单独编译内核,需要先清除之前的编译缓存再进行编译:

即构数智人
即构数智人

即构数智人是由即构科技推出的AI虚拟数字人视频创作平台,支持数字人形象定制、短视频创作、数字人直播等。

即构数智人 36
查看详情 即构数智人
book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask$ bitbake virtual/kernel -c cleansstate
book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask$ bitbake virtual/kernel
登录后复制

编译某个包需要执行如下命令,其中pkg为包名,通常以.bb为后缀,加上-v参数可以输出编译详细信息:

book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask$ bitbake <pkg> -v
登录后复制

3.2 编译 SDK

编译完系统后,可以执行如下命令生成SDK包,用于后续针对系统的应用开发:

book@100ask:~/100ask_stm32mp157_pro-sdk/Yocto_Dunfell/build-openstlinuxeglfs-100ask$ bitbake meta-toolchain
登录后复制

编译完成后生成的压缩包通常位于“DISTRO/tmp-glibc/deploy/sdk”目录内。

3.3 其它命令

使用多线程编译,需要修改DISTRO里面的conf/local.conf配置文件,新增以下两个参数:

BB_NUMBER_THREADS ?= "8"
PARALLEL_MAKE ?= "-j 8"
登录后复制
  1. 深入学习 Yocto

目前国内针对Yocto的教程较为稀缺,可以参考Yocto官方提供的英文教程进行学习,资料网址为https://www.yoctoproject.org/docs/。可以优先阅读学习如下图红框所示的两份在线资料。

怎么使用 Yocto 构建文件系统?

有几本基于Yocto项目开发的书籍推荐阅读:

怎么使用 Yocto 构建文件系统?

国内有一位作者将左图中的《Embedded Linux Projects Using Yocto Project Cookbook》翻译成了中文版,国内可以在各大图书网站直接购买阅读。

怎么使用 Yocto 构建文件系统?

以上就是怎么使用 Yocto 构建文件系统?的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号