【问题标题】:how to group device name in yocto如何在 yocto 中对设备名称进行分组
【发布时间】:2017-10-22 14:41:28
【问题描述】:

我们公司开发了几种硬件并支持 Yocto Linux。我们还将 rpi 等其他机器集成到我们的 Yocto 项目中。我们有自己的 bbappend 文件,我们希望通过添加后缀使其成为指定的机器。因此它不会影响像rpi这样的其他机器。

例如,SRC_URI_ourMachine += " \。但是我们有几台机器,我们如何将它们像rpi一样打包成一个。 Raspberry Pi 有多个模块,如 RaspberryPi、RaspberryPi2、RaspberryPi3、RaspberryPi-CM、RaspberryPi-CM3。但是如果你做一个SRC_URI_rpi += " \,它会影响所有的rpi机器。

我们怎样才能做到这一点?谢谢。

【问题讨论】:

    标签: yocto


    【解决方案1】:

    我认为你可以通过使用 -MACHINEOVERRIDES 变量来解决这个问题。

    在您的配置文件中meta-name/conf/machine/include/machine-name.inc
    MACHINEOVERRIDES =. "common-name:"

    然后在任何配方中你可以像这样使用它(例如SRC_URI): SRC_URI_common-name = "..."

    文档链接:http://www.yoctoproject.org/docs/2.3.2/mega-manual/mega-manual.html#var-MACHINEOVERRIDES

    使用 qemuall 的 poky 示例:https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/machine/include/qemu.inc#n14

    【讨论】:

    • 谢谢!还有一个问题,在你的例子中,MACHINEOVERRIDES =. "common-name"=. 是什么意思?
    • 嗯,这只是在 BitBake 文档中很好地补充的前置操作 - yoctoproject.org/docs/2.3.2/bitbake-user-manual/…
    • 其实我发现树莓派,他们使用全局变量SOC_FAMILY = "rpi"。他们之间有什么不同?哪一个最适合我?
    • 我只能尝试您的解决方案,但它对我不起作用。应该是MACHINEOVERRIDES =. "common-name:",需要列:
    【解决方案2】:

    还有另一个解决方案是SOC_FAMILY = common-name:。此解决方案需要将include conf/machine/include/soc-family.inc 放在会议或inc 文件中。

    然后在任何配方中你可以像这样使用它(例如SRC_URI):SRC_URI_common-name = "..."

    【讨论】:

      猜你喜欢
      • 2014-05-18
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多