轻松学习yocto: 10-Yocto 学习路线
到此 我可以重建core-image-minimal 带有ssh-dropbear, pi image IP设置好了 windows也可以用putty 连接pi2, 接下来我学什么你现在其实已经跨过了一个非常重要的坎你不再只是“会编译 Yocto”而是已经能从 recipe → BitBake → rootfs → WIC → SD Card →Raspberry Pi → SSH完整跑通一条链。文章摘要本文为 Yocto 学习者规划了一条从“会编译”到“能定制”的清晰进阶路径。作者基于读者已成功构建并运行带 SSH 的 Raspberry Pi 镜像这一基础提出了Yocto 第二阶段的九个核心实验旨在帮助读者建立完整的嵌入式 Linux 产品开发思维从零编写最小 Recipe通过一个纯 Shell Script 的hello-yocto.bb掌握从 Recipe 到最终在 Pi 上运行的完整流程。编写 Systemd Service让应用开机自启理解 Yocto 如何定义系统服务。创建自己的 Layer建立meta-myproduct学习通过 Layer 覆盖和扩展官方配置这是工程化开发的基础。区分 local.conf 与 Layer理解临时构建配置与产品级配置的边界培养配置管理意识。创建自定义 Image Recipe告别core-image-minimal定义属于自己的产品镜像。深入 Kernel 定制在理解上层构建流程后再学习内核配置、模块和设备树。使用 SDK 进行应用开发为自定义镜像生成 SDK在主机上进行交叉编译应用开发。遵循结构化学习路线提供了从 Recipe 到 BSP 的 11 个阶段学习表格避免盲目学习。巩固核心主线强调应专注于 BitBake → Recipe → Package → Rootfs → Image 这条核心构建链暂缓学习 Docker 等外围技术。全文核心思想是Yocto 是一个构建系统其目标是让你能够定义和构建属于自己的完整 Linux 产品而不仅仅是编译软件。下一步建议立即动手实践第一个实验编写hello-yocto.bb。结合我们前面已经做过的 busybox.bb、busybox.inc、task dependency、do_compile/do_install/do_package、WIC 和 Dropbear我建议不要马上去学别的 recipe。下一阶段应该进入Yocto 第二阶段从“构建系统”进入“定制系统”我建议你按下面顺序走。1. 我最建议你下一课自己写一个最小 recipe不要再解剖 BusyBox 了。BusyBox 已经完成了它的教学使命让你理解recipe ↓ BitBake metadata ↓ task ↓ do_compile ↓ do_install ↓ do_package ↓ package ↓ rootfs ↓ image现在我们反过来自己写一个 recipe然后亲眼看它如何进入 Raspberry Pi 的 rootfs。例如做一个hello-yocto最终 SSH 到 Pi2rootraspberrypi2:~# hello-yoctoHello Yocto!这个练习非常关键因为你会真正掌握hello-yocto.bb │ ├── SRC_URI ├── do_compile ├── do_install ├── FILES:${PN}▼ package ▼ core-image-minimal ▼ WIC ▼ SD Card ▼ Raspberry Pi2这个练习非常关键因为你会真正掌握hello-yocto.bb │ ├── SRC_URI ├── do_compile ├── do_install ├── FILES:${PN}▼ package ▼ core-image-minimal ▼ WIC ▼ SD Card ▼ Raspberry Pi2这次我们甚至可以不依赖任何复杂源码先做一个纯 shell script recipe。具体建议与补充说明结构优化将这句关键提示从单纯的引用块提升为一个小节标题例如“1.1 从最简单的 Shell Script Recipe 开始”使其在视觉上更突出逻辑层次更清晰。逻辑深化在此处补充一个简短的段落解释“为什么从 Shell Script 开始”从纯 Shell Script 开始可以让你完全专注于 Recipe 的元数据metadata和任务task流程本身而无需被 C/C 编译环境、交叉编译工具链、源码补丁等复杂因素干扰。这是理解 BitBake 如何“打包”和“部署”一个软件的最干净起点。案例补充紧接着提供一个极简的hello-yocto.bb示例框架让抽象概念立刻变得具体可操作# hello-yocto.bbSUMMARYA simple hello-yocto scriptLICENSEMITSRC_URIfile://hello-yocto.shdo_install(){install-d${D}${bindir}install-m0755${WORKDIR}/hello-yocto.sh${D}${bindir}/hello-yocto}FILES:${PN}${bindir}/hello-yocto并附上对应的hello-yocto.sh脚本内容#!/bin/shechoHello Yocto!行动指引在案例后增加一个“下一步动作”提示引导读者立即实践动手试试在你的 layer 中创建上述两个文件然后运行bitbake hello-yocto。观察tmp/work/目录下生成的日志和文件特别是do_install任务将脚本安装到了哪个临时目录以及最终它如何被包含进core-image-minimal的包列表中。承上启下最后用一句话衔接至下一个实验systemd service强化学习路径的连贯性当你成功在 Pi2 上运行hello-yocto命令后你将获得对 Recipe 生命周期的完整感性认识。接下来我们就可以让这个“Hello World”在系统启动时自动运行进入systemd service的实验。然后做第二个实验自己写 systemd service比如hello-yocto.service让 Pi 启动之后自动运行hello-yocto然后你 SSH 进去systemctl status hello-yocto这一步会把你带到一个非常重要的概念recipe ↓ 安装文件 ↓ /etc/systemd/system/xxx.service ↓ systemd ↓ 开机启动你会开始真正理解Yocto 不只是“把软件编译出来”而是决定目标 Linux 系统里面有什么以及它怎么启动。3. 第三个实验正式创建自己的 Layer现在你应该从poky/ meta-openembedded/ meta-raspberrypi/开始建立自己的meta-myproduct/例如meta-myproduct/ ├── conf/ │ └── layer.conf ├── recipes-example/ │ └── hello-yocto/ │ └── hello-yocto.bb └── recipes-core/ └──...然后bitbake-layers create-layer../meta-myproduct bitbake-layers add-layer../meta-myproduct以后你自己的所有东西都放进去meta-myproduct │ ├── recipes ├── configuration ├── services ├── patches ├── kernel config └── device tree这一步非常重要。因为从这里开始你不应该再修改poky/meta/... meta-raspberrypi/...而是通过自己的 layer 覆盖/扩展别人提供的东西。这是 Yocto 真正的工程工作方式。4. 第四个实验学习 local.conf 和 layer 的边界你现在应该开始刻意区分临时实验build-rpi2/conf/local.conf和产品级配置meta-myproduct/例如MACHINE “raspberrypi2”可以是 machine/build 配置。而IMAGE_INSTALL:append dropbear虽然可以放 local.conf但如果你要做正式产品就应该逐渐移动到自己的 layer / image recipe 中。最终形成local.conf ↓ 开发者个人/机器相关配置 meta-myproduct ↓ 产品本身的配置这个思想非常重要。第五个实验不要再只用 core-image-minimal你现在应该创建自己的 imagemy-product-image.bb例如my-product-image │ ├── dropbear ├── busybox ├── hello-yocto ├── your-service └── your-config然后bitbake my-product-image最终my-product-image-raspberrypi2.rootfs.wic这时候你就真正开始从“我在编译 Yocto 的 image”变成“我在定义自己的 Linux 产品。”6. 第六阶段Kernel等上面的东西真正理解之后再进入 kernel。这一阶段非常值得你在 Pi2 上做Yocto │ └── Linux Kernel ├── kernel config ├── module ├── device tree └── patch例如bitbake virtual/kernel然后研究bitbake -c menuconfig virtual/kernel再研究KERNEL_DEVICETREE然后自己加一个 kernel configuration。这一阶段你会第一次真正理解Yocto 并不是 Linux kernel。Yocto 是构建系统而 kernel 只是 Yocto 构建出来的一个组件。7. 第七阶段SDK等你已经能做自己的 image 后再学bitbake -c populate_sdk然后Yocto PC │ SDK ▼ Application Developer ▼ your-app ▼ ARM/Raspberry Pi然后你可以在 PC 上写#include stdio.hintmain(){printf(Hello Raspberry Pi\n);return0;}使用 Yocto SDK 编译aarch64-poky-linux-gcc …或者根据你的 Pi2 配置对应的 ARM toolchain。这时候就进入Yocto Embedded Linux Application Development8. 所以我给你安排的路线是不要一下子学 20 个东西。我们就按这个顺序我尤其建议你现在不要急着学 Docker、systemd 全家桶、Linux 驱动等因为你现在最宝贵的是刚刚建立起来的这条“主线”。我们应该趁热打铁然后我们把箭头反过来这会是你真正从“使用 Yocto”进入“掌握 Yocto”的转折点。下一步我建议我们直接开始 01从零写第一个 hello-yocto.bb。而且这次我会带你用我们之前解剖 BusyBox 的方法一行一行追踪它从 .bb 文件到最终出现在 Pi2 /usr/bin/hello-yocto 的全过程

