如何在 yocto 图像配方中包含 tools/commands?

How to include tools/commands in yocto image recipe?

我有一个关于在 Yocto 图像配方中包含不同工具的问题。目前我正在为我的 Avenger96 板构建图像配方。我创建了一个基本映像,它在设备上运行良好。但是当我在启动后尝试执行 sgdisk 时,它说 -sh: sgdisk: command not found。我了解这些命令默认不可用,需要安装。

但由于我的开发板未连接到互联网,我不确定该怎么做。我可以在图像配方中包含这些 commands/tools 吗?我想使用其他一些命令,如 ufw 等,但我也有同样的问题。

有人可以告诉我怎么做吗?

非常感谢您的帮助。

提前致谢。

P.S:我正在使用 Ubuntu 20.04 和 Yocto 作为构建系统。

sgdisk 出现在配方下:meta/recipes-devtools/fdisk/gptdisk_xx.bb

对于 xx 这取决于你的 poky 版本。

对于 dunfell,这是食谱 here

ufw 出现在 meta-openembedded/meta-networking/recipes-connectivity/ufw

因此,请确保 meta-openembedded/meta-networking 存在于您的 bblayers.conf 中,并且要包含它们,请将以下行添加到 local.conf 或您的自定义图像文件中:

IMAGE_INSTALL_append = " gptfdisk ufw"

如果您仍然找不到 sgdisk,请尝试 gptdisk-sgdisk

如果你以后想添加任何食谱,请尝试在这个 link.

的官方 yocto git 存储库中寻找它

不建议手动将工具添加到板子中,除非你在开发过程中需要争取时间,所以这里有一些想法供你参考:

  • 创建包含所有开发功能(gcc、g++、cmake、..等)的开发映像
  • 包括 git 和其他抓取工具
  • 克隆工具的源代码并在开发板中编译
  • 或者:bitbake 使用 Yocto 的配方,并通过 ssh 或其他方式将输出二进制文件直接复制到图像。