学习Yocto可以做哪些实际项目

What kind of practical projects can I do to learn Yocto

我是通过 Chris Simond 的书开始学习 Yocto 的,达到了一个我不知道在实践中可以用这些知识做什么的水平。

对我可以锻炼和应用所学知识的实际项目有什么建议吗?

Yocto 用于创建自定义嵌入式 Linux 发行版。

自定义 Linux 发行版专用于嵌入式板卡(RPI、iMX、BBB 等)(您也可以为 x86 构建)

使用 Yocto,您可以在两个方面工作:软件和 BSP

  1. 软件:
  • 为新项目开发配方以将它们集成到您的图像中。
  • 创建自定义 类 来管理项目配方
  • 为项目创建自定义 DISTRO
  • 创建自定义图像和包组
  • 等等
  1. BSP:
  • 您正在研究 Linux 内核配方以添加驱动程序、DTS 等
    • 创建一个 out-of-tree 驱动程序配方
    • 创建 in-tree 驱动程序补丁
    • 使用 defconfig 和片段
    • 等等
  • 您正在研究 U-boot 添加驱动程序、DTS 等的方法
    • 如果你有新板,你添加一个完整的板支持
  • 等等

基本和硬件有关

如果你有一个嵌入式板,那么你可以设定一个项目想法并开始实践。

例如:

硬件:RaspberryPi(支持所有集成硬件组件)

Add-Ons:

  • 外部 I²C/SPI 传感器
  • USB CAN/Network外设

想法:

  • 研究 Linux 配方,为新组件添加配置片段
  • 了解Linux子系统,为它们开发驱动程序(这是嵌入式Linux工作的核心)
  • 为传感器数据开发一个简单的 QT5 应用程序
  • 使用 meta-qt5 和 qt5 图像、食谱和 类。
  • 为 QT5 应用程序开发您自己的配方
  • 开发您自己的 Yocto 发行版
  • 由于您添加了新的硬件组件,您可以根据 RPI 添加新机器

最后,您会发现自己对 Yocto 做了很多工作(类、图像、DISTRO、MACHINE、包组、补丁、bbappends、新层、配方等)

如果您没有嵌入式板,您可以使用 QEMU 和 x86 或 QEMU 中任何支持的架构来处理软件部分。然后,您创建图像、新食谱,并尝试根据您的需要创建完整图像和目录。

注意

  • 您可以使用 SDKs 进行 drivers/qt5 交叉编译
  • repokas用于项目的图层集合或管道自动生成