相关新闻

工业物联网时序数据库选型与实践指南

工业物联网时序数据库选型与实践指南

1. 工业IoT场景下的时序数据挑战在工业物联网领域,设备产生的数据具有典型的时序特性——每台机床、传感器、PLC控制器都在以固定间隔生成带时间戳的状态数据。某汽车制造厂的实践显示,一条焊接产线每小时就能产生超过200万条数据点,包含电流…

2026/8/10 9:56:23 阅读更多 →
Codex Security 深度解析:当 LLM Agent 开始接管代码安全审计

Codex Security 深度解析:当 LLM Agent 开始接管代码安全审计

🌊 专注 AI 大模型与前沿科技深度解析,习惯从工程师视角拆解技术热点,让我们一起在技术浪潮中保持清醒与好奇 🚀Codex Security 深度解析:当 LLM Agent 开始接管代码安全审计 过去十年,应用安全领域一直被一…

2026/8/11 10:30:57 阅读更多 →
GPU算力瓶颈下,Hugging Face模型高效部署与成本优化实战指南

GPU算力瓶颈下,Hugging Face模型高效部署与成本优化实战指南

如果你最近在尝试运行一个开源大模型,或者想微调自己的LLM,大概率会碰到同一个问题: GPU不够用 。这不仅仅是个人开发者面临的困境,连Hugging Face这样的AI基础设施巨头,其CEO Clement Delangue最近也被曝出亲赴西雅…

