You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在STM OpenSTLinux中通过Packagegroup集成外部Recipe到Yocto镜像

解决OpenSTLinux中Package Group的放置与配置问题

作为Yocto/OpenSTLinux新手,你遇到的这个问题很典型,我来一步步帮你搞定:

1. 正确放置你的packagegroup文件

首先,不要随便乱放这个文件,要遵循Yocto的层目录结构规范:

  • 找到你克隆并添加到bblayers.conf的自定义层(假设它叫meta-mycustom)
  • 在这个层里创建如下目录结构:
    meta-mycustom/
    └── recipes-core/
        └── packagegroup/
            └── packagegroup-myclient.bb
    

    注意:把你原来的packagegroup.bb重命名为packagegroup-myclient.bb(或者更贴合你需求的名字),这样能避免和其他层里的packagegroup文件重名冲突。

2. 配置让镜像集成这个Package Group

有两种常用方式把你的packagegroup集成到镜像里,选一种适合你的:

方式一:修改现有OpenSTLinux镜像配方

如果你想直接在官方提供的镜像(比如stm32mp1-openstlinux-eglfs-image)里添加这些包:

  • 找到对应镜像的配方文件,通常在meta-st/meta-st-openstlinux/recipes-st/images/目录下
  • 打开镜像的.bb文件,在文件末尾添加:
    IMAGE_INSTALL_append = " packagegroup-myclient"
    

    注意:IMAGE_INSTALL_append后面的空格很重要,必须保留。

方式二:创建自定义镜像配方(推荐,避免修改官方层)

这种方式更干净,不会改动官方层的内容:

  • 在你的自定义层meta-mycustom里创建recipes-core/images/my-custom-image.bb文件,内容如下:
    SUMMARY = "My custom STM32MP1 image with client packages"
    LICENSE = "MIT"
    
    # 基于官方基础镜像构建,这里选你常用的官方镜像名
    inherit core-image
    require recipes-st/images/stm32mp1-openstlinux-eglfs-image.bb
    
    # 添加你的packagegroup
    IMAGE_INSTALL_append = " packagegroup-myclient"
    

3. 验证并构建

完成上面的配置后,按照OpenSTLinux的构建流程操作:

  1. 回到OpenSTLinux根目录,先加载环境脚本:
    source layers/meta-st/scripts/envsetup.sh
    
  2. 选择对应的构建配置(比如你的STM32MP1开发板配置)
  3. 执行构建命令:
    • 如果用方式一:bitbake stm32mp1-openstlinux-eglfs-image
    • 如果用方式二:bitbake my-custom-image

小提示

  • 你当前的RDEPENDS_${PN}里,python-pysqlite和python3-sqlite3可能存在重复依赖(前者是Python2的包,后者是Python3的),如果你的镜像用Python3为主,可以删掉python-pysqlite避免冗余。
  • 可以先单独构建你的packagegroup验证是否正常:bitbake packagegroup-myclient,如果构建成功,再构建完整镜像。

内容的提问来源于stack exchange,提问作者Hsn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 12:37:31