ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

yocto: 23-linux bbappend

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.Image4.Packagegroup5.Kernel menuconfig6.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_%.bbappendYocto 自动把你的修改追加进去。这就是bbappend二、bbappend 工作原理假设系统有linux-raspberrypi_6.6.bbBitBake 找到linux-raspberrypi_%.bbappend自动执行linux.bb + linux.bbappend相当于新的 linux recipe所以bb负责原始 recipebbappend负责追加。三、建立目录在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
返回列表