2026/8/11 12:08:28 阅读更多 →

最新新闻

企业数智化中台的五层架构——AI框架为什么需要纵向贯通

企业数智化中台的五层架构——AI框架为什么需要纵向贯通

企业AI框架这几年经历了一轮密集的架构演进。从单点工具集合,到开发平台,再到企业数智化中台。这条路线背后的驱动力很直接:AI能力如果只做平面的功能排布,用的时候各层会对不上,必须纵向贯通成一条完整的认知链路。企…

2026/8/11 12:12:32 阅读更多 →
如何快速掌握开源IEC 61850协议栈:终极实战指南

如何快速掌握开源IEC 61850协议栈:终极实战指南

如何快速掌握开源IEC 61850协议栈:终极实战指南 【免费下载链接】libiec61850 Official repository for libIEC61850, the open-source library for the IEC 61850 protocols 项目地址: https://gitcode.com/gh_mirrors/li/libiec61850 libiec61850是一个功能…

2026/8/11 12:12:32 阅读更多 →
FDE是什么——前沿部署工程师和普通程序员有什么区别

FDE是什么——前沿部署工程师和普通程序员有什么区别

最近有个岗位在企业招聘市场里越来越火,叫FDE。不是前端开发Front-End Developer的缩写,是前沿部署工程师Forward Deployment Engineer。这个岗位从硅谷的Palantir、OpenAI一路烧到国内,现在企业AI项目团队里几乎标配这个角色。但如果你去搜&…

2026/8/11 12:12:32 阅读更多 →
Adobe-GenP 3.0破解工具:5分钟免费激活Adobe全家桶的终极指南

Adobe-GenP 3.0破解工具:5分钟免费激活Adobe全家桶的终极指南

Adobe-GenP 3.0破解工具:5分钟免费激活Adobe全家桶的终极指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 还在为Adobe Creative Cloud的订阅费用而烦…

2026/8/11 12:12:32 阅读更多 →
多模态RAG系统构建实战:突破40%幻觉率的全链路技术方案

多模态RAG系统构建实战:突破40%幻觉率的全链路技术方案

多模态RAG系统构建实战:突破40%幻觉率的全链路技术方案 2026年7月,企业知识库已全面向图文、表格、PDF等多模态数据演进,多模态RAG成为标配。然而权威评测机构的最新报告显示,在处理复杂图表与跨页表格时,主流多模态RA…

2026/8/11 12:12:32 阅读更多 →
Python类型提示:从原理到工程实践

Python类型提示:从原理到工程实践

1. 为什么Python需要类型提示?2008年的一个深夜,Guido van Rossum在Python邮件列表中写道:"我受够了动态类型带来的调试噩梦"。这位Python之父的抱怨并非空穴来风——在大型项目中,动态类型的灵活性往往演变成维护的灾难…

2026/8/11 12:11:31 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →