学习Yocto可以做哪些实际项目
What kind of practical projects can I do to learn Yocto
我是通过 Chris Simond 的书开始学习 Yocto 的,达到了一个我不知道在实践中可以用这些知识做什么的水平。
对我可以锻炼和应用所学知识的实际项目有什么建议吗?
Yocto 用于创建自定义嵌入式 Linux 发行版。
自定义 Linux 发行版专用于嵌入式板卡(RPI、iMX、BBB 等)(您也可以为 x86 构建)
使用 Yocto,您可以在两个方面工作:软件和 BSP
- 软件:
- 为新项目开发配方以将它们集成到您的图像中。
- 创建自定义 类 来管理项目配方
- 为项目创建自定义 DISTRO
- 创建自定义图像和包组
- 等等
- 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 中任何支持的架构来处理软件部分。然后,您创建图像、新食谱,并尝试根据您的需要创建完整图像和目录。
注意
- 您可以使用
SDK
s 进行 drivers/qt5 交叉编译
- 将
repo
或kas
用于项目的图层集合或管道自动生成
我是通过 Chris Simond 的书开始学习 Yocto 的,达到了一个我不知道在实践中可以用这些知识做什么的水平。
对我可以锻炼和应用所学知识的实际项目有什么建议吗?
Yocto 用于创建自定义嵌入式 Linux 发行版。
自定义 Linux 发行版专用于嵌入式板卡(RPI、iMX、BBB 等)(您也可以为 x86 构建)
使用 Yocto,您可以在两个方面工作:软件和 BSP
- 软件:
- 为新项目开发配方以将它们集成到您的图像中。
- 创建自定义 类 来管理项目配方
- 为项目创建自定义 DISTRO
- 创建自定义图像和包组
- 等等
- 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 中任何支持的架构来处理软件部分。然后,您创建图像、新食谱,并尝试根据您的需要创建完整图像和目录。
注意
- 您可以使用
SDK
s 进行 drivers/qt5 交叉编译 - 将
repo
或kas
用于项目的图层集合或管道自动生成