news 2026/9/30 7:38:00

yocto: 23-linux bbappend

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
yocto: 23-linux bbappend

第13课: 这一课是 Yocto BSP 开发最重要的一课。# Yocto BSP 开发第13课:linux-*.bbappend 深度解析

摘要:本文深入讲解 Yocto BSP 开发中最重要的 linux-*.bbappend 技术。通过对比错误做法与正确方法,详细解析 bbappend 的工作原理、目录结构建立、配置修改、补丁应用、设备树管理等核心内容。文章包含完整的实验指导,从确认 kernel recipe 名称到最终验证,手把手教你使用 .bbappend 修改 Kernel Config,开启 CONFIG_IKCONFIG 和 CONFIG_IKCONFIG_PROC 配置,并通过 /proc/config.gz 验证修改生效。这是所有 BSP 厂商(NXP、TI、ST、RaspberryPi、Intel)共同采用的标准方法。


前面我们已经学会了:
1.Layer(meta-myproduct)
2.Recipe(.bb)
3.Image
4.Packagegroup
5.Kernel menuconfig
6.Device Tree 基础
7.Kernel Module

到这里你已经是在使用 BSP。

而 linux-*.bbappend 才是真正开始开发 BSP。


第13课 linux-*.bbappend
目标:

不修改 Yocto 官方源码,而是修改 Linux Kernel。

这是所有 BSP 厂商(NXP、TI、ST、RaspberryPi、Intel)共同采用的方法。


一、为什么不能改 linux.bb?
例如 Raspberry Pi kernel 来自

meta-raspberrypi/ recipes-kernel/linux/ linux-raspberrypi_6.6.bb

很多新手喜欢:

vimlinux-raspberrypi_6.6.bb

或者

vimkernel-source

这样做有几个问题:
以后 git pull
全部覆盖
别人不能复现
升级版本全部丢失
所以

永远不要改官方 layer。


正确的方法:

meta-myproduct

里面增加

linux-raspberrypi_%.bbappend

Yocto 自动把你的修改追加进去。
这就是

bbappend


二、bbappend 工作原理
假设系统有

linux-raspberrypi_6.6.bb

BitBake 找到

linux-raspberrypi_%.bbappend

自动执行

linux.bb + linux.bbappend

相当于

新的 linux recipe

所以

bb

负责原始 recipe
bbappend

负责追加。


三、建立目录
在

meta-myproduct

建立

recipes-kernel/

继续

linux/

最终

meta-myproduct/ └── recipes-kernel └── linux ├── linux-raspberrypi_%.bbappend └── files

以后所有 kernel 修改都放这里。


四、最简单的 bbappend
创建

linux-raspberrypi_%.bbappend

内容

FILESEXTRAPATHS:prepend :="${THISDIR}/files:"SRC_URI+=" \ file://my.cfg \ "

解释:

FILESEXTRAPATHS

告诉 BitBake
去

files/

找文件。
然后

SRC_URI

追加文件。


五、修改 Kernel Config
例如增加一个配置

files/my.cfg

内容

CONFIG_IKCONFIG=y
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 7:37:57

Java Balking 模式实战:用洗衣机案例掌握并发状态守卫编程

示例工程教程 【免费下载链接】java-design-patterns Design patterns implemented in Java 项目地址: https://gitcode.com/GitHub_Trending/ja/java-design-patterns 点击查看 免费下载 Balking(犹豫/却步)模式是 Java 并发领域的一种状态…

作者头像 李华
网站建设 2026/9/30 7:37:44

快捷支付原理与对接实践:从代扣协议到接口避坑全解析

1. 快捷支付到底是什么快捷支付这个词,天天在微信、支付宝、银联云闪付里看到,但真要让人解释清楚它和普通支付有什么区别,不少人还真说不利索。我最早接触到这个概念的时侯是在银行后台做清算系统对接,那时候才发现快捷支付并不是…

作者头像 李华
网站建设 2026/9/30 7:36:06

维特智能WTGPS-02H在铁塔气象雷达定位定向中的应用

导语西南地区某气象科技企业在铁塔上安装天气雷达时,因铁塔金属结构对磁力计产生强磁干扰,导致传统定向方式无法提供准确航向角。该企业选用维特智能WTGPS-02H双天线定向模组,通过双天线GNSS基线解算航向角,从根本上规避了磁干扰问…

作者头像 李华
网站建设 2026/9/30 7:35:59

异步调用大模型接口时Broken pipe的根因排查与修复

1. 事故现场:一场诡异的线上告警前几天晚上十一点多,我正打算关电脑,群里突然炸了。运营反馈说某个后台功能里的“AI总结”按钮转圈转了半天,最后弹了个“服务异常,请稍后重试”。我心里咯噔一下:这功能上线…

作者头像 李华
网站建设 2026/9/30 7:35:33

HTTP协议实战避坑:从报文结构、缓存机制到抓包排查的工程指南

简介:这是一份面向有一定网络基础的开发人员与技术爱好者的HTTP协议系统学习资料,聚焦从报文结构、请求方法、URI与状态码等基础概念,到无状态性、明文传输、队头阻塞、跨域、缓存、代理等实际痛点的深入剖析,并延伸至TLS握手&…

作者头像 李华
网站建设 2026/9/30 7:35:33

混合精度训练崩溃之谜:手写梯度缩放,彻底根治NaN

训练跑着跑着 loss 变成 NaN,这大概是每个搞深度学习的人都经历过的噩梦。早期我遇到这种情况,第一反应是调小学习率、清理数据、换初始化,结果发现治标不治本。真正让我彻底理解问题根源的,是后来深入研究自动混合精度&#xff0…

作者头像 李华